Head & Body Part shading looks sharper and worse than it used to

I’ve considered this to be a bug because it was an unexpected and unannounced change in behaviour with no migration period or alternatives to recreate the previous behaviour.

As a developer, I have noticed since the client updates of either December 4th 2019 or December 6th 2019, and ever since, that shading on parts and specifically players and their outfits have been visually sharpened without warning, on all lighting modes. This happens in both Roblox Player and Roblox Studio, consistently, without fail on graphics modes 3 and higher.

This is especially noticeable on Compatibility lighting, which is intended to simulate the former Legacy lighting mode. Attached below is a picture comparing the shading of the normals in 2019 Studio on graphics level 21 to 2020 Studio on the same graphics level.

When Compatibility was added as a lighting mode in 2019, it was intended to more or less emulate Legacy. Whilst there were bugs on release, the accuracy of it versus Legacy (other than in select cases), was extremely good, and a lot of time was put into ensuring existing games didn’t break, or look too different visually.

However, since the specified time period, the shading of the normals of body parts (Head, Torso, Right Arm, Left Arm, Right Leg, Left Leg, etc) has been changed without reason to be sharper and they no longer have the same visual effect they previously did, looking harsher and sharper.

image image

Similarly, Voxel and ShadowMap had their “shinier normals” aspect removed without warning at the same time. Voxel, ShadowMap and Future are all suffering from this particular rendering bug, and all 4 including Compatibility suffer from the sharp shading issue.

To reproduce this bug, join any Roblox game, be it in Studio or from the website, and make sure your graphics settings are set to Level03 or higher. This will consistently occur, viewing or joining a place doesn’t appear to make a difference.

For bug reporting purposes, I have provided my (temporary, main pc died a few days ago) specifications below, however, I know this is happening to what seems like all users using graphics modes 3 or above in-game or in Studio.

Outfit renders on the website have also been affected, and I believe this rendering change may have been a hackjob fix designed to stop the “shiny avatar” bug which appeared on Roblox outfit renders created between October-December 2019.

This could be fixed to restore the former behaviour (at the very least on the Compatibility lighting mode specifically) I would be very grateful, as in my view I feel like this is ruining the visual style of Roblox, and should therefore be fixed.

This has also resulted in various meshes (untextured cone mesh from 2010 birthday party hat as an example, there are more) to have really ugly and coarse shading cut-off lines, as well as ignoring the alternated lighting calculation on the part dependent on the Material setting. This happens in all places these SpecialMeshes are used, and appears to completely ignore the material setting unless a TextureID is set on the SpecialMesh. This bug does not occur if the mesh is textured and/or is also within a Model containing a Humanoid, which may explain why it has slipped under the radar for a while. To reproduce this one, insert an NPC into any game in Studio and remove the Humanoid, and TextureIDs of any SpecialMeshes inside the NPC model.

To better fix the “shiny avatar bug” after restoring the old behaviour, would it not be possible to change the lighting mode on Roblox’s Cloud Compute Service to use Compatibility, or Voxel with a lower brightness setting?

Whilst this has been occurring since about the end of 2019/start of 2020, I’ve only really noticed this more recently, and felt it was worthy of being reported as a major visual engine bug. This is NOT a user-specific bug and is platform-wide.

Computer specifications:

  • Windows 8, NT Version 6.2.9200 (previously Windows 7, NT Version 6.1.7601)
  • 4GB RAM (previously 8GB RAM)
  • 1TB HDD (previously 256GB SSD)
  • AMD A4-5000 APU (previously Intel Core i5-6300U CPU and Intel HD Graphics)
    (this happens on all devices that you can run Roblox on, there is no specific platform where the bug does or doesn’t occur as it can be reproduced 100% of the time)

Thank you for reading, and I appreciate this is a bit of a late report from when the bug first occurred.

This is my first bug report so apologies for any formatting errors or if I missed anything out :slight_smile:

