Godot 3 - How to texture a 3D model?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By anonymous
:warning: Old Version Published before Godot 3 was released.

I’m new to Godot. I imported a 3D model (OBJ file) which has a PNG image for texturing. It currently shows up as blue with no textures. Where do I set the texture of the object? What kind of material do I need, spatial or shader? Various tutorials I’ve looked at told me to set the “Texture” value but I only see things like “Albedo”, “Roughness”, “Emission”, “Normal Map”, etc. If I set the texture in “Emission” I can roughly see the object but it’s colored incorrectly and is very yellow tinted.

What’s the proper way to texture a 3D model? How do I set the texture?

:bust_in_silhouette: Reply From: therobear

Take a look at the Godot documentation for the difference between shader material and spatial shader:

Looking at the rest of your question, it sounds like you started using a spatial material. Godot 3 uses a Physically Based Render (PBR) workflow, so the material options you are seeing in the spatial material are all properties of the PBR workflow. If you want to see your texture on the model, just place your texture in the Albedo slot. You don’t want to put your texture in the Emission slot unless your object is going to emit light.

Allegorithmic has a great video explaining the PBR workflow. I suggest you take a look at it.

One big mistake I made is that I tried applying it as a Normal map while fooling around. Unfortunately, Godot by default completely ignores the blue channel of any texture set to be a normal map even if you unset it. I had to rename the texture to make Godot re-import it and then I could use it normally.

anonymous | 2018-03-13 03:14

:bust_in_silhouette: Reply From: abhaskumarsinha

Possible Reasons, why your Texture is not showing -

  1. You’ve not UV Unwrapped your Model.
  2. There might not be enough Light in the scene to light up your model
  3. You’ve added wrong textures/values in the wrong Slot i.e. Alpha or Transparency.
  4. It might be a bug in Renderer.

Steps to Fix it -
1.Just Import your 3D Model in Blender. Go to Edit Mode. You’ll see that your model becomes Opaque and Opaque Wireframes have become visible. Now, press “A” key from the keyboard. You’ll see that the wireframes have got Yellow Color. Now press “U” Key from the Keyboard. Few Options might pop out. Select, “Smart UV Unwrap” or any similar Option from it. Now, you can further, proceed by saving that model again.

  1. Use a Directional Light.

  2. You’ve to first apply your texture in Albedo/Diffuse (Albedo probably in Godot v3.0), then you’ve to check if that Works or not, then You’ve to apply other textures.

  3. If you think that it’s not working as it was supposed to do, then you can just, write that issue, in Github and those problems will be fixed (most probably depending upon the degree of Errors in Coding) in the next Release of Godot i.e. v3.0.1 or v3.1.

Note- also note, that if your model is too big/complicated and the texture size is too small (128 x 128, 64 x 64, etc.) then you’ve to either, tile that image to get perfect details or you’ve to use a big texture instead.

:bust_in_silhouette: Reply From: georgebonbon

In the inspector for your meshinstance you will see a meshinstance property
on the left it will have Mesh and on the right a picture of a mesh.
1.Click on the mesh icon.
The mesh properties will open up.
About the 5th property will be Material with a sphere material icon.
2.Click on this sphere.
The SpatialMaterial properties will open up.
There will be a lot of properties with “>” next to them
3.Click on the one that says Albedo.
You will see 2 properties - Color & Albedo
4.If using a texture use color white and then click on the down arrow next to the picture of the texture (might say empty)
5.Then you can load your texture there by clicking load. You can the load your texture, but it must already by in the project folder somewhere.

:bust_in_silhouette: Reply From: Daksh10

1. Just create a new material, ‘Spatial Material’ and 2. then click on the image that appears immediately under it. 3. It will open a list, click on normal map, enable it, drag your texture image in the empty space under it and then set the scale maximum. Done! Welcome in advance!

:bust_in_silhouette: Reply From: Bot7

In the Inspektor is an Tab called Material. In this Tab is an Tab called Albedo. In this Tab is an field which you can drop the png file.