Photon-v2
Photon-v2 copied to clipboard
Need to redesign FrameProcessor and FrameOperator
Several notes:
- FrameOperator can be categorized into
- local (pixel-by-pixel), e.g., simple tone mapping, scale
- zone (neighbors may contribute to the final pixel), e.g., blur, bloom
- global (the whole frame can affect the pixel), e.g., exposure like eye adaption
- FrameProcessor should be thread-safe (const methods) once constructed
- Post processing should be a separated operation with its own API
- This way we no longer need to distinguish processed & raw frames in APIs
- Need better mechanism/spec to avoid processing non-updated region, which caused unwanted effects during asynchronous result queries in previous versions
- Currently this is solved by hacking, see a36de40bfcc7608cb228f55d93d7bb532bc3c267