Idea: Convergence Forecast Priority Sampling
Posted: Thu Aug 29, 2019 12:40 pm
Convergence Forecast Priority Sampling
Given
Fast quality pseudo random number generator (PRNG) like e.g. xoshiro256**
Simple random sampler
Searched
Noise level optimized render
Idea
Render a low resolution image, e.g. 256*144 pixels (16:9)
Evaluate convergence of all 16*16 pixels areas after 16, 32, 64, 128 and 256 number of samples
Evaluate noise reduction trend of all areas.
Estimate min number of samples to fall below noise threshold in all areas and report the value.
Generate a probability map (values 0.0000 to 0.9999) based on each trend (probability to reach noise threshold after n samples, e.g. n=128, 256, 512, 1024, ...)
Generate a path start map with density meeting probability map (means the higher probability the more pseudo random number based start conditions)
Put path start map on stack sequentially, layer by layer (descending, means layer with less entries first; last element put on stack will be get from stack first).
Start full resolution rendering with values from stack (each token stack element reduces stack by one element).
After stack is emptied get first convergence of multiple same size areas depending on image and probability map resolution.
Refine probability map, areas below noise threshold get probability 0.0, the map is normalized to get values between 0.0000 and 0.9999.
Fill stack with next series of probability based path start conditions.
Repeat steps until all areas fell below noise threshold.
This convergence forecast priority sampling can be performed from camera and any light source.
Given
Fast quality pseudo random number generator (PRNG) like e.g. xoshiro256**
Simple random sampler
Searched
Noise level optimized render
Idea
Render a low resolution image, e.g. 256*144 pixels (16:9)
Evaluate convergence of all 16*16 pixels areas after 16, 32, 64, 128 and 256 number of samples
Evaluate noise reduction trend of all areas.
Estimate min number of samples to fall below noise threshold in all areas and report the value.
Generate a probability map (values 0.0000 to 0.9999) based on each trend (probability to reach noise threshold after n samples, e.g. n=128, 256, 512, 1024, ...)
Generate a path start map with density meeting probability map (means the higher probability the more pseudo random number based start conditions)
Put path start map on stack sequentially, layer by layer (descending, means layer with less entries first; last element put on stack will be get from stack first).
Start full resolution rendering with values from stack (each token stack element reduces stack by one element).
After stack is emptied get first convergence of multiple same size areas depending on image and probability map resolution.
Refine probability map, areas below noise threshold get probability 0.0, the map is normalized to get values between 0.0000 and 0.9999.
Fill stack with next series of probability based path start conditions.
Repeat steps until all areas fell below noise threshold.
This convergence forecast priority sampling can be performed from camera and any light source.