Announcement

Collapse
No announcement yet.

How to blend shaders between intersecting meshes?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    How to blend shaders between intersecting meshes?

    Does someone has a example or know how to blend shaders between meshes that are intersecting?like this:
    https://forums.unrealengine.com/comm...rs-battlefront

    Doing manual vertex painting for everything is going to take a lot of time.Would be cool to just intersect meshes in real time and blend between their shaders, but i never managed to find a example/tutorial of this in udk.

    #2
    As far as I know, you can't do that automatically in UDK. The best way to do it would be vertex paint or defining a ground level in the material and blending based on distance from ground level. But if you do that, the ground would have to be flat everywhere you use that material....

    This might be crazy, but maybe if you generate your landscapes in World Machine, you can output the heightmap as two png files--one 16-bit greyscale for making the landscape, and another that's just a regular 8-bit RGB. Use the regular 8-bit RGB png in your material to figure out what the landscape height should be at a given world location. Use the World Machine outputs to create landscape layers, and then pack the textures into your RGB png so that your meshes know which terrain type to blend into. It would be pretty complicated, but I'll bet you could do it.

    Check out Himeko Sutori, the upcoming tactical RPG where you control armies of over 100 unique characters.

    Comment


      #3
      arbitrarily "blending shaders between meshes" in UDK is pretty much impossible.
      blending a mesh with the landscape starts to get more feasible, even if still much harder than in UE4.

      Originally posted by Nathaniel3W View Post
      you can output the heightmap as two png files--one 16-bit greyscale for making the landscape, and another that's just a regular 8-bit RGB. Use the regular 8-bit RGB png in your material to figure out what the landscape height should be at a given world location. Use the World Machine outputs to create landscape layers, and then pack the textures into your RGB png so that your meshes know which terrain type to blend into. It would be pretty complicated, but I'll bet you could do it.
      this is not a bad idea, but with the part about the landscape layers you're basically having to rebuild the entire landscape material into your staticmesh shader aren't you?
      to streamline it I'd keep the heightmap and then blend with a single diffuse/normal/etc from a single location (you'd lose multi-layer blending but the shader complexity would be kept reasonable). for the 'single location' you'd trace to get the physical material of the landscape which would get you the most used landscape layer, and once you get that it's a matter of keeping a data table somewhere that you can use to know which layer uses which diffuse/normal/etc and then pass it to your staticmesh material as texture params.
      I actually used this very method in HeroesVII, but there the meshes were pre-placed always on flat ground so I didn't need the landscape height part


      I guess another method could be to use decals, but you'd end up with quite many of them

      aside of that I can't really think of a performant and effort-friendly method with the basically non-existent editor extensibility of UDK
      Last edited by Chosker; 08-27-2019, 05:39 PM.
      Follow me on Twitter!
      Developer of Elium - Prison Escape
      Localized IBL for UE4

      Comment

      Working...
      X