|  | 
|  | 1 | +X voxelize an actual model | 
|  | 2 | +- X use dominant axis | 
|  | 3 | +- X implement the projection in geometry shader | 
|  | 4 | +X the problem of raytracing voxels not showing until after instanced voxel view | 
|  | 5 | +X the spurious crash/hang in raytracing voxels | 
|  | 6 | +X do not voxelize each frame | 
|  | 7 | +X offer conservative rasterization | 
|  | 8 | +X the blinking voxels on raytracing | 
|  | 9 | +X the problem of things disappearing after minimization | 
|  | 10 | +strange behavior of conservative rasterization with fixed-axis voxelization | 
|  | 11 | +cannot get all walls to the same AO factor | 
|  | 12 | + | 
|  | 13 | +X Load Sponza model, show textures and stuff | 
|  | 14 | +x Make a mipmap chain in a 3D texture, at first with occupancy (better than auto generated), option to display mipmap levels | 
|  | 15 | +X Voxelize normal and albedo | 
|  | 16 | +X Inject light into a mipmapped voxel grid | 
|  | 17 | +X Implement compute shaders for correct mipmapping of injected light | 
|  | 18 | +X - compare it to a reference impl | 
|  | 19 | +X Determine ambient occlusion from the irradiance instead of separate occupancy | 
|  | 20 | +X Implement tone-mapping alternatives | 
|  | 21 | +X Depth write to ray tracing of voxels | 
|  | 22 | +X Allow translations (dir keys) with orbital camera | 
|  | 23 | +X Cone trace the diffuse component (handle visibility) | 
|  | 24 | +X - Debug the issue of ultra-bright inner-angles (e.g. walls) | 
|  | 25 | +X Add shadow from multiple lights / point lights | 
|  | 26 | +X Use the split-sum texture | 
|  | 27 | +CANNOT: the TBN is in view, cone tracing need it in world. Use bump-mapping TBN when available, instead of re-computing into accumulateXxx | 
|  | 28 | +WILL_NOT as I implement the simpler injection during voxelization: Light the scene by "photon mapping" (i.e. rasterizing from the light POV) | 
|  | 29 | +X Add cone trace maxdistance user control | 
|  | 30 | +X Store lights in world coordinates too, there are ub_cameraToWorld everywhere | 
|  | 31 | +X Cone trace specular component (how to tailor the cone direction and angle to match the BRDF?) | 
|  | 32 | +X- the specular indirect contribution seems week | 
|  | 33 | +X Option to inject irradiance during the voxelization step (instead of storing albedo and normal, compute irradiance and average it. It is also compatible with shadow maps, but not shadow cone tracing) | 
|  | 34 | +X- compute pass to set correct alpha | 
|  | 35 | +X- implement visibility via shadowing | 
|  | 36 | +X Use shadowing in forward rendering | 
|  | 37 | +X- shadow maps | 
|  | 38 | +X- shadow cone | 
|  | 39 | +X Add visibility (shadowing) for voxel irradiance injection | 
|  | 40 | +X Add tracy instrumentation to measure performances | 
|  | 41 | +Divide by 4 instead of 8 in the mipmapping shader (but at which level should we start to not overflow?) | 
|  | 42 | +X Anisotropic might be required for descent cone traced shadows | 
|  | 43 | +X- how to use the level 0 with the 6 mipmap chains | 
|  | 44 | +X- Ensure linear between mipmap levels on irradiance (in particular 6 aniso textures) | 
|  | 45 | +Apply d vs d' correction factor to alpha | 
|  | 46 | +Offer options for voxel shadowing on light injection: | 
|  | 47 | +- voxel ray tracing (fix the hardcoded offset / consolidate with visibility ray tracing) | 
|  | 48 | +- shadow cone tracing | 
|  | 49 | +- shadow maps | 
|  | 50 | +Find a real "axis collapsing" method (maybe need to read the current value to determine "co-axiality") | 
|  | 51 | +X Increase the grid dimension 512^3 | 
|  | 52 | +Try to bake more bounces into injected light | 
|  | 53 | +Try on other environments | 
|  | 54 | + X- Pica Pica | 
|  | 55 | +  X- specular exponent to roughness | 
|  | 56 | + X- Intel Sponza | 
|  | 57 | +  - Fix the LHS tangent basis problem | 
|  | 58 | + | 
|  | 59 | + | 
|  | 60 | +Defects: | 
|  | 61 | +- Light leaking at inner corners (also visible in "Voxel Cone Tracing Evaluation for Real-Time Applications" fig. 26 p36 | 
|  | 62 | +- Normal averaging on thin objects (< 1 voxel) cancels out (e.g. Sponza drapes) / direct light injection leaks on the other side | 
|  | 63 | +  - Note: this problem does not exist if we directly inject light during voxelization, instead of a separate pass | 
|  | 64 | +- (cannot be addressed) lack of specular highlights in the voxelization (since we only inject diffuse lighting, because specular hightlight depends on traced cone direction) | 
|  | 65 | +- The anisotropic irradiance tends to be much higher energy than the isotropic version (should pathtrace a reference image to conclude which is more accurate) | 
|  | 66 | +  - With anisotropic, light leaks in some pathological case: e.g. thin wall with a very bright and a very dark side. | 
|  | 67 | +    The leak will occur on the axis bright->dark, and will catch up to both the tangential diffuse cone, and the normal aligned cone (not "escaping" fast enough) | 
0 commit comments