Re-creating bathroom in Unity

Michal Franczak 2017-11-15 13:41 tutorial  > Unity  > modeling

We are porting 3ds Max scene into game engine!

This nice bathroom is a simple test of moving 3ds Max scene to Unity. In fact it is just more than "moving" - most of the meshes are taken from original scene, but I re-unwrapped them for Unity and created materials from scratch in Substance Painter. This was just a test of Unity engine for arch-viz purposes. Result is pretty good, but, of course, each engine has got its limitations and Unity is no exception, we will talk about it later.


First, a little disclaimer - it's not totally finished scene, it has some lacks (bottle materials are just placeholders, we also could make better mirror material, etc.), but it was just a proof of concept of what is possible and it was my learning base of this engine.



This is an original scene from Archinteriors vol. 39. It was modeled in 3ds Max, rendered with V-Ray. Nice GI, good balance, it's a clean architectural visualization, ready to ship to client. Of course, to get this render quality we need to spend some time (more than hour) on the rendering and each separate shot or change requires re-rendering. That was the reason we are watching more and more arch-viz renders made in realtime engines, especially Unreal Engine. But is Unity capable to deliver decent quality? I exported the scene from 3ds Max to single obj files and imported it to Blender (my 3d software of choice), then I unwrapped it and exported it via Capsule plugin to Unity and Substance Painter, because I wanted to create game engine-friendly PBR materials.



This scene is a screenshot from Unity, a bit greenish result, not bad for the first interior in new engine. It's a simple shot, without external post-production, that could be better tweaked using Unity Post-Processing Stack, Beautify plugin for Unity or Photoshop.



Bathtube in blender and UV mapping on the right



Round sinks and their UVs.



All objs imported to Blender



Interior (ceiling is hidden). I created new floor mesh with Archipack addon for Blender.



This is scene in Unity editor. On the left we can see the list of all assets used in the scene. On the bottom we have project brower that we use to import all models, textures, materials, plugins, etc. On the right we have properties of currently selected object. In this case we see camera settings.



The good thing in Unity is built-in Asset Store that lets you manage all bought assets. Unlike Unreal Engine, adding new plugins to project does not require restarting it.



To have good anti-aliasing I used MadGoat SSAA - it's supersampling anti-aliasing plugin, smoothing those jagged edges in nice way.



The other plugin that I used was Render Monster which allows to capture screenshots / frames in a fast and high quality way.



If you want to record camera movement, it's very simple - create new empty object in Hierarchy window, open Timeline panel and and press "Create" button to create new timeline asset.



New, empty timeline. Now you can select your camera and drag and drop it to Animation track.



Press" record" button on a track and select your camera again - now each position / rotation of a camera will be recorded to the frame that is currently selected as a keyframe.



After recording at least two positions of a camera on two different frames you can right-click on newly created animation and select "Convert to clip track".



The scene overview in Unity Editor.



Door mesh with two materials for door and handle. I haven't used here Substances directly in engine (which is now possible using Substance Source plugin for Unity and Unreal), I imported textures that were prepared in Substance Painter.



Mirror is a simple reflective material. In this case it is not a perfect solution, bhecause we cans ee artifacts (two hanging lamp reflections in the back). These artifacts come from ScreenSpace reflections post-process. There is a way to create it in better way, though.



Main directional light settings - it's our main light source in the scene. I chosed "baked" option to get nice GI from engine.



Baked lighting settings on the right. I baked lightmaps with Enlighten engine with "Baked Indirect" option. It gives nice results, it's currently faster than Progressive Lightmapper in interiors and gives nicer results. Unity is more sensitive to building mesh than Unreal - you can get light leaks quite often and there is a lot of work with optimizing meshes and UVs until everything is correct.



Main camera settings. Camera is using "deffered" rendering. we also place post-processing effects in Camera inspector window. You can see that we are using third-party payware plugin "Beautify" here.



Some post-processing effects are achieved via "Post-processing" stack that was introduced this year. It is great free plugin with many usable post-processing fx. In this scene its main purpose is to enable screenspace reflections.



Color grading settings



Some final touches: vignette, grain, etc.



Beautify settings - this plugin is nice when you want to sharpen your scene, add some nice bloom and flares and grade it.

Thanks for reading! :)

Author: Michal Franczak Editor: Michał Franczak
Tags: archinteriors bathroom unity
You may also like...
Creating a bathroom in 3ds max - 5 of 8

Creating a bathroom in 3ds max - 5 of 8

In this tutorial we are going to create a bathroom in 3ds max and render it with Vray. The main goal of this tutorial is to show different techniques for modeling and rendering. So the objects and materials have been chosen according to this goal.


You need to be logged in to leave a comment. Don't have account? Register now.
Sketchrender19:07:51  |  15-11-2017
another substance painter article.......................... they should just buy evermotion.............
dr_After09:17:20  |  16-11-2017
@Sketchrender Not even single screenshot from SP in this article, should Unity buy us as well? :P
Sketchrender14:24:38  |  20-11-2017
dr_After.... the SP comment was left on a SP Article not here, the comments section is not functioning properly.
Artemka21:04:03  |  22-11-2017
how much time did you spent for baking ?
zeljans00:20:23  |  02-12-2017
Nice article. I personally use Unity for creating architectural visualization in VR I would be nice for Evermotion to create some Unity interior set project. ps. if needed I could help :)
dr_After12:49:43  |  12-12-2017
@Artemka - not much, it was less than 30 minutes I guess.
dr_After12:50:45  |  12-12-2017
@zeljans: we are thinking about it, although it's not easy to make great scene in Unity without using third-party plugins (which we cannot include in final product). But we are considering making Unity scenes :)
zeljans10:41:00  |  19-12-2017
This is my version on that same bathroom in Unity, without 3 party paid plugins and no afterward post production, just Unity screen capture.
dr_After11:20:14  |  19-12-2017
@zeljans good work! :)


  • ul. Przedzalniana 8, 15-688 Bialystok, POLAND