0
\$\begingroup\$

I have a bit of experience when it comes to 3D modeling, but something I never really wrapped my head around is environment modeling. You know, you walk down a road and you see lots of buildings, they all look good, with great texture details, and yet they don't go over the texture budget and the framerate is nice.

Now I'm working on a little prototype, and I wanted to test how to make assets for it.

Sample floor model

This is supposed to be one floor of a fantasy tower. I did the modeling in Blender (with a rough UV), then I exported it into Quixel, I made a simple texture, 4K resolution because why not at this stage. The problem is, when I look at it ingame or in blender, it's quite awful. This is a single texture and a single material for the whole mesh.

Close-up showing pixelation of texture

I was expecting this result, because the wall is some 20 meters long, so the texel density is really low. But this is already a 4K texture, when I should be using a 512 or 1k texture really. I mean, when you look at modern games, stuff like this looks sharp enough, with lower res textures than what I'm using now.

So, basically, what is the right approach to something like this?

I was thinking about something like this:

Example of modular breakdown

Have the "core" with a low res tiling texture, and then details as separate meshes that I would build in the engine (UE4 in this case). But I'm kinda worried about performance. I mean one floor would be at least 15 meshes, so 15 draws calls, so for ten floors it would be 150 drawcalls or something, I could barely make a village this way.

I know some games do fully modular buldings, like Fallout 4, they have a bunch of "kits" made of 2x2m blocks that snap together and each block has its texture and it looks good. But I don't really need that level of granularity, and I want more individual looking buildings, that don't look really copy-pasted.

And even if I did go that way, if one building is like 100 pieces alone, that's some 100 draw calls, how does that even work ingame?

Example building in Red Dead Redemption 2

An example from RDR2, how would go about making something like this? It can't possibly be one single mesh with just one texture.

How can I achieve this kind of result?

\$\endgroup\$
  • \$\begingroup\$ "I'm worried about performance" → then you should build a test and measure it to find out if those worries are justified. "if I [use tiling textures], if one building is like 100 pieces alone, that's some 100 draw calls" → is it really? Many of those pieces will use the same tiling textures, and can be combined into a single draw call. You also don't appear to have factored in texture atlases, where you combine several display textures into one logical source to sample from. \$\endgroup\$ – DMGregory Mar 13 at 21:53
  • \$\begingroup\$ I'm not a 3D artist. But the picture you provided isn't good looking for just one reason. Yes the building has a lot of detail. But even if it didn't, it would look good because of the lighting, post processing and artistic direction. And talking about performance, you can often push a lot of vertices in a single draw call. Don't know the exact terminology in used in Unreal but in Unity if you make meshes static and use the same material on them, they get batched together. There is a lot of scope for optimization. \$\endgroup\$ – prithul Mar 15 at 6:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.