FOLLOW-UP: I forgot to mention before that this has also affected the appearance of Catalog items and have made some of them look very ugly on-site and ingame versus how they would previously look.

One noticeable example would be the “Banded Top Hat” series. I’ve used the example here of W’s Top Hat, the most expensive of the range and also one where the bug is particularly obvious.

In the 2020 version, notice that the way the hat is shaded is far sharper than it was before, making it look less visually appealing than it once did, versus the 2019 version from before the shading bug occurred.


This is NOT the only hat this has happened to, although I believe it is the best example that I have been able to find.


I second this. This bug makes some objects in game, when using compatibility, look strange.


Follow up to this: Using the YouTube API checking through various videos, I have discovered that this rendering issue first occurred with the release of either the December 4th 2019 Player+Studio+Studio64, or the December 6th 2019 set of clients. I have further confirmed that this bug was NOT occurring before these client versions were released.

Here’s a video from December 3rd 2019, where a more “shiny” baseplate still exists along with smoother head shading:

Here’s a video from December 5th 2019, where if you look closely, the sharper head shading and dimmed down bevels on the character emerge (although, I cannot validate this entirely due to the low quality of the video, therefore, another one is below):

Finally, here’s another video where I can confirm this bug to occur:

(Notice how the baseplate doesn’t shine nearly as much, along with the dimmed down specular highlight on the player + sharper and in my view uglier shading)

Because of the low quality of the second video, I linked a better version which came after another client update on December 6th 2019, with the earlier release the day after the FIRST video I linked being the release of December 4th 2019. If anyone can find a better quality video between the 4th-6th demonstrating (or not demonstrating, rather) the shading bug please let me know in my messages.

TL;DR: The bug was introduced on either December 4th 2019, or December 6th 2019 (as per DeployHistory).


In regards to the other bug about Plastic (and other material parts) using SpecialMeshes becoming SmoothPlastic regardless of material setting, this bug has existed since Legacy was removed, although it has been worsened since this rendering bug.

From mid to late 2019, if you applied a texture to the SpecialMesh, the object would look just like it was intended to. However, since the shading bug has occurred, after using the fix it doesn’t solve the sharp “cut-off”, nor does it make the plastic as “shiny” as it once was. Images below.

As you can see in the above image, in 2019 simply adding a texture would solve this particular bug entirely.

However, in 2020, the same fix does not work to a full extent - the highlight glare isn’t restored, and the sharp edge cutting is still retained, resulting in it just looking like a toned down version of SmoothPlastic, which is NOT what the Plastic material was intended to be like.

This particular bug first occurred when Legacy was replaced with Compatibility (although still occured/occurs in the other lighting settings), and has worsened so that the workaround does not work as of December 4th-6th 2019, the same time the main bug this thread is about was introduced.


This seems like one of those things where they take optimization into priority rather than look :man_shrugging:. They seem to change some small things that can mess up quite a bit such as terrain, beam lighting effects (transparency issues), weird fog, etc.

Of course, this does ruin quite a few looks on certain objects and might mess up things in the future.


I agree, it might be that they didn’t account for keeping things looking right whilst trying to do optimisations on the client during that time period. I hope that they find a way to undo this visual change as it has ruined quite a few objects in quite a few ways, none of which cannot be fixed or worked around by the developer (believe me, I tried several different methods of trying to alter the material/highlight, none of which worked).


This happened around the time we switched to more physically correct shading equations.

I think previously we were computing diffuse lighting per-vertex and interpolating the result across pixels. With that change, we started computing diffuse lighting per-pixel, which is more accurate. I don’t think we knew about this case when we did that.

The issue in this thread, however, seems to be caused by a somewhat quirky feature we’ve had for many many years. We’re applying a directional fill light from the opposite direction as the sun/moon light. It’s illuminating the bottom left side of the noob’s face in your screenshots and is the reason why you see that thin slice on the noob’s shoulder that’s actually darker than the part of the arm facing away from the sun. This weirdness was hidden when we were interpolating diffuse across vertices. There’s not much reason to keep that quirk around anymore, so we plan to remove it later this year. That should make things look a little better in the noob case.

