High Geometry is killing me
OVD
Posts: 254
So I love this coral reef product: https://www.daz3d.com/v176-iray-coral-reef
The problem is that the corals all have such ridiculously high geometry values that the preset environments cause my PC to render straight to CPU.
Any suggestions on how to circumvent this please and thanks?
Comments
I just loaded Scene 1, and the geometry really isn't that high-poly. There are individual outfits that have more polys than this scene. However, there are a lot of different textures at play, and if those are too large, that would certainly exceed your VRAM.
For comparison, this is Lyam Bob Hair.
The geometry is pretty low tbh but there are a massive number of textures, all seem to have one or more 4k maps.
It's not the texture maps. I use Scene Optimizer for that and with that the scene I'm rendering is only at 600 MB for textures. With all the coral the geometry is at 2.7 GB though. I know that it's the coral as well because I hid everything else in the scene aside from those and that's what's causing me to drop to CPU.
So if the geometry isn't that high, then why is it giving me grief?
See: This is only scene 2 loaded into a new scene.
I'm running a really good machine too. I've never encountered this problem before with any other product.
What gpu are you using? What driver?
What is the render SubD level? Are the surfaces using the Displacement Subdivision proeprty at a higher level? Scene Info gives the polygon counts using the current division level, which may well be exceeded at render time.
GeForce RTX 2060, 6 GB
GeForce Game Ready Driver Version 451.48 (latest available, no updates)
All the coral is being rendered at base resolution. There is no SubD being used on any of them.
I've attached the Scene Info, but comparing the geometry to the G8F figure I'm also using in the scene, the coral are nothing at all. The highest number of vertices a piece of coral uses is 2500, where for G8F it's 65000. Yet when I actually go to render, you can see that the Geometry Memory Consumption is extremely high, and I've hidden everything else in the scene just to confirm that it's the coral that's causing the issue. Hiding G8F only reduces the memory consumption by about 0.2 GiB, where a single set of the coral on a rock takes up 1.39 GiB alone (see the image attached above).
It really doesn't make sense to me :/
hiding stuff doesn't remove it from the scene.
The corals use displacement maps. The additional geometry that creates at time of render isn't included in the vertex count you see.
Are you using the same coral objects more than once in your scene? If so, using instances instead (with instancing optimization set to "Memory") should help.
If they are not using SubD what else is in the scene? SubD (which is usuallly at level 1 for tthe Viewport) is nearly doubling the polygon count, so getting on for a quarter of the polygons in the scene belong to items with SubD applied.
If it's hidden at the node level it isn't sent to the renderer.
No it doesn't, but it does reduce the Geometry Memory Consumption when rendering since it doesn't have to render those objects.
That makes a lot of sense. I'll experiment with that to see if it makes a difference. I have a hard time believing that a normal map would add that much to geometry though. Doesn't a normal map add to the texture rather than the geometry itself?
Literally nothing. I created a blank scene with nothing in it, added a single set of the coral, checked that it was at Base resolution, and rendered it in iray. That's just the default for it, and that's why I'm horridly confused as to why that's all it takes to break a scene when I can do another with 3 G8F and a full environment without it crashing to CPU.
I misread that the first time and thought you said "normal." Tried removing normals with Scene Optimizer, and no change.
But I removed the displacement maps and it went from 1.37 GiB used for Geometry Memory to 6.179 MiB so that was the culprit. So they increased their Geometry Memory Consumption by over 220 times. :/ That's certainly not feasible.
Thanks though, I'm definitely glad to know why exactly that problem was being caused. It's a relief to have that one solved.