I got wood planks for my unreal project. I am using a heightmap to make the wood planks pop out. It looks great in Bitmap 2 Material preview but when I see it in Unreal Engine 4, it looks very jagged and spiky. I turned up the tessellation multiplier and it doesn’t change after using the value 2.0. What do I do? Check out the screenshots.
From your screenshots and description the displacement is very jagged and intense. You may want to consider plugging your displacement directly in and see if that solves the issue. You could also try decreasing the intensity of your distance.
Essentially you are multiplying the texture sample by ten and then multiplying it again by a World Space vertex normal. My suspicion is that your material being intensified to such a degree that the result is becoming distorted.
How many polygons does that floor mesh have? For that kind of a displacement you’ll need a pretty high amount of tessellation in the mesh itself since material tessellation would probably not be enough and cause that kind of jagged displacement.
Decreasing your distance and your tessellation multiplier should help the intensity of what you are seeing. Your values are extreme.
We tested a project using the same settings you have linked in your screenshot and I was able to reproduce your issue. If you create a new material and just set up your grey texture sample without whatever you have feeding into it, and scale the values of your world displacement and tessellation multiplier, you should see a drastic change.
World displacement should not exceed much past 2, and your tessellation multiplier not much past 1.
I cannot see what else you have that is influencing this, but that is where the issue lies. At a tessellation of four the tessellation is so dense you quite literally cannot see any space between vertices. In the material properties you can enable the viewing of the wireframe to see what I mean.
When I put the displacement height down to 2 and tessellation to 1 or 2. It looks a lot less intense, although, it looks unnoticeable compared to without the height map and just using the normal map. It doesn’t look anything like the B2M preview.
I have tried turning up the tessellation multiplier to a 100 and it’s doesn’t change anything, anything past 2.0 for tessellation multiplier. It doesn’t look any different. The number of polygons my plane has is 48 triangles.
Adding a displacement to a normal can also cause some issue when adding other variables. Intensity through multiplication of your displacement typically does the trick.
I would go back to B2M and make sure your workflow is sound. Also check the intensities of what you have created there. Then work from there to UE4 and make sure there isn’t something that could cause this outside of the settings in your material in UE4.
I know B2M says everything is compatible with UE4 and that there is a workflow created for PBR pipelines. However, they suggest using the Substance plugin and using a certain method for this workflow.
The algorithms for how B2M creates it’s rendering and their node system is completely different from how UE4 handles it’s deferred rendering system.
If after this you are still having a problem then please post again.
Here’s the shared OneDrive link to my .zip of my test project. I copied the material from my main project and textures as well. One thing I notice about the test project is that it looks better, I’m using a different geometry plane. It’s still spiky, I wonder if it has to do with the geometry of the mesh. The tessellation algorithm could be very picky with certain geometry and the typology of the mesh. Any way, any help or new tips you find from checking out my project would be great. I will be deleting the project link from OneDrive to protect copyright of my project.
I have downloaded your project and in the process of diagnosing this issue. I can certainly see the spikiness on your floor when adjusting the values for tessellation and world displacement.
The displacement is working. Displacement acts as a whole displacement for your entire Material. Whatever that material is applied to it will displace the whole thing, not just the individual planks.
What I suspect is happening is that at a certain level of tessellation/displacement your UV’s are becoming stretched. This is expected behavior as well. What happens is there are ways of hiding the tessellation at distances through distance fades and such. You will notice that the jaggedness is only noticeable at high values at extreme angles.
I will continue to investigate this issue further. A temporary work around would be to use geometry or intense normal mapping or both to find a solution.
Okay, first off, thanks for the help you have been putting into this. Second, here’s a download link for the plane geometry that I am using for my main project, it’s just a simple plane with a Y-facing UV map. Wood Plank Plane Geo DOWNLOAD
I got a question on displacement vs added geometry. Which is more of a performance hit? Heightmap/Displacement/Tessellation or added real geometry of the model? Will this matter too much with Directx 12? What if my plane has 500 triangles or 1000 triangles and I just make it look like wood planks. Then I have say 500 of them in one scene or area. Will that be more of a performance hit than using heightmaps/displacement w/ Distance Based Tessellation?
It deals with Parallax Occlusion masking. This essentially is a more complex method to achieve what you are trying to do. It is some fairly advanced stuff so don’t fee bad if it’s above you. To be honest it’s a bit above me.
I see, so for example, having 50 trees with the same material is less intense than having 50 trees with 10 different materials. That’s kinda of the purpose of material instance, to reduce draw calls.
Yes, the parallax occlusion masking from that forum is very complex and doesn’t really show you how it’s set up and done.I know how to do basic parallax occlusion in the material editor but that kind of quality parallax occlusion is way over the top. Looks very nice though.
Yes, fifty trees with the same material would be less intense than having 50 trees with 10 a piece. Especially if you are using the foliage system. The foliage system is drawn as one system. Although it is made up of many parts all of the foliage associated with that is considered one entity.
The one material would be called once, and arrayed across all of the trees. Where as the ten different materials would be called and then arrayed.
At a point, geometry must be used if certain complex methods are not utilized.