Btw there is no way that green hat is going to age well. The normal vectors of the mesh do not match the geometry well at all.


In this case, are there any plans for a way for developers to make things look more like how they used to with the per-vertex diffusion, or for a way for game owners to simulate the more inaccurate type of rendering?

Many classic-style games and objects only appear as previously intended on lower graphics levels (1 and 2), and a toggle per-game (or per-part) in Studio to force the more “basic” rendering style used on those modes whilst maintaining the positives of higher graphics levels? This might work as a fairly simple fix in some regards to the problem caused.

This may seem like something minor that many people wouldn’t notice/care about, although this can be really problematic, especially when you’re doing something such as recreating old games or trying to make a game with a more “old Roblox” look.

As for the noob/R6 1.0 case, thanks for clarifying that this part of it will be fixed in some form, it’s good to know that this has been taken note of.


I really, really doubt Roblox will ever give users an option to use Goraud shading for their projects; it’s such an extremely limited use case that you’ve described (for emulating an older look). The truth is that Phong shading has been the standard for a very long time already (Doom 3 in 2004 used it!), and Roblox’s strange mixture of specular shading using Phong and diffuse using Goraud honestly made no sense in the first place - even every 3D package uses phong/blinn-phong for it’s viewport preview, there’s not even a straightforward way to design models with normal vectors that work will with Goraud.


I’ve done some digging and comparisons between the 3 different types, and I do think a choice between the current blinn-phong shader, an attempt at emulating the former 2013-19 Roblox phong shader (but using the current shader in an effort to reduce extra baggage code) and low-graphics Gouraud per-game or per-part in Studio might be a useful feature to have so a developer can decide how they want something in their game to be shaded and rendered.

1 Like

Ever since voxel lighting came out, roblox hats have been very buggy with shadows. For example, my straw hat.

Voxel or Combatibility notice the weird black ring on the hat

Future or ShadowMap 3 quarters of the hat is just shadow.


These kinds of issues really should have been taken more into account than they were when Roblox were making these types of changes as it can really ruin the appearance of certain objects and also people’s outfits (to an extent) :confused:

1 Like

I think changing the shading on a hat from 2007 by updating the rendering engine to be a little closer to modern standards is hardly something that Roblox should be worried about. It’s important to note that blender doesn’t even shade this model well; it’s a disaster. Sacrifices must be made to stop living in the Playstation 1 era.


I agree, Roblox has been updating through the years and it’s going to in the future as well. The reason Roblox is updating things to modern is because it has to use as close as graphic as other games in present else no one would be playing Roblox anymore.


It doesn’t mean, however, that there couldn’t be more options on the table to try and help mitigate these issues (i.e. to allow a game developer to pick between the current and also the low-graphics shader for all graphics modes, Roblox force-overriding to the low version for specific hats, etc).

Obviously, how this could be implemented on a precise scale isn’t something I know and for all I know, it couldn’t be, although having said that I still believe that there needs to be a better option to prevent this type of shading bug from occurring on old Accessories and SpecialMesh objects.

It is not feasible to support multiple different shading methods mixed together into the same pipeline, nor is it feasible to identify which meshes require special handling.

The only option now is to update old hats and fix the weird normal tricks that looked okay 13 years ago but break down with current lighting methods. Unfortunately this is also a massive effort on Roblox’s part for minimal gain, and seems unlikely to happen.


Whilst this seems unlikely, there is some hope. More recent retextures of the banded top hats do infact no longer contain the weird mesh normals bug whilst retaining exactly the same size and style. Hopefully this can be done for the old/existing ones, although knowing Roblox it’s difficult to see a scenario where this happens :confused:

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.