Hi everyone, I wanted to ask for some advice or official/unofficial guidelines regarding creating house/building models based on their distance from the track: Close-range scenery (next to the track): What’s a reasonable polycount and texture resolution? How much detail (e.g., modeled windows, gutters, etc.) is expected? Mid-range scenery (e.g., 50–200 meters away): Should I start simplifying geometry at this range? What texture sizes do you typically use here? Far-range/background scenery: ultra-low-poly versions? Any tricks to reduce draw calls here? Also: What’s the recommended number of materials per building to keep performance in check? Are there any limitations or recommendations on texture atlases, especially when combining multiple buildings into one mesh? Thanks in advance!
best is to keep simple make a high poly version of the models and bake them into a low poly that we it looks great without the performance hit. So best practice is the make sure you have a shared texture for certain generic buildings or textures like brick walls and stuff like, trim-sheets are great way to improve performance and still keep your buildings looking great. Share textures/materials as much as possible with buildings. background stuff should be as low as possible and also depending on the viewing angel of the model don't create polys for stuff that won't be seen. *basically don't model the back of a building that can't be seen from the track.
For starters, I would asky why do we need LODs in the first place. Super simple (and scientific) version is to elimitate sub-pixel triangles or very small triangles in general and to reduce quad-overdraw, which is a situation where multiple triangles are making up a single pixel and they all have to be drawn in order to get the average color, which reduces performance. If you understand that, you can tell that you should be eliminating any short or small faces in your lower LODs and that the actual polycount isn't as important even though it does go down as a result. From an artistic standpoint, simplify things that don't impact the silhouette of the model a whole lot because that's what creates visible pop-in. For buildings, this probably means removing 3D windows and so on. Also zoom out your model and see what isn't recognizable anymore or what isn't recognizable in the detail that it was modeled with. Then adjust as needed. For textures, I think reusing textures as atlases and tilables beats having a single unique texture for every mesh. Also remember that uniform texel density will look better than muliple textures with vastly different resolutions even is it's lower-res.
Also important details that you want to stand out and look good texture wise should have a larger uv than rest of the model, if this like a sign or logo this would be best put on a seperate texture which has a lot of different signs like roads signs, anything can be used by different buildings.
Thanks everyone for replying. I’ll put some numbers in my question to make it more precise. Let say I have not very dense scenery in general, with little traffic and I want to model station surrounding area very close to the reality, how badly having 20-30 unique buildings with 2k unique textures will affect the performance. Vertices 3-7k. Should I consider doing this at all?
If you need 20-30 unique buildings, I would say that you have a pretty poor strategy. Try to look into making modular kits with different color variants or something like that. Be sure to make blockouts before commiting to making the final assets. Also a big part of environment art (and this applies especially to cities) is being able to generalise and decide what can be represented with generic assets (with tricks to add variety) and what needs to be unique because you literally can't do everything as it is.
The strategy might not be perfect, but I focus on fidelity and looking for ways to do it. If there are 20 unique buildings visible, I want to find a way to do 20 unique buidings. Maybe some of them will share materials some will not. That's why I'm trying to figure out how badly it'll affect performance
From a performance perspective, I think there will be no difference assuming they are properly made as there are always much more than 20 assets loaded at once and the memory management of modern engines like UE4 is really good. From the perspective of work necessary to make that many buildings, you should establish a good pipeline that let's you make them efficiently.