Did lighting on Quest change?

I recently have noticed the characters end up lit differently than older characters. Is there any change that would explain this?

Here’s a picture where the one on the right is one that was imported a while ago, and the one on the left was imported today:

This is in Unity, on Quest. On the desktop version there’s no visible difference.

I find the new one still gets lit with dynamic lights, so it might be baked or ambient lighting that has changed?

Hello and welcome to the forum!
Can you specify what Shader each of the characters are using? Is it the same?

Well, it’s easy for me to check in Unity but that’s running on Desktop.

In Unity it’s glTF/PbrMetalicRoughness for both of them, but on Desktop it works fine. It only seems to have changed on Quest so I’d need to make a build that prints that out.

So both characters are rendering correctly in Editor in Unity and are using the same Shader, but only in the build on Quest, one of them shows darker. Correct?


If I shine a dynamic light on the dark one, it does become lit, so I think it isn’t handling the baked lighting in the scene.

From a build where I’m replacing the materials with a diffuse shader and debugging the old shader that I’m replacing, they’re all debugging as glTF/PbrMetallicRoughness

My method of replacing the materials seems to look correct, and will continue to work if I can assume the name of the albedo texture remains baseColorTexture and isn’t changed in some future update.

It does lose some things like glossiness since it’s only copying over the albedo texture but the more properties I copy over, the more property names I’m depending on never changing in a future update.

Oh, I suppose I’m also relying on the _Mode property, which I use to decide whether I need to enable transparency or not.

You might need to rebake the lighting in the scene after adding the new avatar.

Also, you can take a look at this Avatar Loading Issues page. The first section solves the issue with Shaders: Avatar loading issues - Ready Player Me

Baked lighting in the scene is baked before building the application. Ready Player Me avatars can be added at run-time, that’s kind of the point. So re-baking at run-time wouldn’t be viable.

I do have the gltFastShader variants included already, That both the old and new RPM avatars debugged as using the glTF/PbrMetallicRoughness shader I would think indicates that’s assigned correctly.

It seems like there are no issues with the Shader then. Can you confirm that the textures are the same for both materials using the same Shader?
Also, what Unity Render Pipeline are you using? The Universal Render Pipeline (URP)?