What is better for performance? Parallax mapping or nanite mesh with a lot of polys?

What is better for performance? Parallax mapping or nanite mesh with a lot of polys? Im thinkn specific for the low bar gtx 980 which is bare minimum for nanite.

Just a decent normal map, actually.

sure but i want some depth. So the question what is better for the depth and silohette

If you want real depth, then you have to use geometry, which means using nanite. Which you can’t really do with a card like that.

Hey there @kurylo3d! I think this question is definitely one that requires stress testing to find the core of. While Nanite itself is incredibly performant, we’ve been using parallax panels for ages and they are just as scalable! It all depends on how much you’ll be using them, and if you really need the extra fidelity. Performance wise you won’t see much hit from either of them until you scale them.

1 Like

Thanks for the help. I will end up replying when i test a city street with a gtx 980 as my low bar. My goal is to mostly use nanite with some parallax for certain decal strips and possibly brick roads. As it stands im keeping my brick walls as modular parts nanite.

Just a related-question: the parallax decals would be for things like divots/dents or small additions like sand, or the edges of a bullet-hole? Stuff that would ideally deform geometry in real-life but b/c it’s so small in the game-world, you can get away with doing it as a parallax-decal?

Not always because it depends on the game and scene composition. It’s not that binary of a choice. In going with a normal map, you’re increasing texture pool usage, which some scenes may or may not have room for.

1 Like

Absolutely :slight_smile:

I’m just not a big fan of doing everything with geometery.

Well I’d start getting used to it because the industry has been wanting to transition over since around 3000BC. People just had to work with what was available. Normal maps and other things like POM have just been crutches to fit within the hardware constraints of the time. Nanite is a massive game changer. Not saying every model should just be slopped into a game straight out of Zbrush@40mil tris, without any reduction, but I’m sure you get what I mean.

Going with a more geometry based workflow massively increases the velocity of a developmental pipeline.


I get what you mean, but for me anyway, we’re not quite there.

Nanite is heavy, and most gamers PC won’t get a performance gain.

It’s also making developers ( some I’ve experienced on Marketplace for instance ) more sloppy. I literally had an example of a floor tile, that didn’t need any geo ( it didn’t have any dents etc ), that was 20k tris! :slight_smile: ( 12 would have been fine ).

It depends on the content. Nanite is not well suited for certain content, like aggregate geometry such as a gravel road. POM excels at this type of content, offering per pixel displacement without the complications that Nanite runs into.
But other content, like a brick wall, that used to leverage POM is probably now better served with Nanite.

For anyone paying attention… I tested nanite and lumen on my gtx 980 computer with 6 cores… with max quality settings this thing is solid 30 fps. Thats with full volumetric sky and everything on epic… Will test further when i figure out how to enable and disable features … So far disabling lumen gets 10 fps more with all the high res crazy poly stuff… to make it around 35-40 fps

This is 1680x1050 test… maxed out quality settings.

Some parallax decals used on edge of things and edge of roads… Pretty impressive so far… for a crappy card like a gtx 980

Does anyone have anything i can drop into my project to enable disable graphics stuff … a menu or somethign? Would make testing easier.

1 Like

check out my latest reply… impressive what a gtx980 can get away with … in full maxed out quality settings.

On another note… you save tons and tons of memory by not having to make each seprate type of window and door, by simply applying the same materials and not needing an overall baked down normal map and textures… Most of my materials have dynamic edge wear and it runs fast.

Sounds great :slight_smile:

Out of interest, how do you do the dynamic edge wear?

A material i wrote… baking in red vert color for ao / dirtiness, edge pointiness green vert color… blue vert color a random pattern… Basically everythign in those images for hte most part is using the same material instance… just modified with custom primitive data per mesh. (Problem is custom primitive data doesnt bake into HLODs)

So basically that entire scene right there is like 5-10 draw calls because of nanite and custom primitive data.

Custom primitive data controls color… dirtiness… amount of edge wear… and all sorts of other values… bumpyness… roughness.

1 Like

Ah, so not as dynamic as I thought :slight_smile:

I thought you had a shader that ‘found’ the edges :wink:

well unreal 5 has vertex baking tools for that stuff… or blender has a lot more control if you want to go that route.

also it looks like the vertex shader is super cheap in UE5 making materials cost way less that do this sort of stuff… Its like when i disable nanite… it makes it 3x more expensive.

1 Like