This version of my system has been discontinued as of its last released version (1.3.0). I have moved on to version 2.0 of this system, which as of June 22nd, 2023, is still being worked on and updated. It has more features, and overall looks more appealing in my opinion.
It can be found here.
Hello! This is an ongoing script I’ve been working on that adds a slight bit of realism to your experience! Allow me to introduce you to Sunray Intensity Compensation:
This script adjusts the intensity of the SunRaysEffect in game.Lighting
based on the player’s CurrentCamera angle relative to the sun’s position in the sky.
In other words, the more you look towards the sun, the less intense sunrays are.
As of
April 25th, 2023
, I have updated the script to version1.3.0
The script can be found through the link located in the
Script
dropdown section below.
Check the
Changelog
section below for any changes made, I will continue to keep this updated.
Notes
•There is a config/settings section in the script. Feel free to change whatever you’d like.
If there are any better ways to code sections of this script or the entirety of it, do feel free to post a comment. I will gladly adjust the script to add the necessary changes and give credit where credit is due.
This also applies to bugs and any instances of lag being caused by this script. Please let me know if you encounter either of these!
•Renamed this post to “[Lighting] Sunray Intensity Compensation” from “[Minor Effect] Sunray Intensity Smoothing”
Showcase
Uncopylocked Experience, free to test and/or download
Sunray Intensity Compensation System - Roblox
Without sunray updates
With sunray updates
Script
Sunray Intensity Compensation - Roblox
This will be updated if comments are made that lead to improvements
Changelog
V1.3.0 - April 25th, 2023
•Increased NearSunRays’ intensity from 0.01 to 0.06 – There should really be some sunrays when looking at the sun directly
•Removed “BackTurned”. I realized this wasn’t at all necessary, since everything that needs to be calculated when looking behind the “HorizonLine” can be done with just the horizon line, no other radius is required for a good effect.
•Replaced the “ForgivenessRadius” customizable number value with the Lighting.Sky
’s SunAngularSize. You can consider this the new method of customizing the ForgivenessRadius!
•There is now a “fake sun” that appears in the sky. It is always a fixed distance from the camera, sitting 500 studs away & is always in the position of the sun.
-This is used specifically used for checking if any objects are obstructing the players view of the sun. And to set the sunray intensity to a fixed value if view is obstructed. (Tweening the intensity is also a slight bit slower in this state, for increased immersion.)
V1.2.0 - April 23rd, 2023
•Added the creation of “FarSunRays” and “NearSunRays” - NearSunRays will be static values for immersion, whereas FarSunRays will be what is adjusted. This SunRaysEffect “reaches” further, for lack of a better term. FarSunRays is what will be affected from the “Settings” module.
•Added a “HorizonRadius” variable that dictates where the horizon is in the sky relative to camera angle
•Added a new “BackTurned” setting in the “Settings” module. This setting really doesn’t need to be adjusted, it is mainly just for the script to know when the player is facing away from the sun. Which is more or less always at the same value.
•Added a function to double check that the correct sunrays were created
•Adjusted the methods used to calculate what intensity the sunrays [being adjusted] need to be set to
•Opened a testing place for this script. It can be found on @WoahItsJeebus’ Roblox profile
-This testing place has a ScreenGui that shows your current angle, intensity, as well as other information.
-Feel free to check it out!
V1.1.0 - March 25th, 2023
•Added presets for easy setup and for those who don’t feel safe messing with scripts
Default
|| Default preset is fast, near instantaneous. Use this if you don’t want a (visibly) smooth transition
Realism
|| Realism is faster than default, but slower than cinematic. Use this if you want to add a smoother adjustment feel to sun rays.
Cinematic
|| Cinematic adjusts the slowest of all presets. This is best used for cutscenes with fairly sluggish camera movements. (Spinning your camera quickly can cause a flash of light. More with slower transition times)
Custom
|| Custom is completely up to you to do as you want with. Set the transition time, style, and direction to your liking with ease.
•Added Settings
and Presets
ModuleScripts. Presets
was not meant for tampering with, but you are more than welcome to! The Presets
module includes Default, Realism, and Cinematic TweenInfo configuration tables. Settings
has the Custom preset.
•Adjusted the forgiveness radius to feel more realistic. (This is still subject to change, just as the default)
•Renamed the main LocalScript to “SunrayIntensityController”
•Removed some unnecessary/unused variables in the RunService.Heartbeat:Wait()
loop
•Changed code location for checking Lighting.ClockTime
on the client to prevent false fires when night time
•Added more comments to detail specific sections of scripts
Credits
•Thanks to @Katrist for the script “How to detect when player looks at sun” example code. Though not the original poster of the baseline code used, that post is where I found the code. Further credit & thanks to @Eestlane771 for providing the baseline code and explanation to Katrist and further me. Eestlane’s post can be found here.