Need tips with environmental models (cliff faces mostly)

I need some tips since I don’t think I’m getting anywhere with my experiments and kind of losing all hope. :frowning:

  1. First off, I have this rough looking area (all textures are just a temporary mess, trying to test things here)

Screenshot 1

  1. After failing at creating decent normal maps I thought I’d just cover the whole cliff face with rock models, but I’m running into a lot of issues (the ugly shape of the rocks are the least of my issues, I was mostly looking for a proper workflow at this stage)

Screenshot 2

  1. Not only is the whole thing quite messy, but I’ve got terrible banding going on and nothing I do seems to quite fix it. I’ve tried raising the dynamic shadow cascades on my sunlight with some improvement but the banding is still quite obvious, just more “tiled”. I’ve tried bumping the polycounts up on the rock assets which barely changed anything. I’ve tried bumping the “Overridden light map res” in the static meshes settings way up with absolutely no change. How do people generally deal with large cliff faces that need to be covered?

Screenshot 3

  1. I’m also very curious how to deal with the upper edges which are marked in red in the below screenshot

Screenshot 4

All tips greatly appreciated. I’m absolutely lost here. :confused:

Your banding artifacts are from shadow bias artifacts from a dynamic or stationary directional light, so lightmap resolution will not come into play for that. neither will poly count. Its the precision available at the resolution and depth range of your dynamic shadow. You can try adjusting the shadow bias. Increasing the bias a bit should help, but keep in mind there will be negative side effects, such as the contact point of all shadows will be pushed back slightly. you can try using the 4.13 “contact shadows” feature to improve contacts, but keep in mind its only meant for very small ranges.

For handling the top transition (your #4), there are lots of methods. Fortnite uses modular cliff meshes that use vertex colors to blend between rock and grass at the top, but doing that requires building modular cliff assets. You can try a more hacky but simply method of using the DitherTemporalAA node hooked to pixel depth offset to dither the transition without requiring any strict workflow. Maybe try combining that with the “world aligned blend” node, where you already blend to grass on the top using the vertex normals. Then the fuzzy blend between grass and different grass will not be as jarring and the smearing in motion will be minimized.

I think jamming meshes onto the cliff is fine to start with, but you could make it easier on yourself by making some pieces that fit the general shape of a flatter cliff wall so you don’t need to stack pebbles.

you could try making some cliff meshes that are a bit taller and wider. Just make sure the mesh has side and top polys that extend back a little bit so you can stack the cliffs together. It doesn’t necessarily have to be a ‘closed mesh’ but try to close the sides and top well enough so that you can rotate the cliff as you duplicate them and have some wiggle room for placement.

Thank you. I’m using 4.9 but if everything fails I might have to update to 4.13.

I guess the pieces not fitting is my biggest problem. I’ll just have to try to customize the pieces to fit as you say rather than trying to use a “one shape that fits all cases of flat walls” .

I thought I was being more efficient by having closed shapes. I thought it would be easier to simply create a few pieces from all sides that I could then just duplicate and rotate with different sides visible on each piece to “fake” variations. That might not be the right way since they definitely do not fit from all angles.

I’ll definitely have to go through your tips regarding #4 to see what works best in my case. I wasn’t aware of the Fortnite case you mentioned so I will take a look. But I’m assuming they have seperate custom pieces only used to cover these upper edges?

Thanks again, I greatly appreciate how helpful you always are.

There are a million ways to try different cliff shapes. Generally having at least nice corners and a bit of flat top is all you need. if you want to make the backside unique as well thats not a bad idea, but poly count might be higher since you will waste backfacing polys. It might be just as good or better to take that backside and make it a 2nd mesh for variation.

Here is the kind of shape I used for the cliffs in the infiltrator demo, which is also kind of similar to how cliffs in fortnite are shaped as well as the kite demo. Having a shape kind of like this can make it easier to fill big walls and have variation by slightly rotating each piece differently:

I would make a few variations of a mesh like this with different amounts of bend. The above one has a little but of a U bend. Having one that is a bit straighter and one at 45 and on at 90 would go a long way. Looks like your rocks use ‘trim border’ type edging which should translate fairly well to this kind of shape.