Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add DDGI for global illumination (#243)
* Continue work on DDGI * Move sample counts to globals in shader to allow for setting up the probe buffers CPU side * Continued DDGI work * DDGI volume deletion Selection tool scales with size of item, even if not a model Fixed error in component inspection that would recreate an item indefinitely when a uint value was defined * Split ddgi debug to own shader * Continued DDGI work. Initial probe update close to finished. * Fix ratio calculation and add range adjustment for texture preview * Start working on step 2 of DDGI, finalizing the light contributions * Continued work on finalization shader * Continue work on probe finalize * More work on probe finalization * More DDGI stuff, feeding the blending shader and syncing resources. * Minor fixes * Add DDGI to clustering system * Add color masking to Imgui shader * Add more DDGI settings * Add switch to enable/disable terrain shadows * Continued DDGI work and added script to convert old surface definitions to new. * Add mode for converting an entire folder to the surface updater * Make DDGI buffers full precision when working * Raytracing fixes * Fix resource server not picking the correct loader * Fix bugs in material parsing * Make area lights cull in view space in shader, but passed in world space * Add texture channel masking to resource browser * Fixed typo * Bind ray tracing pipeline before binding resources to ensure the layout change doesn't invalidate the bindings * Fix lights not showing in raytracing. Also fix surface updater correctly setting the value in tags instead of putting it as XML content. * Broken, but trying to fix probe direction being wrong in finalize. * DDGI almost working * Many DDGI fixes * Got DDGI running! * Initial implementation of probe relocation feature * Add blending between GI volumes and continue work on extra DDGI features like infinite scrolling, classification, etc. * Merge together the different DDGI volume structs to one. Fix debug rendering of DDGI probes * Fix ddgi probe relocation * Add probe classification function. * Use new raytracing payload. Use true random rotation transform for DDGI instead of just rotating the current one. * Add missing attributes to GI volume component * Move graphicsfeature settings to levelsettings and projectsettings * Remove old graphics feature flatbuffer schemas * Make DDGI use project settings * Use level settings to load the terrain and vegetation stuff * Fix materials and frame scripts not detecting when a recompile is necessary * Fix validation error for shader resource access now when we do the lighting in the hit shader * Fix raytracing test pass so it doesn't flicker. Also fixes incorrect GLTF emissive calculation * Add tbui to graphics feature * Fix DDGI partial update * Fix incorrect GLTF shader implementations * Area lights were missing diffuse... * Allow interactions with viewport without explicit focus. Allows hovering to get 'focus' for picking and manipulating gadgets. * Fix materials not getting updated in the raytracing material system * Comments * -128 is 0x80, +127 is 0x7F... * Add names to resource tables * Minor fixes * Options fixes * Ensure we can't have less than the lowest required amount of rays per probe * More fixes for lowest amount of allowed rays per probe * Fix build * More build fixes * Fix test apps with new API for setting up globallight (w/o backlight garbage) * Add base level and fix include of old terrain settings. Fix DDGI compile issue * Working on fixing a raytracing bug and fixing some stupid decisions with mesh exporting * Fix physics with the new nvx format * Use uint64 for GPU offsets and sizes Also limit uniform buffer binding to size min(MaxUniformSize, buffer.size) * Fix graphics manager not triggering DDGI if raytracing is off * Some raytracing fixes * Revert max vertex count * Working on fixing what appears to be incorrect material assignment when raytracing. * Fix raytracing issues where a model with multiple primitive groups wouldn't render correctly. * Fix mesh unload double delete * Improve DDGI debugging and safe guard against negative energy * Material template generator spits out 16 bit aligned material types when used as pointers. * Remove StackAlloc in favor of ArrayAllocStack, which is a thread local linear buffer. * Fix some export issues * Material asset editor allows for copy-paste of textures using right click (copy) and middle click (paste) * Correctly scale selection boxes based on object scale * Minor fixes in material loader, mainly renaming the global state to materialLoaderState to not confuse debuggers (didn't work) * Disable point sampling for mip mapped normal maps. Technically normal maps "can't" be mipped but whatever... * Add DDGI update frequency to project settings * New syswork export with the changes done to the content * Fix bug with light grid where lights didn't have enough cells to be culled into. Miracle it ever worked. I think this could be solved in a better way, but it will work for now. * Turn on raytracing by default on models. Only does something if raytracing is enabled anyways.
- Loading branch information