The main reason why I abandoned the old one was because it was extremely lagging on medium to large scale games.
DISCLAIMERS!
If you want to use this expect a lot of lag on lower-end devices. So add a option to toggle this on or off if you are using this(also use the “Enabled” option in the configuration or else it may break)
Insert this in StarterPlayerScripts for it to fully work
This does NOT create real-time reflections.(I don’t believe that is currently possible with the current roblox client)
This is recommended to use with shadow map
If you are wondering what the configuration values do read the script called “README” in the configuration
FEATURES
Global Illumination (of course!)
Water Caustics
Neon Parts and Cracked Lava now emit light!
Light that travels through transparent parts that don’t emit shadows will now change color
The previous script still works from what I know, the problem is is that it is really laggy and I won’t be updating that one anymore. BUT I might make this script work with point lights soon.
This is amazing, only 2 questions though:
– Is there a problem if I use it with future lighting?
– The map I’m going to use it on is massive will it be laggy?
Future lighting is just more resource demanding and I was designing this with shadow map because it looks a lot more smoother, I’m not stopping you from using it but it can get more laggy when you use it and it can look out of place a little(In my opinion). And your game will probably lag in a massive map because no matter what you do, the more parts there are, the more lag will be created by raycasts. (Also I’m going to make it work with point lights which may make more lag once released)
NEW UPDATE! As requested, the script now works with PointLights but if the game is lagging to much for you you can disable it with the new option AllowPointLights.
NEW UPDATE AGAIN! I have added a feature to help smaller details like neon parts get noticed. Just insert a “Number Value” into a small part and call it “ForceCheckLight” and set the value to 0-3.
This implementation of ray tracing looks pretty crude. From what I see you are only tracing 1 (or maybe 0.25 or 0.5?) rays per pixel, and then using a crude denoiser (Maybe A-Trous, or just blank filling algorithm)? This seems to have horrible temporal results, making it change the colors on the screen every frame, making some funky results even when not moving. If you are implementing A-Trous for denoising right now, it would be pretty simple to implement SVGF for adding some temporal denoising: