00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef PBRT_FILM_H
00025 #define PBRT_FILM_H
00026
00027 #include "pbrt.h"
00028
00029 class Film {
00030 public:
00031
00032 Film(int xres, int yres)
00033 : xResolution(xres), yResolution(yres) {
00034 }
00035 virtual ~Film() { }
00036 virtual void AddSample(const Sample &sample, const Ray &ray,
00037 const Spectrum &L, float alpha) = 0;
00038 virtual void WriteImage() = 0;
00039 virtual void GetSampleExtent(int *xstart,
00040 int *xend, int *ystart, int *yend) const = 0;
00041
00042 const int xResolution, yResolution;
00043 };
00044
00045 extern COREDLL void ApplyImagingPipeline(float *rgb,
00046 int xResolution, int yResolution,
00047 float *yWeight = NULL,
00048 float bloomRadius = .2f, float bloomWeight = 0.f,
00049 const char *tonemap = NULL,
00050 const ParamSet *toneMapParams = NULL,
00051 float gamma = 2.2, float dither = 0.5f,
00052 int maxDisplayValue = 255);
00053 #endif // PBRT_FILM_H