CesiumGS / gltf-pipeline

Content pipeline tools for optimizing glTF assets. :globe_with_meridians:

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 new varying
  • 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?