A camera film that receives any quantity, for sampling-based rendering techniques.
More...
|
| TSamplingFilm ()=default |
|
| TSamplingFilm (int64 actualWidthPx, int64 actualHeightPx, const SampleFilter &filter) |
|
| TSamplingFilm (int64 actualWidthPx, int64 actualHeightPx, const math::TAABB2D< int64 > &effectiveWindowPx, const SampleFilter &filter) |
|
virtual void | addSample (float64 xPx, float64 yPx, const Sample &sample)=0 |
| 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.
|
|
virtual void | setPixel (float64 xPx, float64 yPx, const Sample &sample)=0 |
| 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=0 |
| 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 | 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 |
|
template<typename
Sample>
class ph::TSamplingFilm< Sample >
A camera film that receives any quantity, for sampling-based rendering techniques.