Increase distance at which PBR shading stops

As a Roblox developer, it’s currently too hard to make large, open environments look more detailed due to the distance at which PBR shading (also per-pixel shading) stops and simple per-vertex shading begins, looking similar to how objects look at graphics level 1 - 2. Even on graphics level 10, shading stops at around ~600 studs. Despite all the upgrades to Roblox’s rendering engine these past few years, this is one limitation that hasn’t changed for a while now.

Here is a modified Baseplate template to help illustrate the point. This effect is more noticeable where the sun is closer to the horizon and thus creates a stronger specular highlight, and in scenes with less/no fog.

<600 studs

>600 studs

As another example, I created a textured plane from a cloud layer texture with normal maps applied and duplicated it a couple times. Note that this scene extends ~4096 studs across which might be too high of a limit, but at this point one would probably start considering using fog to make the scene prettier…

Up Close

From afar

As can be observed there is a noticeable color discrepancy between pixel-shaded objects and vertex-shaded objects (note that these objects all have the same textures and colors). The normal map on the shaded object also fades out at a distance, which… doesn’t help with creating a detailed scene.

Although this limitation can be masked with dense amounts of fog, I don’t think it’s viable for developers to have to do so, especially if one wants to create a vast scene where you can look far out into the distance.

With Atmosphere.Density = 0.3

If this issue was addressed, it would help the development experience by allowing us to create large scenes with more detail, without having to use a high fog density value to mask rendering limitations.

17 Likes