Home 3D Art Showcase & Critiques

[Unreal 4] Terrain Blending Tool (inspired by Star Wars: Battlefront)

13
polycounter lvl 4
Offline / Send Message
Olmo polycounter lvl 4


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. 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.

http://www.youtube.com/watch?v=3-y6lq3z95w

I was also inspired by a terrain-blending plugin in Unity3D (which is currently outdated).

http://www.youtube.com/watch?v=pv8wjMGGGDM&t=2s

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. 




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! :)

*Disclaimer: I also made a post about this on the Unreal Engine Forums and I copied the text because I'm lazy :p *

Replies

  • pixelpatron
    Offline / Send Message
    pixelpatron polycounter
    Amazing! Thank you for creating this! 
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    Amazing! Thank you for creating this! 
    Thanks a bunch :D!
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Very nice but unfortunately this can go expensive easily... The 2 distance field nodes creates more than 200 instructions by themselves. Plus the memory for the distance field textures. But depending on the application/target audience, it can work nicely as we can see hehe.
    May I ask you, what did you do with the normals? And what are the final instruction counts?
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    Obscura said:
    Very nice but unfortunately this can go expensive easily... The 2 distance field nodes creates more than 200 instructions by themselves. Plus the memory for the distance field textures. But depending on the application/target audience, it can work nicely as we can see hehe.
    May I ask you, what did you do with the normals? And what are the final instruction counts?
    Thanks a lot for that reply! :) I knew that Distance Fields were peformance heavy, I just didn't know to what extent really. So you're helping me a lot with that information! The final instruction count is 287, would that be acceptable in a AAA game or can it only be used in pretty portfolio scenes? :D


  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    I'm not sure if that shows you the exact numbers, but what you see that isn't that bad. If you are not planning to go much further than this, like many material layers, not only two, it should be fine in a game as well on modern pc/console. 

    Anyways, as I understand, this won't make the terrain texture "appear" on your rock. Rather, both the terrain and the rock has the snow textures and it appears when you move the rock close to the terrain right? So if you would put the rock across an area that has multiple textures painted on the landscape, you would only see one of them appearing on the rock. 

    About the normals:
    Do you just mask some of the normals with the distance field gradient, and you make them pointing up?
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    Obscura said:
    I'm not sure if that shows you the exact numbers, but what you see that isn't that bad. If you are not planning to go much further than this, like many material layers, not only two, it should be fine in a game as well on modern pc/console. 

    Anyways, as I understand, this won't make the terrain texture "appear" on your rock. Rather, both the terrain and the rock has the snow textures and it appears when you move the rock close to the terrain right? So if you would put the rock across an area that has multiple textures painted on the landscape, you would only see one of them appearing on the rock. 

    About the normals:
    Do you just mask some of the normals with the distance field gradient, and you make them pointing up?
    For the landscape material, I use a Material Function that outputs a world-space material (in this case snow). I use this MF in the regular landscape material and in the "special" terrain blending material on the mesh. You're right, if you were to put this rock on a sand-landscape, snow would still show up at the mesh-intersections. I'm currently having some trouble with conventiently swapping out the materials in the mesh-shader, since Material Functions cannot be used as inputs for Material Instances in Unreal. This is probably still the biggest hurdle that I have to overcome.

    About the normals, I actually mask of the "terrain blendin area" with the DistanceToNearestSurface node. I get the normals that are adjusted to the terrain by using the Absolute world position and the PixelNormalWS in combination with the DistanceFieldGradient node.

    Funny you should mention the normals pointing up :p. That's what I did in my early prototypes, however this effect falls appart as soon as you have some relief in your landscape. This system still works in a bumpy environment :).


  • PolyBrother
    Offline / Send Message
    PolyBrother polycounter lvl 7
    Awesome work on this! I think I recall seeing a blog post or something as well regarding this. Perhaps the blog was shutdown and 404'd (?). Who knows?

    This would be a great tool for artists working in UE4, and for those who like to push their scenes with more realism and shader trickery.

    I don't think the shader itself is too expensive, imo, and I believe there have been previous discussions on achieving this effect in regards to games like DICE's Battlefront and BF1 where it seems to be present. So already we're seeing this being done in games, or what appears to be.

    It's still some effort by you, though. If you can't get it on the UE4 Market then perhaps sell it for free/donation on Gumroad.
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    Awesome work on this! I think I recall seeing a blog post or something as well regarding this. Perhaps the blog was shutdown and 404'd (?). Who knows?

    This would be a great tool for artists working in UE4, and for those who like to push their scenes with more realism and shader trickery.

    I don't think the shader itself is too expensive, imo, and I believe there have been previous discussions on achieving this effect in regards to games like DICE's Battlefront and BF1 where it seems to be present. So already we're seeing this being done in games, or what appears to be.

    It's still some effort by you, though. If you can't get it on the UE4 Market then perhaps sell it for free/donation on Gumroad.
    Yeah this is definitely not 100% all figured out by me :). I also recall someone blending two meshes together using something similar but I can't find that post for the life of me :D. Gumroad is also certainly a great avenue to spread this tool. Since I'm doing this for exposure instead of money, the more places the better :D !
  • Maximum-Dev
    That is really nice work! :)

    The way they said it's done in star wars is that it samples the landscape layer underneath the mesh and blends it to the mesh, and I've seen it being true in places where a rock is placed on different material layers. However, I don't think that's really necessary. You could just make material instances and swap the snow textures in the material instance with grass and then apply it to a placed rock, then you can move the rock on a grass material layer and have grass blending into it instead of snow. So no big deal at all.

    As for the performance, in general things really run much better in Frostbite and this doesn't really have to do with the artist. However something cool you can do is to make two material instances, one with the blending feature enabled and the other disabled. Apply the one with blending feature enabled to the LOD0, and have rest of the LODs using the instance with blending feature disabled. This way not all rocks will always have high instruction count/red shader complexity on screen. Since the LODs will be far from player, not having the blending feature present on them in not really an issue either.

    With that said, I don't see a reason for you to go through more headache since it's already working and there won't be performance problems if using the material instances. I am really interesting in getting my hands on this, please do the clean up and release it ASAP.  :*
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    That is really nice work! :)

    The way they said it's done in star wars is that it samples the landscape layer underneath the mesh and blends it to the mesh, and I've seen it being true in places where a rock is placed on different material layers. However, I don't think that's really necessary. You could just make material instances and swap the snow textures in the material instance with grass and then apply it to a placed rock, then you can move the rock on a grass material layer and have grass blending into it instead of snow. So no big deal at all.

    As for the performance, in general things really run much better in Frostbite and this doesn't really have to do with the artist. However something cool you can do is to make two material instances, one with the blending feature enabled and the other disabled. Apply the one with blending feature enabled to the LOD0, and have rest of the LODs using the instance with blending feature disabled. This way not all rocks will always have high instruction count/red shader complexity on screen. Since the LODs will be far from player, not having the blending feature present on them in not really an issue either.

    With that said, I don't see a reason for you to go through more headache since it's already working and there won't be performance problems if using the material instances. I am really interesting in getting my hands on this, please do the clean up and release it ASAP.  :*
    Damn, that LOD idea is genious! :D That will certainly increase the performance :).

    Yeah I definitely want to go the Material Instance route, I have one issue though. The landscape materials are currently Material Functions, but you can't use a MF as an input for a Material instance :(. I could just use textures as inputs but if someone wants to change the scale of the landscape material, they would have to do that in two different places (in the regular landscape material as well as in the mesh material). So a convenient way to swap the materials is one of the last biggest hurdles to overcome :).
  • Kyetja
    Offline / Send Message
    Kyetja polycounter lvl 7
    This is absolutely awesome man, even if it's expensive to run it would still be dope for portfolio stuff, I'd use it at least! :)
  • Socket775
    Offline / Send Message
    Socket775 polycounter lvl 3
    Impressive work! Anyone could break down or explain the "Normal Adjustment" part? Because I understood that you use "DistanceToNearestSurface" node to make a simple mask and put the respective material into it, but how he used the "DistanceFieldGradient" to tweak or modify the vertex normals of that specific zone?
    Thank you so much for all!
  • /anty/
    Offline / Send Message
    /anty/ polycounter lvl 7
    Also you can try to use Pixel depth offset with DitherTemporalAA node for meshes bledning. It has some downsides and can affect performance in some cases but overall can do blending pretty nice.


  • Gannon
    Offline / Send Message
    Gannon interpolator
    Very interested to see the material breakdown for this especially the normal adjustment portion. Very cool stuff. great work getting it working in Unreal
  • Josef_K
    Great job, really! Can't wait to see more of this :D
  • KHM3dia
    Offline / Send Message
    KHM3dia polycounter lvl 11
    Dude id love to get a look at your material shader. I'm also looking to avoid this issue in my final year project but havent reach that stage yet.
  • Nomad - Nicolas Pirot
    Offline / Send Message
    Nomad - Nicolas Pirot polycounter lvl 4
    Awesome project Olmo, nice work.
  • DoubleP90
    Offline / Send Message
    DoubleP90 polycounter lvl 7
    Can't wait to try this out :D 
    Will this work with any mesh intersection of just with terrain? 
    Also you should apply for a UE4 Dev grant ;) I'm sure you'd get it with such great tool, especially if they can add it to the engine for free 
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    /anty/ said:
    Also you can try to use Pixel depth offset with DitherTemporalAA node for meshes bledning. It has some downsides and can affect performance in some cases but overall can do blending pretty nice.
    I think you mean the DepthFade node :D. That's something I considered at the start of my project but it would look strange from certain angles. Also, making a lot of meshes translucent or masked would be pretty peformance heavy :)
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    DoubleP90 said:
    Can't wait to try this out :D 
    Will this work with any mesh intersection of just with terrain? 
    Also you should apply for a UE4 Dev grant ;) I'm sure you'd get it with such great tool, especially if they can add it to the engine for free 
    It works if the mesh intersects with a landscape actor or a fairly big mesh. I had to "stabilize" the Distance Field effect because it can be very finnicky. So if two medium sized rocks are sticking in a landscape, they are both influenced by the landscape but they don't influence eachother. :)
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    Awesome project Olmo, nice work.
    Thanks Nicolas, that means a lot coming from you :D!
  • Maximum-Dev
    Olmo said:
    That is really nice work! :)

    The way they said it's done in star wars is that it samples the landscape layer underneath the mesh and blends it to the mesh, and I've seen it being true in places where a rock is placed on different material layers. However, I don't think that's really necessary. You could just make material instances and swap the snow textures in the material instance with grass and then apply it to a placed rock, then you can move the rock on a grass material layer and have grass blending into it instead of snow. So no big deal at all.

    As for the performance, in general things really run much better in Frostbite and this doesn't really have to do with the artist. However something cool you can do is to make two material instances, one with the blending feature enabled and the other disabled. Apply the one with blending feature enabled to the LOD0, and have rest of the LODs using the instance with blending feature disabled. This way not all rocks will always have high instruction count/red shader complexity on screen. Since the LODs will be far from player, not having the blending feature present on them in not really an issue either.

    With that said, I don't see a reason for you to go through more headache since it's already working and there won't be performance problems if using the material instances. I am really interesting in getting my hands on this, please do the clean up and release it ASAP.  :*
    Damn, that LOD idea is genious! :D That will certainly increase the performance :).

    Yeah I definitely want to go the Material Instance route, I have one issue though. The landscape materials are currently Material Functions, but you can't use a MF as an input for a Material instance :(. I could just use textures as inputs but if someone wants to change the scale of the landscape material, they would have to do that in two different places (in the regular landscape material as well as in the mesh material). So a convenient way to swap the materials is one of the last biggest hurdles to overcome :).
    Instead of trying to change which material function is fed in the rock material you can have all your material functions present in your rock material and only enable the one you need by using static switch parameter nodes. This way you can switch between which material function is used simply in the rock material instance.

    For changing the scale of landscape material and such things, I think you can use a parameter collection in both landscape and mesh materials, that way you just change the value in the parameter collection and it affects both of them at once without needing you to go inside both materials and change the values there.
  • Azzazel
    Offline / Send Message
    Azzazel polycounter lvl 6
    Man that looks supergreat, i would love to see that on gumroad :dizzy:
  • /anty/
    Offline / Send Message
    /anty/ polycounter lvl 7
    Olmo said:
    /anty/ said:
    Also you can try to use Pixel depth offset with DitherTemporalAA node for meshes bledning. It has some downsides and can affect performance in some cases but overall can do blending pretty nice.
    I think you mean the DepthFade node :D. That's something I considered at the start of my project but it would look strange from certain angles. Also, making a lot of meshes translucent or masked would be pretty peformance heavy :)
    No, I was speaking about Pixel Depth Offset input in material. At least this is how I set it up in UT. 
    You can combine your mesh Height map with Dither temporal AA to get quite similar to what you have, but without having distance field activated. You can use it with shadows, but it works better with shadows casting disabled. For reference you can look Titan pass level in UT.  There lots of different assets on walls and ground using this tech.

  • Jakob Gavelli
    Offline / Send Message
    Jakob Gavelli interpolator
    This is awesome! I remember Pre-DistanceFields doing something similar (but uglier) by doing a height-based gradient using the landscapes heightmap and the objects world-position and scale. Problem was that the heightmap has to be really high resolution and it just wasn't feasible having to manually input the heightmap that should affect the mesh. This is great though, I have to try it!

    Clever to blend the vertex normals aswell! This makes me very happy, very good application aswell! =) 
  • Jaykrass
    Offline / Send Message
    Jaykrass polycounter lvl 6
    Wish my computer was powerful enough to not freak out with Unreal engine lol, otherwise I would love to use this tool.
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    /anty/ said:
    Olmo said:
    /anty/ said:
    Also you can try to use Pixel depth offset with DitherTemporalAA node for meshes bledning. It has some downsides and can affect performance in some cases but overall can do blending pretty nice.
    I think you mean the DepthFade node :D. That's something I considered at the start of my project but it would look strange from certain angles. Also, making a lot of meshes translucent or masked would be pretty peformance heavy :)
    No, I was speaking about Pixel Depth Offset input in material. At least this is how I set it up in UT. 
    You can combine your mesh Height map with Dither temporal AA to get quite similar to what you have, but without having distance field activated. You can use it with shadows, but it works better with shadows casting disabled. For reference you can look Titan pass level in UT.  There lots of different assets on walls and ground using this tech.

    Ow, I'm sorry I didn't mean to be rude :). DepthFade was just one of the first things I thought of at the start of my project so I assumed that was what you meant. Your way sounds like a more optimized way to do this, although I don't think I fully grasp the concept yet :). Do you have a link about this technique somewhere?
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    Olmo said:
    That is really nice work! :)

    The way they said it's done in star wars is that it samples the landscape layer underneath the mesh and blends it to the mesh, and I've seen it being true in places where a rock is placed on different material layers. However, I don't think that's really necessary. You could just make material instances and swap the snow textures in the material instance with grass and then apply it to a placed rock, then you can move the rock on a grass material layer and have grass blending into it instead of snow. So no big deal at all.

    As for the performance, in general things really run much better in Frostbite and this doesn't really have to do with the artist. However something cool you can do is to make two material instances, one with the blending feature enabled and the other disabled. Apply the one with blending feature enabled to the LOD0, and have rest of the LODs using the instance with blending feature disabled. This way not all rocks will always have high instruction count/red shader complexity on screen. Since the LODs will be far from player, not having the blending feature present on them in not really an issue either.

    With that said, I don't see a reason for you to go through more headache since it's already working and there won't be performance problems if using the material instances. I am really interesting in getting my hands on this, please do the clean up and release it ASAP.  :*
    Damn, that LOD idea is genious! :D That will certainly increase the performance :).

    Yeah I definitely want to go the Material Instance route, I have one issue though. The landscape materials are currently Material Functions, but you can't use a MF as an input for a Material instance :(. I could just use textures as inputs but if someone wants to change the scale of the landscape material, they would have to do that in two different places (in the regular landscape material as well as in the mesh material). So a convenient way to swap the materials is one of the last biggest hurdles to overcome :).
    Instead of trying to change which material function is fed in the rock material you can have all your material functions present in your rock material and only enable the one you need by using static switch parameter nodes. This way you can switch between which material function is used simply in the rock material instance.

    For changing the scale of landscape material and such things, I think you can use a parameter collection in both landscape and mesh materials, that way you just change the value in the parameter collection and it affects both of them at once without needing you to go inside both materials and change the values there.
    Yes, yes, yes :D! The material parameter collection was exactly the thing I was looking for! I should credit you somewhere for all the help you've given me :). I'll try some material-switching systems and see which feels best. I still want to crack at automatic material switching though. I was thinking about giving each landscape material their own Physics Material and then doing a raytrace down to see which material is under the mesh. :)
  • Maximum-Dev
    Olmo said:
    Olmo said:
    That is really nice work! :)

    The way they said it's done in star wars is that it samples the landscape layer underneath the mesh and blends it to the mesh, and I've seen it being true in places where a rock is placed on different material layers. However, I don't think that's really necessary. You could just make material instances and swap the snow textures in the material instance with grass and then apply it to a placed rock, then you can move the rock on a grass material layer and have grass blending into it instead of snow. So no big deal at all.

    As for the performance, in general things really run much better in Frostbite and this doesn't really have to do with the artist. However something cool you can do is to make two material instances, one with the blending feature enabled and the other disabled. Apply the one with blending feature enabled to the LOD0, and have rest of the LODs using the instance with blending feature disabled. This way not all rocks will always have high instruction count/red shader complexity on screen. Since the LODs will be far from player, not having the blending feature present on them in not really an issue either.

    With that said, I don't see a reason for you to go through more headache since it's already working and there won't be performance problems if using the material instances. I am really interesting in getting my hands on this, please do the clean up and release it ASAP.  :*
    Damn, that LOD idea is genious! :D That will certainly increase the performance :).

    Yeah I definitely want to go the Material Instance route, I have one issue though. The landscape materials are currently Material Functions, but you can't use a MF as an input for a Material instance :(. I could just use textures as inputs but if someone wants to change the scale of the landscape material, they would have to do that in two different places (in the regular landscape material as well as in the mesh material). So a convenient way to swap the materials is one of the last biggest hurdles to overcome :).
    Instead of trying to change which material function is fed in the rock material you can have all your material functions present in your rock material and only enable the one you need by using static switch parameter nodes. This way you can switch between which material function is used simply in the rock material instance.

    For changing the scale of landscape material and such things, I think you can use a parameter collection in both landscape and mesh materials, that way you just change the value in the parameter collection and it affects both of them at once without needing you to go inside both materials and change the values there.
    Yes, yes, yes :D! The material parameter collection was exactly the thing I was looking for! I should credit you somewhere for all the help you've given me :). I'll try some material-switching systems and see which feels best. I still want to crack at automatic material switching though. I was thinking about giving each landscape material their own Physics Material and then doing a raytrace down to see which material is under the mesh. :)
    I'm happy to help! :)
    Looking forward to the release!
  • Kaine123
    Offline / Send Message
    Kaine123 polycounter lvl 10
    I would kill to use this, you should totally put this on the asset store when you get the opportunity. I'd say i would even spend $5usd on it or even more tbh
  • /anty/
    Offline / Send Message
    /anty/ polycounter lvl 7
    Olmo said:
    /anty/ said:
    Olmo said:
    /anty/ said:
    Also you can try to use Pixel depth offset with DitherTemporalAA node for meshes bledning. It has some downsides and can affect performance in some cases but overall can do blending pretty nice.
    I think you mean the DepthFade node :D. That's something I considered at the start of my project but it would look strange from certain angles. Also, making a lot of meshes translucent or masked would be pretty peformance heavy :)
    No, I was speaking about Pixel Depth Offset input in material. At least this is how I set it up in UT. 
    You can combine your mesh Height map with Dither temporal AA to get quite similar to what you have, but without having distance field activated. You can use it with shadows, but it works better with shadows casting disabled. For reference you can look Titan pass level in UT.  There lots of different assets on walls and ground using this tech.

    Ow, I'm sorry I didn't mean to be rude :). DepthFade was just one of the first things I thought of at the start of my project so I assumed that was what you meant. Your way sounds like a more optimized way to do this, although I don't think I fully grasp the concept yet :). Do you have a link about this technique somewhere?
    Oh no problems, there was nothing offensive))) You can download UT to see how it works, just check Titan pass map for instance.

  • Democaliber
    Offline / Send Message
    Democaliber polycounter lvl 4
    The primary thing I'd be curious to know is if a tool like this could/would support blending with custom structures (i.e. walls, etc). My thought here would be having a way to select what the tool determines as the ground for the piece being blended. Blending things into something like  a cave wall would be a perfect example of this. Cheers! Looks really promising so far!
  • Klawd
    Offline / Send Message
    Klawd polycounter lvl 7
    I think I saw this technique used recently in a procedural trees package on the UE4 marketplace. They used this (or a similar solution) to blend the base of the trunk with the terrain mesh.
    Found it: https://youtu.be/ixkP5WTr4DY?t=215

    Anyway, great job, your solution looks awesome! Thanks for sharing. :)
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    The primary thing I'd be curious to know is if a tool like this could/would support blending with custom structures (i.e. walls, etc). My thought here would be having a way to select what the tool determines as the ground for the piece being blended. Blending things into something like  a cave wall would be a perfect example of this. Cheers! Looks really promising so far!
    For now, only really big meshes or landscape actors can be blended to. Only those actors generate Distance Fields that are big enough to influence other meshes. I currently have no idea how I would implement a system where you can manually choose the actor where the mesh normals conform to :).
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    Klawd said:
    I think I saw this technique used recently in a procedural trees package on the UE4 marketplace. They used this (or a similar solution) to blend the base of the trunk with the terrain mesh.
    Found it: 
    Anyway, great job, your solution looks awesome! Thanks for sharing. :)
    Thanks man :), that package looks pretty cool :D. The materials at the base of the tree are definitely procedurally generated but I don't know if normal blending is used here. The video never zooms in far enough for me to see :D.
  • AFsoft
    Offline / Send Message
    AFsoft polycounter lvl 8
    why dont you use decals ? they can be blended on terrain and mesh both with distance values (in cryengine)
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    AFsoft said:
    why dont you use decals ? they can be blended on terrain and mesh both with distance values (in cryengine)
    You could use decals, but it would be a lot of work to manually place them on all mesh intersections. And I don't know if normal blending is possible with decals. You would be able to achieve the effect of the rock in the middle (of the image below), but not the rock on the right. These are all assumptions though, I could be wrong :D.


  • rexus
    Offline / Send Message
    rexus polycounter lvl 16
    It has been done in hell blade https://www.youtube.com/watch?v=GvpD3eM9rJo start at 1:20
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    rexus said:
    It has been done in hell blade.
    It looks like a super cool system :D and it definitely aims to solve the same problem as my project but there are a few key differences :). Firstly, their tool actually changes the geometry of the mesh, while mine doesn't. Secondly, they still have a lighting seam at the intersection of the mesh and the terrain (look at the image below). Both are valid options I think, although I suspect my tool requires more processing power :).


  • Maximum-Dev
    So I started playing around, but on 4.14.1 I can't generate any mask for mesh at intersections with landscape @Olmo are you on 4.14.1 as well?
  • Korda
    Offline / Send Message
    Korda polycounter lvl 8
    I've been giving myself a headache trying to figure out how you did this...
  • Xaragoth
    Offline / Send Message
    Xaragoth polycounter lvl 8
    As a level designer: I love you <3

    Seams make me sad D: Amazing work, keep it up! :D
  • PaulH
    Offline / Send Message
    PaulH polycounter lvl 7
    Cool work, Olmo!

     Could you tell me if you're still able to have 'Generate Distance Fields' checked for the rock mesh?
  • jojojoy
    Offline / Send Message
    jojojoy polycounter lvl 4
    How well would this technique work for stuff like cliffs? Could you blend lots of objects together at arbitrary angles?
  • FreneticPonies
    Offline / Send Message
    FreneticPonies polycounter lvl 3
    Olmo said:
    rexus said:
    It has been done in hell blade.
    It looks like a super cool system :D and it definitely aims to solve the same problem as my project but there are a few key differences :). Firstly, their tool actually changes the geometry of the mesh, while mine doesn't. Secondly, they still have a lighting seam at the intersection of the mesh and the terrain (look at the image below). Both are valid options I think, although I suspect my tool requires more processing power :).


    Also it's one of those instances where the resulting animation looks hilarious! A kind of melting I can only imagine would sound like "blorp blorp blorp".

    Your tools looks great btw, now if UE4 only had proper virtualized texturing you could just take the texture result outputs and bake to have something with no runtime cost. Ah well, maybe you could optimize in some way, nice job anyway.
  • Brygelsmack
    Offline / Send Message
    Brygelsmack polycounter lvl 13
    Will you be releasing this anytime soon? Great work.
  • bcottage
    Offline / Send Message
    bcottage polycounter lvl 13
    Will you be releasing this anytime soon? Great work.
    Have the same question! 
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    bcottage said:
    Will you be releasing this anytime soon? Great work.
    Have the same question! 
    The deadline for this project is in two weeks, so I probably will put it up then. Everything is pretty messy right now, so I wouldn't feel good about sharing it now :). So keep out an eye :D
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    So I started playing around, but on 4.14.1 I can't generate any mask for mesh at intersections with landscape @Olmo are you on 4.14.1 as well?
    Are you using the DistanceToNearestSurface node? I will be putting up everything in two weeks, so you can copy from that if you want :). Or is it an urgent problem that you want to solve?
  • Olmo
    Offline / Send Message
    Olmo polycounter lvl 4
    PaulH said:
    Cool work, Olmo!

     Could you tell me if you're still able to have 'Generate Distance Fields' checked for the rock mesh?
    Yeah, the rock still generates Distance fields :)
13
Sign In or Register to comment.