Skip to content

Releases: Pjbomb2/TrueTrace-Unity-Pathtracer

v.2.5.5

27 Dec 00:38
e5ffe50
Compare
Choose a tag to compare

Large CPU Optimizations!
Switched the light BVH TLAS builder over to using async
Optimized light BVH builder by about 20%
Optimized mesh loading by about 50%
Instanced objects can now be moved around independantly without huge lag if you have tens of thousands of them
Same goes for emissive instanced

Large RAM Optimizations!
Reduced Maximum Ram Use during BVH building by about 25%
Reduced reserved RAM use significantly
Improved overall build times for SWRT(for 17 million triangles, went from 1:50 to 1:43)

Added back colored thin glass
Added hash buffer compaction for the radcache
Added small script for instancing arrays
Added OPTIX support(thanks to UnityDev)

Fixed HWRT instances index
Fixed AO/visible radcache
Fixed OIDN in unity 6000
Fixed white lines in corners with restir
Fixed gaussian tree being incorrectly weighted for differently parented objects
Fixed OIDN at frame limiter = 0
Fixed issue with panorama + ReSTIR
Fixed the scaled intensity for the BUILDER of the lightbvh
Fixed terrain
Fixed unity crashing in the even that there is no emissive meshes in the scene
Fixed handling of skinned meshes vertex buffers occasionally going out of date

Increased max submesh * mesh count for HWRT instances from 65k to 134 million
Small modification to radcache to allow for nicer subsurface scattering
More tuning to radcache
Changed naming scheme for screenshots and panoramas
Panoramas will now go back to the previous resolution when its done
Very minor optimizations to radcache

Optimized ReSTIR spatial by about 50% while maintaining similar quality by switching to 2 spatial passes
Minor general ReSTIR optimizations

v.2.5.4

15 Dec 23:50
51a48f6
Compare
Choose a tag to compare

ENTIRELY Rewrote Radiance Cache
ENTIRELY Rewrote ReSTIR GI
Meshes no longer need to be read/writeable to be loaded in play mode, however the method used to load these meshes consumes a lot more RAM
URP is now functionally viable

