I’m working on an architectural / interior visualization project in Three.js and I’m aiming for a realistic, atmospheric look similar to this example by Anderson Mancini:
Most effective is to bake everything, then display them in three with emissive/unlit materials without real time shadows. Minimal amount of transparency and reflective surfaces. Especially if you wish to run this on VR and mobile. Your example also use custom DOF, AA, Bloom, when the view is stabilised. And if you clever you can render the whole scene without any light, only HDR.
But why doing all this? Because all memory left is being used to store/display the largest textures and meshes you can fit inside a browser (webGL shader limited to 4092px down to 2048px on some devices). webGPU is not an option if you plan to allow any customers and devices to run it with their default settings.
TLDR: all the work is mostly done outside three, on your 3D modeling app.
To sanity-check my understanding: does a site like HomeStyler operate on the same principle you’re describing here?
Meaning: most of the visual fidelity comes from assets prepared and baked in a DCC tool (lighting, shadows, texture detail), with the browser mainly acting as a lightweight viewer using unlit/emissive materials and minimal real-time lighting?
My longer-term idea isn’t to just load a library of fixed GLTF house models, but to allow users to manipulate the layout — for example, making a room larger and having the house adapt accordingly.
Given that kind of flexibility, does the “bake everything outside Three.js” approach still apply, or does it start to break down once geometry becomes user-modifiable at runtime?
You can for example modify the layout, send it to some backend to rebake everything. You could do it in in a different thread. You could have an artist manually bake everything, but then that doesnt scale well.
What about baking normal maps? If you want light weight assets that load fast, that would also be done manually. Or not, in which case youre loading really heavy models.