Jump to content

Displacement and Surface Normals

Recommended Posts

Hi all,

I was wondering, when you create a material from scratch and you apply a displacement, do you also have to feed in the displaced normal into any other part of the shader network that uses a normal for calculations, e.g. a reflect light ?

The example file should make this more clear if it's confusing. Basically, I'm unsure if the displaced surface position and normals are those used for shading, or the un-displaced, as they're all int eh same network.

Does anyone know or could point me towards more information?


Link to comment
Share on other sites

One more thing...if I'm calculating new normals, or using a normal map without position, P, displacement, should that be plugged into the:

1. Displacement output (no P connected there, just N) 

2. Into the shaders themselves, the fresnel in this case.

I would've thought that both should have produced the same result, but you can see the result is actually different. Which means I don't have a proper grasp of how the renderer is working here.

Is one method 'correct' in this case? If both are correct, why do the results look different?


Link to comment
Share on other sites

ok let me try and explain why you can't expect to get the same results with plugging things into the displacement and the surface shader. Sorry for possibly pointing out some obvious things to you.

displacement actually alters your geometry and creates its highres version prior rendering. in this sense, lights response to the geometry detail is more accurate because you are indeed rendering very detailed model. you are creating a new geometry that actually changes the object's volume, cast shadows, catch proper highlights and and all sorts of these things.

if you plug things into a surface shader, the effect happens on an original "simple" geometry you see in the viewport and the geometry detail is only pretended to exist. of course, if the spatial scale of the effect exceeds certain limit it becomes obvious that the detail is actually not there and things start to look fake. but it is generally faster and less memory hungry than generating actual displacement so for very fine details shader effect is a better way to go.

in general, there is not a single correct answer what to do. that is Mantra's greatness that you actually can do whatever you want. it always depends on what you expect to get.

hope that helps. D.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...