This is insane !
Now, we can make a custom underwater effect !
Amazing! I already updated the Water transparency for Starlight World 2ās swimming pool!
I like clear swimming water, because itās easy to see swimmers below and very easy to see where you are swimming.
Useful update! But why not separate water transparency from the fog and give fog a customizable starting and ending value?
I applied the suggested transformation to revert to preupdate water transparency, but this caused my surface water to appear nearly completely opaque, where before it had a nice transparency.
It looks like this update only affected underwater fog transparency, and did not affect surface water transparency. Itās not possible to revert to previous visuals because these two values are arbitrarily linked to one property. These really need to be two different values. If there is going to be aesthetic-breaking changes that require updates to fix, which is fine with me, then it would be nice if it was executed thoroughly and separated properly into two properties.
Is water supposed to render like this???
I didnāt think that underwater viewing had any sort of performance implications.
When your camera is underwater and thereās no transparency, are far away objects rendered? Also whatāre the sizes of these performance implications?
I believe this is from Robloxās level of detail system with terrain and as of now I donāt think thereās a way around it. It just helps with lag to render it with less precision the farther it is from the camera.
I think if youāre at graphics 10 it isnāt like that.
While the update is nice, itās too bad the default was set to 1 and not 0.1 which is the equivalent of what it used to be. Shutting down servers on weekends is not what we want.
I like the update. The old WaterTransparency didnāt even worked for meā¦
Am I able to make multiple rivers, for example, and set different transparency for the water?
Thank god this is now a feature.
Doesnāt seem like it. It affects all water in-game globally.
Pretty sad. They should implement an array property of this and we could like, select water?? Although it may be extremely hard to do this, it would be cool.
With the new update, Iāve noticed that water now has a very noticable color gradient from above water at the underwater fog distance. It happens even when no parts are under the water:
Setting WaterReflectance to 0 and WaterTransparency to 1 looks pretty dramatically weird:
Even if the underwater visibility distance has to have a limit for performance reasons, the gradient should be over a longer distance to be less jarring.
I find this issue distracting while playing and Iām sure others do as well. Is there any chance of this getting fixed?
I also agree with @Zuki that itād be better to be able to unpair the water transparency for above and below water. Since the update, I canāt make underwater terrain as visible as I want to from above water without cranking down the transparency really low, which makes the water look like air when youāre inside of it. I think other peopleās suggestions of having a WaterFogStart and WaterFogEnd distance like the fog for air would help with this as well.
Since last month, Iāve experimented a bit more, and I think another part of part of why the new water looks worse to me is because the waterās transparency is now based on your distance from the surface of the water, rather than the distance to whatever is underneath the water.
This means that objects deeper underwater donāt look any foggier than than ones right under the surface:
Compare to before this update:
Iāve also noticed that the horizon is a circular shape underwater, which looks better than the flat line used above water. I think that should be used on the surface as well:
The other consequence of using distance to the surface to determine transparency is that you can actually see through an infinite distance at certain angles, since how deep objects are is unrelated to their fogginess:
I think that most, if not all, of these issues can be improved upon without dramatic changes to the water rendering pipeline or making rendering significantly less performant1. The quality of the water shaders impressed me when they first released a few years ago, and still look pretty sweet today. I think minor tweaks along the lines of ones that I and others have mentioned would be enough to make water look better and feel more consistent.
1If someone understands how these shaders work better than I do, please correct me. XP
I know it probably would be better to write a feature request instead of replying to an older announcement, but I donāt have Regular status yet so I decided to continue this thread instead.
Iām digging around trying to figure out how to achieve this effect.
I want water that looks clear from the outside but is cloudier than the default when you are in the water.
I would be nice to have two settings instead of combining them into one. The problem is that Roblox has no idea what scale my game is working at and so canāt make a good guess at this. I want to hand-tune it.
I know im a year late to this discussion, but I have added a thing like this to my game. Its done by checking if the players state is swimming and if the current camera is underwater. Yeah currently the underwater height is hard-coded, but that could be swapped out with a simple raycast or something.
Here is the code:
local FogConf = require(script.Parent.FogConfig)
local player = game.Players.LocalPlayer
local Char = player.Character or player.CharacterAdded:Wait()
local Humanoid = Char:WaitForChild('Humanoid')
local camera = workspace.CurrentCamera
local IsInWater = false
Humanoid.StateChanged:Connect(function(old, new)
IsInWater = false
if player.Character then
if new == Enum.HumanoidStateType.Swimming then
IsInWater = true
end
end
end)
while true do
local playerY = camera.CFrame.Y;
if IsInWater then
if playerY < -1 then
workspace.Terrain.WaterTransparency = FogConf.Underwater_Water.Transparency + (FogConf.Underwater_Water.Decay_Per_380_Studs * (playerY / 380))
end
else
workspace.Terrain.WaterTransparency = FogConf.DefaultWater.Transparency
end
wait(0.2)
end