Room Builder - Automating Photo-realistic Rendering for Interior Designers.
The client in this case was Decorist, an online interior design service that matches you with a friendly designer to work with you to pull your room together in your style and budget.
To formulate a time-efficient process which would allow a designer to design a room and get renders -- photorealistic images. Before the Room Builder app, the designers selected products to be used for the room to create concepts, and also generate a shopping list for the customer. A technical artist generated photorealistic images of the room, like the one below, from the concepts using professional software such as 3ds Max and VRay. The app would automate this rendering process and make it faster and more efficient.
The main task for this project was to create an interior design application in Unity that allows designers to quickly design a room in an optimized environment and then view photorealistic renders of those results.
The Target process time that the team decided upon meant that finding a way to reduce the time required for designing and rendering was paramount. This involved designing a rendering process that would handle item models efficiently and reduce performance issues in the Unity application.
Multiple challenges were faced by the team when developing this project, with the most demanding ones being:
Carrying out the R&D required to learn and plan out the stages to take a room designed in Unity and exporting it and automating the photorealistic rendering process using 3DS Max.
Automating the workflow so that all the assets that are generated in a lower quality higher performance Unity environment which would then render in high quality through 3DS MAX.
Figuring out how to utilise remote machines can be integrated with the processes planned for asset development and room rendering.
The project involved a significant amount of collaboration with the Decorist team while figuring out the wireframes, requirements and process. A Test driven approach was needed to ensure that the specific knowledge required for automation and photorealistic rendering processes was present. For this approach we listed the most challenging areas in the project, for both application development and automation requirements. The first few weeks of the project were the spent focused on addressing these challenges?
The Design Process
Designing the app was a thorough process involving collaborations between the UX and UI designers at Tintash, and the designers at Decorist.
An intensive review process was followed to ensure high quality UI design. In addition, multiple cycles of user testing were initiated so that tweaks and changes could be made to ensure that the optimum experience was provided to the end users.
Since the Room Builder application was developed in Unity, the high quality item models in Max needed to be mapped to low quality models which were optimised for Unity. Asset production guidelines were created for Decorist’s 3D artists so items would show up as accurately as possible in the Room Builder app in terms of textures, color, and geometry.
Remote Automation machines were used to create the final photorealistic images to be shown to customers and process the item models for use in the Unity Application.
Tintash also designed and created an online inventory system that would store the 3D models and information for the items to be used in the rooms. This portal incorporated databases containing information against each item such as its ID, the Vendor, and an Item Category.
To show items in the rooms being designed in the Unity Application, an asset workflow was defined that would map item models in the Unity App to item models in 3DS Max, which would show up in the final renders. For this purpose, an asset bundle would be uploaded on the inventory management system which would allow the application to access all the item models.
Since one of the main goals with the application was to reduce the time taken to design, create, and produce photorealistic renders of a room. The Team had to put significant effort and thought into ensuring that the application and the associated processes were streamlined.
Rendering Quality Assurance
The Team developed a novel way to integrate Slack with our rendering process through automated messages which served as a convenient way for the team to monitor assets and rooms being rendered. This helped us refine the process through testing and experimentation.
Remote instance Optimization
An area of optimization was using the optimal remote machines and configurations to generate models and images as efficiently as possible in terms of performance overhead and cost.
Optimization of Models (Automation)
We developed our own scripts for 3DS Max and integrated a built-in asset decimation tool named simpolygon to minimize the vertex count of the 3D models and their textures, converting them to be usable in the Unity Application.
This process also involved extensive quality assurance to make sure that every model was checked for texture and geometry issues which could then be addressed.
The time taken to render a fully furnished room was reduced to an average of 10~15 minutes per room.
The time taken to design a room was reduced to a mere 30~40 minutes which also included the time taken to load the models being used in the room and resolving any issues that might arise with the app.
The overall result was a reduction of a task that used to take upwards of a day to requiring only an hour of overall effort.