AO Roadmap
likangning93 opened this issue · comments
- Experiment to determine well-balanced settings for baking building AO
- For baking to vertices: assess advanced baking approximations like least squares baking
- Add an option to decouple the uniform grid cell size from maximum ray distance
- treat the grid as a sparse voxel structure, voxelize rays and check for intersections along the line of voxels? Dispense with rays altogether? This starts to resemble voxel cone tracing
- use a different datastructure, like an oct tree?
- Apply some kind of inside-outside algorithm to correct model normals? (possibly not in this stage)
- For baking to vertices: assess and document payload improvements of quantization
- For baking to vertices: assess ways to reduce the number of attributes and varyings that need to be added to shaders
- for AO on a diffuse texture, detect and use any existing
TEX_COORD
instead of a newvarying
- detect places AO can be packed in other attributes (
VEC4
positions,VEC3/VEC4
normals) - For uniform grids, voxels, or octrees: experiment with space filling curves for improved triangle access.
- For baking to textures: use conservative rasterization when sampling over triangles
- Replace the current random ray generator (dependent on Javascript's random number generator) with something like a sobol sequence
- For baking to textures: Add a stage to generate texture coordinates
- possibly, unique AO texture coordinates with separate AO textures
- also requires shader modification for texture baking
- There's lots of opportunities for obvious parallelism, including GPU parallelism, is it worth it to improve the latency of baking one model?