0
$\begingroup$

So I was setting up a texture to use on a rock, this is what the current node setup is: Nodes

This is what the preview of the material looks like:

enter image description here

In the preview render, and the final render the rock ends up looking like this:

enter image description here

I couldn't find any problems with the node setup so far, anyone know what could be causing this sort of problem?

$\endgroup$
  • 1
    $\begingroup$ There’s no input to the Inage Texture Vector sockets. Try connecting those to a suitable Texture Coordinate - Generated, Object, UV, whatever matches your textures images. $\endgroup$ – Rich Sedman Feb 19 '18 at 11:43
  • $\begingroup$ For info, you should probably be using the NormalMap to drive the normal of the Glossy Shader in addition to what you have for Diffuse. $\endgroup$ – Rich Sedman Feb 19 '18 at 11:44
  • $\begingroup$ @RichSedman I never used to connect anything to the Image Texture Vector sockets anyways, but materials used to render fine. I didn't quite understand what you said about using the NormalMap for the normals of the glossy shader and diffuse shader. $\endgroup$ – Nexius Feb 19 '18 at 11:54
  • $\begingroup$ I've added an answer. With the Vector not connected it will be using UV mapping. If you haven't UV unwrapped then it will not work (but the preview would still show). $\endgroup$ – Rich Sedman Feb 19 '18 at 13:03
0
$\begingroup$

Without anything connected to the Vector input of the Image Texture node the image texture will be assuming you want to use UV coordinates. If you have not UV unwrapped your mesh then this will be unable to map the texture around your object and the texture will not be correctly shown. Note that the material preview assumes its own unwrapping (depending on which preview model you have selected) and so is oblivious to your own mesh's unwrapping.

The solution to this depends on your intention and the image resources you are using - ie, whether they are intended to be used with a UV unwrapped mesh or whether different coordinates should be used.

If you should be using a UV Map for your textured then I would recommend still connecting to the Vector socket of the Image Texture to explicitly set those vector coordinates. This can be either the UV output of the Texture Coordinate node or the UV output of the specific UV Map node if you are using multiple UV maps and need to be able to select a specific one.

If, however, your textures are based on a different coordinate system (eg, Generated or Object coordinates) then you should use the relevant output of Texture Coordinate.

Note also that your current material is feeding the Normal Map into the Diffuse shader but not into the Glossy. This will result in a different normal being used for each element of the surface - so your reflections will not match the diffuse surface.

I believe your final material should be something like the following :

material

Note the extra connection from the Normal Map to the Glossy BSDF - this is so that the same surface normal is used for the Glossy shader as you have set for the Diffuse (otherwise the surface will reflect based on the mesh normal - rather than that from your normal map).

If you are using a different coordinate system then adjust which Texture Coordinate you are using. If you should be using UV mapping then ensure your mesh is UV unwrapped - and I would still recommend actually connecting to the Texture Coordinate UV socket (or a UV Map input node) rather than leaving them unconnected.

$\endgroup$
  • $\begingroup$ For some reason the UV unwrapping didn't apply the first time, and thanks for the tip on connecting the NormalMap to the Glossy Shader, the material looks way better now. $\endgroup$ – Nexius Feb 19 '18 at 13:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.