How to make a not glossy material


Hello to eveyone! And thank you in advance if you are reading my topic.
I’m trying to create a shoe more realistic as possible. I have a problem because the texture is too lucid/glossy. I need it more opaque so it does not reflect the light (see image).
I created the material in this way:

mat = new BABYLON.StandardMaterial("test", scene);
mat.diffuseTexture = new BABYLON.Texture('assets/images/textures/test.jpg', scene);
mat.diffuseTexture.uScale = 2.0;
mat.diffuseTexture.vScale = 2.0;
mat.diffuseTexture.roughness = 1;
mat.detailMap.isEnabled = true;
mat.detailMap.roughnessLevel = 0.80;

But it’s not working. I tried also to create the material with PBRMaterial, but the texture is disapperaring.
How can I do?

1 Like

Hi.

It’s most likely specular effect of the light. You can try doing something like this.

light.specular = new BABYLON.Color3.Black() (or any other value between white and black if you want to keep some of it)

2 Likes

Oh. I missed some parts of your code.

First, let me say, that best practice on the forum would be to create a playground replicating your issue. In your case that should be simple enough. And it would help us solve your problem much faster.

But with that said, You are using roughness property on StandardMaterial, which will not do anything. You need to create PBRMaterial. Assign albedoColor/Texture, and adjust roughness and metallic values of PBRMaterial.

Why material is disappearing its impossible to say without live example (playground). Any errors in the console? Maybe you tried to assign diffuseTexture to PBRMaterial for example, which will not work as it needs albedoTexture instead.

1 Like

Also, you will need some kind of environment texture for PBRMaterial (otherwise they tend to be black, as there is nothing for them to reflect). So you need hdr/dds/env texture in the scene as well if you gonna use PBR

Thank you! Yes, working on lights was the right solution!