This is a thread with rendering updates for this month! Thanks to @maxvee, @Qiblox and @zeuxcg for working on these.
GUI lighting
In a continued effort to make 3D GUIs more of a first-class citizen, both SurfaceGUI and BillboardGUI objects are now affected by lighting - they both are influenced by local light sources (e.g. PointLights) and receive shadows from the world. (they don’t receive humanoid shadows to make sure the performance impact of this change is minimal)
This is controlled by new LightInfluence property; setting it to 1 means that GUI objects are fully affected by lighting (as other parts are); 0 corresponds to old behavior. Sometimes the values between 0 and 1 are useful for some special effects and/or to make UI that’s somewhat visible but harder to read in poor lighting conditions.
For backwards compatibility, existing objects have this value set to 0; objects newly inserted in Studio, however, will have it set to 1.
Particle lighting should ship tomorrow btw.
Assorted fixes
As usual we fixed a number of smaller bugs, specifically:
Fix some cases of particle emitters flickering in and out on low quality levels
Fix Arc Handles rendering on low quality levels
Fix MSAA artifacts on macOS Sierra with AMD GPUs (by disabling MSAA :-/)
Fix black gradients visible on large plastic parts
Fix camera clipping into thin (<0.5 studs) parts
Fix underwater rendering
Fix SteamVR launching if you have it installed regardless of whether your Vive is plugged in
Memory/performance improvements
Ongoing work is being done to improve the memory consumption and performance of rendering code across the board. We have some changes that aren’t yet ready to ship but we have two that are live:
Reduce part rendering memory (VRAM) usage by 20% for all types/shapes of parts
Large blocks no longer have highly tessellated faces, which reduces part rendering memory
We are also working on further memory improvements, significant changes to part rendering system that will improve memory and performance across the board, and also hoping to get Metal support on macOS done next month. Stay tuned!
As usual please report issues that you think are associated with these updates, either in this thread or in Bug Reports forum.
This is very appreciated. SurfaceGUIs never really fit aesthetically into the game because on one end we might use them where artificial brightness isn’t appropriate e.g. wooden signs, and even on the other end where objects were meant to emit light, such as an electronic billboard or TV, LightInfluence=0 still looked out of place since these items, realistically, are somewhat affected by lighting.
I’ll definitely start playing around with creating some electronic billboards now that this has changed, and will be glad to use SurfaceGUIs for 3D text where I previously didn’t. The ParticleEmitter lighting will also be nice to see – I still remember that lit smoke from your second to most recent hack week demo!
Fun fact: lit smoke was featured in two hack weeks I’ve done (https://www.youtube.com/watch?v=XymOYkMIljY, and the last year’s one). The first hack week used a pretty expensive approach, which was completely incompatible (performance wise) with the much more computationally costly lighting from last year’s HW, which was a forcing function to come up with a cheaper method. That one ended up so cheap we can do it everywhere (same as other lighting effects, particle lighting will work on all platforms in all quality settings, but will look slightly nicer on high quality).
Is the LightInfluence property also available for individual parts? Shadow render distance is quite low and abruptly cuts on large structures, i would prefer disabling in those cases.
These are my favourite threads. Thank you to the team yet again for the regular updates and performance improvements. I’m also loving the new technical blog posts you guys have been doing recently.
@zeuxcg do you get praised in the office over there? These updates are literally godly, and make ROBLOX looks so much better. And it’s not like you do one good job and go with it. You keep pumping them out. It’s awesome!