Added texture fallback system, so you can plug in multiple textures to one material slot, and itll use the first one that exists
Added toggle for the double buffered SG Tree
Added prototype thing for truetrace to pull from the original shaders texture scale/offset
Added debug view for depth
Added simple non-realtime multiscatter fog
Added support for Instancing using Hardware RT(Requires unity 6000.1.0a4f
Added basic imposter prototype to the instances
Added prototype version of direct scene rendering for HDRP and URP
Added a thing that will hopefully prevent the globaldefines file breaking itself on new TT import
Added small script thatll allow you to render truetrace to rendertexture
Added small script for taking screenshots every X seconds("TTTimeScreenShotter")
Added maximum sample count before going idle
Added better handling of camera resizing/screen resolution changing, courtesy of UnityDev
Added an experiemental high performance mode, turn on PartialRenderingFactor to 2

Scroll wheel can now be used to change the DoF aperature size

Changed direct sky illumination to add to indirect so it is handled much better by ASVGF(low frequency signal)
Increased terrain stability through a better binary search
AlbedoBlendFactor material now defaults to 0, not 1
Updating RayTracingLights now resets accumulation

Small fix for SGTree refitting
Fixed BVH refitter
Fixed annoyance with the preset system where it would lag
Fixed small bug with hardware RT shadows not getting glass color when terrain exists in the scene
Fixed bug with unity URP breaking my postprocessing
Fixed upscaling bug with sky for HDRP and URP
Fixed upscaling bug with HDRP for its depth buffer with ASVGF
Fixed materials on instances getting screwy with more than 1 source
Fixed issue with materials not being loaded properly in HDRP
Fixed ASVGF in HDRP with custom render scales being wrong
Small fix to gaussian tree for naive light sampling
Small modification to secondary world position reconstruction for more precision
Small fix to RIS sampling for unity lights when there are area lights present
Fixed an issue with HDRP where resizing the screen would skew the image
Fixed an issue with hdrp where toggling off/on the custom pass component would break some of the buffers
Fixed ASVGF depth sampling in HDRP
Fixed DX11 Only Mode

Updated readme with sources for vMF diffuse and EON diffuse models
Updated the README with the URP instructions
URP injector now gets automatically added

Freed up about 400mb of VRAM at 1080p from removing buffers
Massively reduced per-frame GC allocations
Starting to move over to Adjoint matrices
Most minor of optimizations to CWBVH traversal(nothing noticeable)

v.2.5.3

09 Nov 00:41
60b083b
Compare
Choose a tag to compare

Added Gaussian Light Tree to be used instead of the standard Light BVH from PBRT 4
Added toggle to toggle between the Gaussian Tree and the Light BVH(Gaussian Tree performs worse but has better quality, especially on non-mirror metallic surfaces)
Added EON diffuse model
Added support for Vertex Colors
Added an SDF slicer(mostly for Yanus). Access it at TrueTrace -> Resources -> Utility -> TTSDFs
Added basic bilinear upscaling option
Added primary background tint, tint strength, and primary background contrast for background/ray miss
Moved to compressed UV's for triangles
Re-added "Is Background" material flag
Added per-material toggle for Vertex Colors
NEE can now contribute(minorly) to rougher glass
Small modification to how refraction/absorption is handled
Added double-buffering for Gaussian Tree/Light BVH so that moving objects that contain emissive triangles dont screw with ASVGF(may impact performance, let me know if it does...)
Gave the same memory optimization(basically converting everything to nativearrays and pointers) treatment I do for the standard BVH's to the Light BVH
Added secondary/detail normal map with its own scale, offset, strength, and blending material parameters

UI:
Added ability to toggle some of the GlobalDefines directly from the CPU(go to TrueTrace settings -> Functionality Settings), so you dont have to modify the code file directly for most things
Small UI modifications, added most of the limiters to value fields
Added automatic disabling of toggles that should NOT be modified during play mode
Added basic folder system to material presets
Upscaling foldout disappears when resolution ratio is 1

Bug fixes:
Fixed turntable image saving
Fixed high resolution screenshots using panoramadoer(it doesnt only do panoramas...)
Fixed bug where materials wouldnt save properly
Fixed bug where loading presets would only load material parameters of the dropdowns that were open
Fixed occasionally exploding glass
Fixed spotlights with shadow softness != 0 being sampled badly
Fixed pointlights, spotlights, and area lights having different intensities than their mesh counterparts(aka, area light of same area and intensity as an emissive quad will now look the exact same in output. Pointlights and spotlights now look the exact same as an emissive sphere)
Fixed instances breaking with unity terrain

Small update

28 Sep 18:01
7f70d43
Compare
Choose a tag to compare

Added different blending methods for secondary/primary albedo
Added WIP convolutional/FFT bloom
Added AlbedoBlendFactor
Secondary Albedo no longer needs mask to work, falls back on "AlbedoBlendFactor"
Changed thin glass from "sqrt(Color)" to "sqrt(Color / PI) * PI" to account for the color correction
Renamed "Denoiser.cs" to "TTPostProcessing.cs" finally
Changed path names for panoramas and turntables
Added WIP convolutional/FFT bloom
Added AlbedoBlendFactor
Secondary Albedo no longer needs mask to work, falls back on "AlbedoBlendFactor"
Changed thin glass from "sqrt(Color)" to "sqrt(Color / PI) * PI" to account for the color correction
Renamed "Denoiser.cs" to "TTPostProcessing.cs" finally
Changed path names for panoramas and turntables
Tiny changes to the tracer to hopefully perform better
Also works in Vulkan

Quality of life overhauls - Hotfix 2

12 Sep 23:10
Compare
Choose a tag to compare

Materials:
Re-added texture rotation support for bindless textures
Added kelvin option for coloring RayTracingObjects, this applies also to emissive raytracingobjects
Glass marked thin is now colored based off of scatterdist and surfacecolor
Removed "Range" property from MaterialMappings, as considering them all floats seems to work fine
Sky behind glass should now refract properly in ASVGF
Added "Color Bleed" slider to reduce the amount that bounced light gets affected by the surfaces color
Materials with a pdf of less than or equal to 0 are marked as invalid paths
Fixed IgnoreBackfacing toggle with hardware RT
Fixed IgnoreBackfacing for emissive triangle sampling
Added experiemental fade mode, needs to be turned on in GlobalDefines
StainedGlassShadows is now affected by BlendFactor, and ScatterDist
Individual submeshes can now be glass with Hardware RT
Added Stained Glass support for Hardware RT
Updated DiffTrans to actually respect distance traveled

ASVGF:
Improved performance slightly
Added more passes to the indirect pass for cleaner denoised results
Significantly improved reflections
Fixed artifacts coming from semi-metallic surfaces
Adding metallic stopping weights to blur

Performance:
Moved initialization for globalcolors and radcache from RayGen to ShadingShader
Improved ASVGF performance by removing jitter, instead I replaced the old offset step size factor(Old: [0,1,2,3,4,5]; New: [0,5,4,3,2,1]) (THANKS SNURF!)
Massively optimized the playmodesaving of materials when you change many materials(didnt realize how grossly slow the origional system was)
Slightly optimized mesh refitting accumulation step

UI(or User Experience):
Completely redid the RayTracingObject material parameter view
Added lines to some of the raytracingobject material parameters when you hover over them to show what other parameters can be combined with it(Turn off in truetrace settings -> Functionality Settings -> "show material helper lines")
Added outline to hovered over material parameters(Turn off in truetrace settings -> Functionality Settings -> "show material helper lines")
Added toggle to turn off sky transmittance affecting sun color in Functionality Settings
Added button to autofocus, left ctrl + middle mouse button in the play screen will autofocus DoF to the mouse
Changing DoF focus will reset accumulation
Added button to quick-select materials, middle mouse button by itself in the play screen will pull up whatever material/surface the mouse is over
Removed sun desaturation slider
DX11 will be forced on if DX12 is missing, and will force off the other toggles that rely on DX12
Removed TextureScrollChanged button
Added toggle to TrueTrace Settings -> Functionality Settings; When on, changing any materials parameters will reset accumulation

Misc:
New shortcut entries for Screenshot and BVH Building, assign them in Edit -> Shortcuts in unity, they are named "TrueTraceScreenshot " and "TrueTraceBuildBVH"
Added FXAA
Fixed copied scenes not creating their own new TTSettings file
Added system ontop of the object que system to hopefully handle edgecases better(realized I havent tested this as thoroughly as I would like, so let me know of any errors!)
Fixed terrain albedo with bindless
Improved OIDN denoiser to respect TrueTrace texture tilings
Fixed long standing misspelling of "Emission", and changed all variables named "Emmissive" to "Emission"
Modified how the RadCache reacts to glass
Fixed auto start for dx11
Fixed ReSTIR breaking when dx12 doesnt exist at all
Default camera fly script will no longer point straight up on start in HDRP 2023+
Added new Debug Views in "GlobalDefines.cginc" - Material ID, Mesh ID, Triangle ID, Albedo, BVH view, Radiance Cache, GI lighting
Removed "Hierarchy Modifiers" and "MasterMaterialEditor" scripts
Improved normal maps by more accurately deducing the input maps format
Improved the sky
Fixed sharpen postprocess breaking when changing resolutions
Fixed dx11 bug
Replaced "Rotation Animation" and "Translation Animation" files with a single file

Hotfix:
Fixed upscaling not working correctly
Hotfix 2:
Fixed turntable script breaking builds
Fixed ASVGF not working in DX11
Fixed DoF focusing
Added jitter/AA to panorama rendering

v2.5 - BINDLESS UPDATE

13 Aug 16:50
Compare
Choose a tag to compare

ADDED BINDLESS THANKS TO Alex Bakanov(AKA Meetem)

ASVGF:
Small improvement to asvgf for specular
Small modifications to ASVGF for black objects
Fix to asvgf to not freak out in refracted water
Changed up the exposure with asvgf so they play a bit nicer

IES:
Small fix to IES lights
IES lights will now actually be correct if they get their texture removed and their object refreshed(toggled off and on)

Backgrounds:
Added individual intensities to primary and secondary backgrounds
Added HDRI rotation fields
Added scaling to HDRI

RadCache:
Small change to radcache to allow for high speed radcache to not doublecount the sky
Fix to radcache for sky through glass
Changed radcache a bit so it stops displaying the cache directly in reflections
Small improvements to radcache

Automation:
Truetrace will automatically create the needed custom pass stuff for HDRP
HDRP is now completely automated and should require no setup aside from what is needed for BIRP(so no additional setup)
GlobalDefines for: HDRP, Bindless, Hardware RT, and DX11 are now automatically set on the GPU when toggled on the CPU

Added a "TrueBlack" toggle to globaldefines, which allows colors to reach black, instead of being limited to dark grey
Fixed alpha mapping for close surfaces with rt cores
Small change so that glass isnt too dark
Small fix to roughness slider in master material settings when set to smoothness resetting
Small fix to hdrp compatability script
Added global emissive object strength adjustment
Added prototype water object and stuff if you wanna play with it
More changes to glass
Removed Video material type because bindless can now do its job 100% through rendertextures
Fixed atmosphere
Fixed issue with TTSettings not registering properly under specific scenarios
Emission aware texture light bvh defaults to off now because while it is very useful, it can cause massive memory consumption with lots of Emission textures that may seem random
Moved a few things around in truetrace settings
Small change that should fix null throughputs breaking things
Change to light bvh to massively optimize it if you have a bunch of identitical triangles
Fixed DoF when center pixel is emissive
Small improvements to emission
Re-added point filtering for bindless
Added small stopper in case you add more than 2048 textures to bindless(Let me know if you hit this as the limit can be doubled, but have yet to find a reason to)
ReSTIR GI handles blacks better now
Small performance bump
Thin glass now colors like normal

Added IES support for spotlights

26 Jul 21:49
b99f9b5
Compare
Choose a tag to compare

Horizontally flipped panorama
Changed radiance cache to mostly only run on diffuse bounces
Reorganized files a bit, put ASVGF in its own folder
Fast-moving smearing in asvgf is mostly gone
Added ability for panorama to go through several cameras
Fixed radcache on terrain
Fixed some restir ASVGF stuff for better screen borders
Fix for panorama preventing builds
Added simple IES system
Panorama system will do the resolution itself now
Fix to radcache + ReSTIR + NEE + Mirrors
Improved asvgf filters quality
Improved asvgf filters performance by about 25%
Small modification to material pairing to indicate what slots are single component textures

Added Panorama Rendering System

17 Jul 06:08
Compare
Choose a tag to compare

Fixed OIDN crashing unity on play mode exit in hdrp 2023
Fixed terrain albedo being screwed up
Added equiangular automatic panorama rendering abilities
Made IgnoreBacking flag in GlobalDefines affect NEE sampling
Fixed material swapping after raytracingobject has already been added
Fixed bug where adding a mesh that wasnt read/writeable in a build crashes unity

Emergency hotfix

12 Jul 16:50
Compare
Choose a tag to compare

Emergency hotfix because I uploaded the wrong file
Also small modification to restir gi temporal to switch to plane distance

Fixed material presets and camera

11 Jul 16:47
Compare
Choose a tag to compare

Fixed bug with material presets
FINALLY FIXED CAMERA IN 2022 OR HIGHER