Glass material is completely unusable

As a Roblox developer, it is currently impossble to utilize the glass material effectively due to its rendering limitations. The glass material, while promising in terms of visual potential, is hampered by rendering issues that undermine its intended benefits.

Impact and Improvement:
If this issue is addressed, it would significantly improve our development experience by enabling you to leverage the visual potential of the glass material without encountering rendering drawbacks. This would lead to enhanced game visuals, a more immersive player experience, and greater creative possibilities.

Description of the Issue:
For 6 years (since the release back in 2017) , the glass material has suffered from rendering limitations that have persisted despite being brought to the attention of the developer community. Instances such as decals, textures, particles, beams, and billboards, as well as water and semi-transparent objects, do not render properly when combined with the glass material. This issue has far-reaching consequences, including the disruption of visual effects, unintended visibility through objects, distortion of refraction effects, and even potential exploits involving camera manipulation.

This problem was acknowledged on the developer forums many years ago, with an explanation that these rendering restrictions were intentional due to performance concerns. The issue was also discussed in the context of the introduction of the glass material 6 years ago. And 4 years ago , an engine request had already addressed this matter. (2019: here ).

Despite the mention of potential improvements in RTX support during RDC 2022, no concrete action has been taken to address the issue.

Proposed Solution:
While I understand the importance of optimizing rendering processes, the community has been left without a viable alternative to the glass material rendering issue. so i propose the following solution :

Toggle for Refraction on transparent instances: Introduce a toggle that allows developers to disable refraction rendering for transparent instances using the glass material. This would permit objects like particle emitters to render normally, as if the material did not exist to the transparent instance but still refracts the non transparent objects around. While this might raise aesthetic concerns, developers are adept at finding workarounds to ensure visual quality.

Conclusion:
the current limitations of the glass material significantly hinder its potential, causing a detrimental impact on game visuals and development possibilities. By implementing a toggle to disable refraction rendering for transparent instances, developers would regain the ability to leverage the glass material’s visual potential without compromising on performance.

35 Likes

At this point, I feel hardware has progressed enough that refraction needn’t be mutually exclusive with transparent and world space GUI objects behind the glass any more - this would also fix the same issues with terrain water.

That said, I wouldn’t say no to also having a refraction toggle, for developers who just want the surface texture. Refraction as its own standalone property would be nice, but is out of scope for this request.

7 Likes

Definitely! Roblox hasn’t bothered fixing it even after so long

7 Likes

Such toggle would be nearly idential to using SmoothPlastic. Instead, I would much prefer a “camera trick” type refraction for performance.

This feels like it should be a bug report instead of a feature request

1 Like

It’s a Feature Request because these problems are confirmed to be “intentional” for performance reasons. They want the engineers to re-test and change behavior that isn’t technically broken.

2 Likes

Using SmoothPlastic or other materials looks pretty different to the way Glass tints what’s behind it. look at this:

See how the black part stays black with the glass material, and how SmoothPlastic adds color and brightens the black part. Glass seems to mimic glass in real life; it only mostly lets in the color that it’s tinted. Any other material doesn’t do this, it only adds(?) its color to what’s behind it.

Now that I think about it, maybe it would be a good idea to have a few different properties to control these transparency settings, but not just for the glass material. Some plastics and materials in real life have different levels of refraction, transparency, diffusion, and specular.

1 Like

Maybe a RenderMode property! you can choose between things like “Replace”, “Additive”, “Subtractive”, “Multiplicative”, etc. like with layers in Photoshop but with parts.

2 Likes

Yes, that would be great. But I was actually wondering maybe some sort of a procedural shader system like in Blender might be more suitable because we can change all of these properties, import and export them.

1 Like