Hi guys, I’m a student Video Game Design at Digital Arts and Entertainment (in Kortrijk, Belgium). For my graduation project, I’m developing a tool to blend static meshes with the environment. I basically want to remove the harsh seam that you see when a static mesh intersects with a landscape actor. Here are some examples of landscape-seams in AAA games:
I was inspired to make this becasue of the 2016 GDC talk by Dice about Star Wars Battlefront. In this presentation they showcased some in-engine tools to blend together natural meshes and the environment.
I was also inspired by a terrain-blending plugin in Unity3D (which is currently outdated).
So the solution I currently have is based on the Distance Fields functionality in Unreal 4. I didn’t come up with this idea, I saw a forum-post about someone fusing meshes together by using Distance Fields. However, I cant seem to find this link anymore so if anyone knows which post I’m talking about, feel free to let me know :).
I use the DistanceToNearestSurface node to automatically detect the intersection between the terrain and a mesh. I combine this with a noise mask to get a nice procedural material transition.
What really sells the effect is the adjustment of the vertex normals of the mesh. This removes the ugly lighting seam caused by intersecting geometry. To adjust the normals of the mesh to the normals of the surrounding area, I use the DistanceFieldGradient node. This system can be a bit finnicky and took a lot of tweaking to get right, but I’m pretty happy with the result.
I currently have created three variants of this material. One automatically detects the landscape intersection, the second one uses a vertex-paint mask and the third one is a combination of the two.
I also played around with some different materials and animated noise masks.
It would be nice if the final result of this Graduation Project was a free tool on the Unreal Asset Store. However, I have little experience with tool development (certainly not in UE4) so I’m looking for all the advice I can on that front.
So please let me know what you think :D. Would you be interested in something like this? Do you have ideas for other potential use-cases of this tool? Do you have some insight in making something for the Unreal Marketplace? All information is welcome!
Cheers!