Sorry for that title but I didn’t know how to describe it:
I want to build a city with some enterable buildings in it. I now don’t know if I should include the inside-geometry or not.
In other words, I have two options:
a) Build a huge scene with everything inside. Hope that LineOfSight, Culling and Z-Ordering reduce the Geometry count (The Inside of the House would be culled because it’s normals are facing away from the street)
This would have no load-screen when entering a house but consume lots of GPU/Texture Memory?
b) Only have the street and “reload” the house scene.
This would reduce the Geometry count but would introduce a “lag” when going outside. A look through the window would also be impossible.
Level of detail is probably the main thing. That drastically reduces the triangle count. Object count… It depends on what you’re going for. thousands of objects isnt an issue on a mid to top-range computer. In very far distances you could even use pseudo billboards. Games like oblivion (which was amazing at it’s time of release when you look at the game as a developer) relied so heavily on LOD to be able to maintain any kind of framerate.
In that same situation, you would normally have maybe even three textures for one ‘item’. Low res, med res and high res - loaded based on distance…
I would say those are probably the first things you would want to work with.
In addition to jayfella’s suggestion, in the highest LOD level, for instance when you’re at or near the doorway to the building in question, perhaps have only the first room of the building visible in the scene. Then as the player walks into that room spawn a thread that loads the meshes, spatials and textures for the other rooms then queue them up to the main thread and attach them to your scene.
So the first room is essentially the loading area, the rest of the rooms are loaded while the player walks through that room. Of course you’ll want to keep this in mind while designing your architecture.
Just a thought, never done anything like this before myself.