Please complete one of the following sentences:
As a Roblox developer, it is currently too hard to . . .
As a Roblox developer, it is currently impossible to . . .
As a Roblox developer, it is currently impossible to reliably have underwater elements that should be visible from outside of water bodies because low-medium graphics quality settings make water surfaces opaque.
If Roblox is able to address your issue, how would it improve your game and/or your development experience? Please be as specific as possible.
I intend to have various things visible below water surfaces — such as things players can interact with, or letting players construct underwater structures. Because on lower quality settings water surfaces become completely opaque, it would severely affect the gameplay experience of a majority of players.
I also use a very high transparency factor to improve underwater visibility, causing a huge visual difference between the various graphics quality levels:
Although there certainly is a performance cost associated to it, I would judge it to be worth it for gameplay reasons in my scenario. I cannot really imagine hundreds of transparent parts being more efficient than transparent terrain water either (but maybe I’m wrong :-))…
I wish developers had more control over what quality levels do. Like, what if by default the behavior was like this but a developer could decide that at every graphic level should have transparent water? What if we had a list of every visual setting and could decide what the minimum quality setting for it was?
This is unfortunately complicated by the dependencies between effects. Current water transparency implementation relies on the presence of readable depth buffer which requires adjustments to the rendering pipeline, and also is not supported on some hardware. (to support the feature request above, we’d need a different implementation)
I don’t really expect more than the current water fragment shader + roughly blending like plastic does for lower qualities (without refraction). It sounds like standard blending functions can achieve that, but I can imagine that could conflict with something else in the pipeline…
Regardless still a thing I would love to have someday.