Incorrect lighting on models flipped with CFrame matrix manipulation on graphics levels above 2

I’m using CFrame.fromMatrix to flip the viewmodels in my game so they appear left handed without needing to create new animations for each weapon, the problem is that lighting is distractingly incorrect when using graphics levels above 2.

Image of the problem:

And for reference here’s what it looks without this setting:

This issue is also present in Games Unite Testing Place as they similarly have an option to use “left handed” viewmodels.

How to reproduce:
viewmodel lighting bug.rbxl (180.3 KB)

Expected behavior

It just should render correctly like it does on low (non PBR afaik) graphics levels.

How it looks on low graphics:

2 Likes

this is more of an issue on your end, youre relying on Double Sided for the left arm (which the right arm doesnt use) which is causing your normals to look janked up

??? this has nothing to do with the issue, and i just checked the place file both arms have double sided enabled.

Thats your problem, double sided will flip the normals. So they’re backwards which is causing the shading to look like that.

I feel like you’re not understanding the issue at all. if you set your graphics level to 1 and you will see the normals are correct and there are no issues at all, the issue present on higher graphics levels is clearly not intended behavior and probably hasn’t been reported yet (afaik) because its a relatively niche use case.

Apologies, I see what you mean now, for some reason when you’re flipping it with the fromMatrix function, it’s literally flipping your normals. I’ve never seen this before Haha

Thats why I got confused when I saw you were using double sided.

ex.
2621e615d71d76c2556075145c1a7c47

1 Like