Rendering Updates - May 2017

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.

78 Likes

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!

5 Likes

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).

11 Likes

:heart_eyes: Can you go into detail please?

3 Likes

Can we expect particle shadows and such?

10 Likes

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.

1 Like

Thank you :heart_eyes:

1 Like

No.

Could is be possible in the future?

I’m sorry if it’s a ridiclous question. I’m not a tech wizard and meshparts are the only thing that i interact with in studio.

Sweet! I’m guessing that this will really help performance issues with unions and mesh parts on mobile devices?

not just mobile devices but on low-end computers like mine

its a blessing and a curse to be using a low-end computer to develop

5 Likes

Will ParticleEmitters ever be affected by light sometime in the future?

Check the OP, that shipped today.

Shhh that’s a secret (also it’s only live on desktop)

5 Likes

“Sometime in the future”

  • was shipped today

  • zeuxcg named his video on the new lighting “Future is Bright”

  • particle emitter being affected by lighting was a feature in the new lighting video

oh my gosh it all adds up

the update is near :open_mouth:

3 Likes

@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!

2 Likes

Keep in mind that this is a team effort - many people contribute to making ROBLOX look better and run faster :slight_smile:

3 Likes

Please do give the team a huge thank you for these updates :smiley:

10 Likes