Realistic ArchViz - how detailed should models be


My plan is to model my grandfather’s house and hopefully use an Oculus Rift to walk in it.
I have 0 experience in modeling / UE4, so this is all new (and fascinating) to me.
Decided to go with Blender as my modeling suite.

My question is - how detailed should I make the models ?
I would like to achieve a photo-realistic feel (as much as possible), and I know it would take me months (at least).
But I don’t want to do a lot of work on a model, if I won’t be able to use it in UE4.

My brother helped me out, and did the first model of a piano (see how amazing it is here), however - a comment we got was that 70,145 vertex points and 63,277 polygons are way too much, and that we could slash a lot of them without any noticeable difference.
Actually, that might be true unless you’re wearing an Oculus Rift which really enables you to look at thing up close, the way you usually don’t look in a regular ‘game’.

how do you balance between your desire for photo-realism and GPU & memory constraints ?
(I have a new GeForce GTX 980).

Thanks for any tip / rule of thumb you guys can offer !

Not sure how VR is impacted by high poly count but for your gpu (same as mine) it’s not a problem. Arch-viz scenes are generally small and don’t need all game logics and stuff like that so I think you have room for high poly count. Post process Fx and overly complex materials are going to have much more impact than geometry Imo. In my last scene, I used a lot of geometry to vertex paint my meshes and I didn’t see much of an impact. It started to drop when I used faked reflections with scenecapturecube and complex water shaders!

That piany would be way too much if you expect to place 50 of them in a large first-person game, and then play it on middle-spec hardware.
For a single piano, in a small house scene, running on high-end hardware, that’s probably not going to be a problem.

Once you get enough objects into the scene to make it realistic, you should start profiling performance. If frame rates start dropping, then you can try rendering at quarter resolution. If frame rates are still low at quarter res, you know that you have too many vertices/triangles.
At that point, you can generate good-looking stand-ins by using simplified geometry, and generating normal maps by “casting” from the high-resolution asset to the low-resolution stand-in. This is what high-end games end up doing.
Exactly how to do “casting” to generate those maps depends on the tools you’re using – I don’t know how to do it for Blender, but I’m sure you can find a script to do it if you search the interwebs.

Thanks both for the replies !!
The plan is to model the entire house (not sure if this counts as a single scene, or if I will use different ‘levels’ for each room which will help ?)
Each room in the house will be highly detailed, but I’m guessing it won’t have 1,000 meshes, but probably more like 100 meshes, with each one being highly detailed.
So I hope my assumption that splitting each room to it’s own level will help.

-Make the high poly models like you planned on.
-Make the low poly versions of them for use in the game scene. (The level of detail the low poly will vary based on your preferences)
-Bake normals from the high poly versions using xNormal or some other program you like.
-Use the low poly model in game with the normals baked from the high poly model to bring back the detail you lost when you made the high poly model.
-If you want to go even further, you can set up an LOD system so that you are only using the more detailed models when they are in view/proximity. Look up Simplygon for a good example of what LOD is.

You can have a look at the models from the ArchVis example scenes available for UE4 to get a general idea of polycount for Architecture Visualisation.

If you start adding one highpoly object after another to the scene, you’ll surely hit the point where it impacts performance even on new powerfull Hardware.
Going back and rework lots of models to save polygons at this point might be harder then starting from scratch again.

I’d suggest you to do it the other way arround.
Start simple and add detail once you’re sure everything works.

I’d model the basic room shape first, insert placeholders for every major object in the room and then start detailing.

Again i’d start with the rooms itself. Adding stuff like trims and textures.
Then replace objects you know you’ll need a higher polycount for.

But since you said:

you might want to start learning the basics of modelling, uv editing and texturing first before trying to do a project like this.

Set yourself achivable goals, this keeps up the motivation.
Otherwise you might come to a point where you realize that you’ve worked on something for months without any results.

Especially for the purpose of learning, it’s good to keep things simple.
Don’t do overly complicated models with high polycount if you still need to figure out how to model, uv map and texture a model.
It’ll only slow down your learning and increase frustration level.

Once you’re able to do all this with a simple lowpoly object, you’ll be also able to apply it to a model with higher resolution.

Thanks all, again.
So it seems like there are 2 clear ways of thought among you guys -
some say - just go with low poly + normal maps baked on them from high poly,
while some same - start with low-poly, and then one-by-one start replacing them with high-poly (how would that workflow work ? i.e. - I start replacing object, and half way through I notice a performance dip - now I have a room with 50% low-poly objects and 50% high-poly objects ?)

What about my comment on levels ? Does splitting each room in the house to it’s own level (hope I’m using the term levels correctly) help with performance / memory at all ? will this approach allow me to insert more high-poly models per room ?

high-poly object baked to a normal map onto a low-poly object is more suited for gaming development. For arch-viz you want extra realism, you need geometry. I would not worry too much about the polycount unless your house is the Trump tower lol!

but you have bigger concerns for now, like learning 3d modeling :stuck_out_tongue: Good luck man!

I think you misunderstood these comments.

First of all i wouldn’t worry about highpoly to lowpoly baking stuff, especially if you still need to learn the basics of modelling.
You won’t need a lot of normalmap baking for ArchVis scenes anyway and it’s something even advanced users sometimes struggle with.

Priorities for you should be to learn the modelling basics.

You sound like you’re trying to push things to the limit and beyond, which isn’t a good approach for a beginner.
Start simple, get more complex once you know how things work.

Also i didn’t want to say start adding lowpoly objects and turn them to highpoly ones one after another.
I meant that you could create your basic room shape first and insert placeholders for models you’d like to add.
Just for the sake of messurement and scene planning.

Just learning blender’s interface is going to give you nightmares for a while! So yea, polycount is the least of your problems at the moment hehe!

My strategy when making Archviz models if that if they’re going to be used several times in a level, I optimize the models pretty hard, but if they’re just going to appear once or twice, I don’t do that much optimizing. In the project I’m working on atm, I have many objects with 10k-60k polys, and one or two with 100k-150k. 70k for a piano is unnecessary though. For instance, you could replace all the white keys with a box with normal maps instead. Only use many polygons where it will affect the shape of the object, and remove the polys that don’t contribute anything. I think you should be able to get that piano to 10-15k without any loss of visual quality.

Thanks for the reply ! I was thinking of adding somewhere along the road some interactivity with the piano (well, with almost every object eventually) …
This is something that will take me months, maybe years… but at the end it will be worth it.