The terrain patch the cursor is pointing at is blending between 4 base and 4 top layers, so 8 layers total. The red one is still blending between a total of 24 layers. I’ve decided to leave them all available since the additional layers get compiled out without issues or additional cost (Well except making the material graph bigger).
I’ve also changed how blending between the top and base layer is performed which is now dependent on the normal of the bottom layer. The way it blends at slopes with that is pretty nice. The biggest caveat is that the material only works well with temporal AA active and no tesselation.
I haven’t used array textures for the material yet, they could be neat for different textures on the side of the tri-planar mapping or even to select a random texture per tile (You’d plug in a bunch of similar grass textures for example). For the current temporal blending based solution virtual texturing isn’t too great, but for a version, without temporal techniques, it would bring large performance improvements. (Also with virtual texturing you could use that same virtual texture to blend in your static meshes, but I couldn’t get the World Height virtual texture to work yet.)
Hi, is there an simple example how to combine Randomizing Tilling and Layer bland?
My problem is that Param Text Object can’t join to node Layer Bland. Sorry, bad speak english.I Use Translate
So I tried out the new taa blend version, and it works. The biggest issue I have is that I am using a runtime virtual texture for my landscape, and it throws a d3d compile error only when trying to output to and then sample from it. I was hoping to be able to use it since it is an easier setup than the other method, but since there is also other some other weirdness with the shader and d3d errors when using other functions, I assume it may be caused my the same issue. I am not versed in the complexities of custom shader code, but in the future if a fix is released that will allow it to function with runtime virtual textures, this will be a game changer
I also had a D3DCompile error, but i managed to fix it by replacing HLSL hash function with material nodes. I’m guessing the problem of original function is that it’s getting Sin of Float2 which is not possible in Unreal for some reason. You can check it by doing simple test:
So i created this material function which is getting Sin before appending vector and replaced calls to Hash in TileFunction (its 3 of them in total). Now i don’t have the error.
Holy moly. Thank you so much for this! This did the trick! I implemented this, and got my landscape mat to compile using RVT. Awesome stuff. Goodbye texture tiling
This looks really useful. It’s a shame my UE material experience is ■■■■. Thanks for sharing and am looking forward to being able to understand it one day.
Is it possible to have the material also working on the z axis ? Because actually it’s very good for flat landscape but i would like to also use it with meshes.
@**witch-dev **Very thankful for this remarkable work. I have a little question though… Could you make a small tutorial of how you combined NormalAOandHeight in one texture. and same for albedoRoughness. Or just couple of words so that I could try my own or a source where I can learn.Thank you in advance.!
I found how you did it with reverse engineering. Just for the other dummies on how you should setup your texture is
For Normal Map = RG - Normal , B - AO, Alpha - Height. Do not forget to select BC7 (DX11, optional A) from texture setting.
For Albedo = RGB - Albedo , Alpha - Roughness.
Did you ever make any progress with this? I’m currently working on triplanar mapping using this (and using world space normals) and I’m very close but the normals are giving me problems. it seems the “side” material is being stretched in one axis.
Material Editor Normals preview:
Material applied (Bottom right is correct):
Hi. Good day, I am happy to stumble upon this thread. I am currently finding a material for a tiling material. I stumbled upon EXTILE plus but I will buy it for next month. I want to have a temporary solution. I browsed and checked the files here. But my problem is I am using substance source for my materials. May I know how do I go about individual texture setup. You currently have a combined color-roughness and normalAOheight. Another user has a setup with color/albedo, normal and RHAO. However, I do not know how to setup individually the other textures since the nodes are too many and I am confused at this point in time where to insert a separate color, normal, rougness, AO and height. I hope somebody out there has managed to separate it and link with the appropriate nodes. Thank you so much.
I suppose you’ll need to modify this material little bit in order to make it work with different texture setup. RHAO texture name means Roughness is packed in Red channel, Height is in Green channel and Ambient Occlusion is in Blue. I personally used Albedo, Normal and SROH (Specular/Roughness/Occlusion/Height) as different textures. The key here is too look for ComponentMask (displayed as Mask) nodes and see which channel is used in each place of the material, then replacing a masked channel(s) with needed one(s).
This is quite rough explanation but it’s been quite a long time since I worked with this material… I hope this helps.