A film that records RGB values internally. Although film samples are added as spectral values, they are automatically converted to linear sRGB values for storage.
More...
|
| HdrRgbFilm ()=default |
|
| HdrRgbFilm (int64 actualWidthPx, int64 actualHeightPx, const SampleFilter &filter) |
|
| HdrRgbFilm (int64 actualWidthPx, int64 actualHeightPx, const math::TAABB2D< int64 > &effectiveWindowPx, const SampleFilter &filter) |
|
void | addSample (float64 xPx, float64 yPx, const math::Spectrum &sample) override |
| Applies filter to sample value and add to the film. Generally, this method can produce higher quality result by reconstruct the image function with a filter.
|
|
void | setPixel (float64 xPx, float64 yPx, const math::Spectrum &sample) override |
| Let the pixel developes to the specified sample value. An interface for using the film as an ordinary image. This method may disturb sample weights. Using this method with addSample() may result in image artifacts unless the implementation says otherwise.
|
|
void | clear () override |
| Set all pixel data to its initial state.
|
|
void | setEffectiveWindowPx (const math::TAABB2D< int64 > &effectiveWindow) override |
| Set the region where the film will be used. Implementation is advised to take advantage of this and only allocate memory for the part within the effective window.
|
|
void | mergeWith (const HdrRgbFilm &other) |
|
|
void | addRgbSample (float64 xPx, float64 yPx, const math::Vector3R &rgb) |
| Add a pixel sample.
|
|
void | addRgbSample (float64 xPx, float64 yPx, const math::Vector3D &rgb) |
|
|
void | setRgbPixel (float64 xPx, float64 yPx, const math::Vector3R &rgb, float64 weight=1) |
| Set a pixel directly. Filter is not applied when setting a pixel directly (effectively applying a box filter). The pixel coordinate is not integral as the implementation may choose to store the values in higher resolution (e.g., super sampling).
|
|
void | setRgbPixel (float64 xPx, float64 yPx, const math::Vector3D &rgb, float64 weight=1) |
|
| TSamplingFilm ()=default |
|
| TSamplingFilm (int64 actualWidthPx, int64 actualHeightPx, const SampleFilter &filter) |
|
| TSamplingFilm (int64 actualWidthPx, int64 actualHeightPx, const math::TAABB2D< int64 > &effectiveWindowPx, const SampleFilter &filter) |
|
void | setEffectiveWindowPx (const math::TAABB2D< int64 > &effectiveWindow) override |
| Set the region where the film will be used. Implementation is advised to take advantage of this and only allocate memory for the part within the effective window.
|
|
void | setSoftEdge (bool useSoftEdge, float32 softness=1.0f) |
| Whether to increase the sampling window converage for prettier boundaries in developed frame. In renderings where the image is divided into tiles and sampled independently, the resulting image may have visible artifacts along tile boundaries. This can be alleviated by increasing the size of each tile, so edge pixels can receive more information, reducing their variance. This costs slightly more memory, and tiles will have overlapping sampling regions (may need more care for concurrency).
|
|
math::TVector2< float64 > | getSampleResPx () const |
|
const math::TAABB2D< float64 > & | getSampleWindowPx () const |
|
const SampleFilter & | getFilter () const |
|
SamplingFilmDimensions | getDimensions () const |
|
bool | isSoftEdged () const |
|
| Film () |
|
| Film (int64 actualWidthPx, int64 actualHeightPx) |
|
| Film (int64 actualWidthPx, int64 actualHeightPx, const math::TAABB2D< int64 > &effectiveWindowPx) |
|
| Film (Film &&other)=default |
|
Film & | operator= (Film &&other)=default |
|
virtual | ~Film ()=default |
|
virtual void | setActualResPx (const math::TVector2< int64 > &actualResPx) |
| Set the apparent size of the film. If only a sub-region of the film is going to be used, set the effective window accordingly may improve performance especially in memory usage.
|
|
void | develop (HdrRgbFrame &out_frame) const |
|
void | develop (HdrRgbFrame &out_frame, const math::TAABB2D< int64 > ®ionPx) const |
|
const math::TVector2< int64 > & | getActualResPx () const |
|
math::TVector2< int64 > | getEffectiveResPx () const |
|
const math::TAABB2D< int64 > & | getEffectiveWindowPx () const |
|
A film that records RGB values internally. Although film samples are added as spectral values, they are automatically converted to linear sRGB values for storage.