Displacement Issues

Contests and Challenges

I will guess we all have heard of displacement, the use of gray scale images that displace a mesh to create geometry.Well, I have tried to use this modifier to help create larger and more visible details on my mesh.The issue Is with the mesh, as it is round and spherical,not a flat surface.As a result, the modifier displaces some parts of the mesh, but not entirely, or in the wrong angle.Does anybody have any advice or answers to help me?I am doing this for my school project.

  • smurfmier1985 replied

    I've not used displacement often, so I have no brilliant solutions. However, the things I always check first when things go haywire:

    - Are the normals all pointing in the right direction? (recalculate to be sure)

    - Have you aplied scale/rotation/translation?

    Usually when things not act like I expected, one of these is the culprit :) hope this helps!

  • fuzzyeuclid replied

    Are you using 2.79? Or 2.8? Are you using the Displacement Modifier, or are you doing displacement via Shader (material)? Please try to be more specific when you seek help - it will aid in the response count :)  Please note, I am using 2.8, so some of the locations for the settings may not match up entirely, but it should [mostly] be pretty close and easy to find if you are using 2.79.

    Miranda sites two important points, so please be sure you check into those.

    One more I would add -> make sure your object is UV mapped. And mapped correctly - so far as the word "correctly" applies to UV maps :)  One thing I typically do is apply the displacement map as a color texture to the object to see how it will wind up applying.

    ----------

    If you are using the Displacement Modifier: it sounds like you are not using the correct coordinates for the operation. So, in the displacement modifier panel:

    - I'm assuming you have your displacement texture loaded in Blender and selected as the texture under the TEXTURE selection.

    - Make sure your DIRECTION drop-box is set to NORMAL (should be by default).

    - In the TEXTURE COORDINATES drop-box, select UV.

    - Adjust the STRENGTH to get the result you need, tweaking the MIDLEVEL if needed. If your object's overall size suddenly scales on you, you probably need to adjust the MIDLEVEL (to zero, I would guess). Play around, have fun...? :)

    Using this, I have correctly applied a displacement of the Earth to a stock sphere (generated UVs at creation) with the help of a subdivision surface modifier of course.

    ----------

    If you are using SHADERS to get the displacement: it sounds like the vector displacement is using color data to displace. Eevee doesn't support Shader displacement at this time, so you should be using Cycles (since you see some effect, I'm assuming this isn't really an issue for you). Also, be sure on the Material tab (the object material selected), under the Settings section, that Displacement Method is set to Displacement Only or Displacement and Bump, depending on your needs.

    *** Please note I'm not sure how much of this applies to 2.79, but definitely should at least give you something to think about.***

    - If you are plugging your texture directly into the Displacment input on the Material Output shader, this is wrong. You need to pass it through a Displacement shader, which can then feed the Displacement input on the Material Output shader.

    - I don't know what 2.79 has, but 2.8 has two displacement shaders: Displacement, and Vector Displacement. You want the Displacement shader. It should by default be set to OBJECT SPACE - this is what you want.

    - Plug the color output of your displacement texture into the HEIGHT input of the Displacement shader. I've never found the need to convert color images to black & white, but there is a shader to do that if you need or desire.

    - Plug the Displacement output of the Displacement shader into the Displacement input of the material Output shader.

    - If your object suddenly shrinks in size, you probably need to set the MIDLEVEL on the Displacement shader to 0.000, or something along those lines. 

    - You will probably need to tweak the strength of the displacement. You can simply tweak the SCALE setting on the Displacement shader. If this doesn't have the fine detail of control you need, depending on the numbers, you can put a Math shader between the texture and the Displacement shader, set it to multiply, and adjust the multiplier to scale the displacement. Same effect, but you tend to get more control with the math shader in there.

    Using this, I have correctly...blah blah blah - basically Earth looked great on a stock sphere!


    Hope this helps, and keep on Blending :)

  • saki2006 replied

    Thanks Miranda and Fuzzyeucild for the help.The mesh is greatly improved, looking more crisp and accurate.Also, to answer Fuzzyeucild's questions,I am using 2.79 and a displacement modifier only, not through shader. Also I am a 6th grade student who is trying to finish this project, and you guys helped me a lot. Thanks you!And to all other who read this, please add more reply  and hope the ones already existing help you!