The Evenstar 3D & Art's profileVolodymyr Huba's profile

Realtime interior configuration





Client's Final Use: VR/AR, Webgl 
Goal: Realtime Interior Configuration
Industry: AR/VR, WebGL, Interior design
Project duration: September 12, 2022 - October 1, 2022
Scene polycount:
107k tris
Software used: Houdini, Gestaltor, Autodesk Maya, 3d's Max

The project aimed to optimize interior 3D models by using procedural nodes to automate actions for use in WebGL. "Procedural nodes" are a powerful tool that can automate specific actions or processes to make them more efficient. Nodes serve as points where various data is created, transmitted, or received, including ready-made functionality for interaction when building a 3D model or material. In most cases, the interior is entirely procedural, allowing the original model to be modified and reloaded into .glb format. You can easily create and configure your dream spaces, all in a convenient .glb format, ready to use anywhere.






Source scene

In the original scene, there is only the reception room and unused empty areas from other rooms. The polygonal mesh of objects is quite diverse, and most of the objects have a triangulated structure.

Number of polygons in the scene: 1,897,844 tris




Interior configuration

The main aim of this configurator is to enable real-time changes to wall and object materials, colors, and textures while preserving lighting and shadows. This interior configurator allows clients to customize the materials and finishing touches of all the objects in the scene in real time.

Apart from modifying the color of the walls, the focus was on adding and changing the textures of the walls. Texture changes occur without the distortion of light or shadow, thanks to the light maps.




Stages

1.  Analysis
The initial phase of working with a 3D interior model involves analysis, which includes a visual inspection of the existing objects. During this stage, it is essential to identify and differentiate between repeating objects, such as lamps, poufs, armchairs, and cabinets. However, it is crucial to note that some of the 3D models of poufs may be corrupt, and most objects may have reversed normals.

Identifying these issues at the analysis stage is critical to ensure the final output is high quality and meets the required standards. However, it is essential to note that the interior model has an incomplete part that cannot be used further.




2. Stage preparation

To improve our interaction with the model, we used Autodesk Maya 3D modeling software to remove unused data. After importing the interior into Houdini, we did a few things on the 3D office model to prepare it for further work.

In particular, we set the "Clean" node to clear the scene of unused vertices and glue the points of objects with coordinate 0. This setting ensured our 3D model was optimized and ready for the project's next phase.




3. Unused space

In our interior, we only used one room from the entire space. The rest of the area was empty, comprising only walls and windows. We divided the floor and ceiling objects into separate parts to eliminate the unused space and utilized a boolean node to trim the unnecessary interior sections.

Additionally, we incorporated a cube to regulate the degree of cutting in real-time. With this feature, we could precisely control the trimming process to ensure that the resulting 3D model met our specifications and was optimal for further enhancements.


​​​​​​​

4. Procedural clustering of a scene

To facilitate interaction with scene objects, we needed to develop an algorithm that would isolate the selected 3D model. Doing so saved time and effort by eliminating the need to select objects again when changing the original 3D model manually.

We found that utilizing the Group and Blast nodes was sufficient for our needs. However, in some instances, we also employed the Edit node for object selection. These tools allowed us to easily isolate specific elements of the 3D model and make necessary adjustments, thus streamlining the workflow and enhancing our productivity.

The scene divides into three layers
1. Isolated object
2. Procedural interaction
3. UV




5. Procedural correction of 3d models

Before starting the optimization phase, a few steps are necessary to correct the 3D models. These include fixing reversed polygons, removing non-manifold geometry, and removing polygons not visible to the naked eye.

In some cases, the original geometry of the 3D models may be corrupt and, as a result, will need to be manually corrected.




6.  Procedural optimization

3D interior objects have an excellent quad topology without needing a Quad Remesher. For basic objects, you can use the Reduce node.

Thanks to the procedural approach, it became possible to control the global polycount of the interior. If the number of polygons exceeds what you need, you can reduce the number of polygons of any object at any time.

As the accompanying screenshot demonstrates, we could also adjust the degree of smoothing for lamp objects in real-time by increasing or decreasing the number of polygons. This capability allowed us to maintain the optimal polycount for each object, resulting in a final 3D model that was efficient, functional, and aesthetically pleasing.




7. Bonding models

We merge the optimized 3D models into a single 3D object. For this, we use the Merge node. After that, we center the result in the world center and correct the scale of the model using the Transform node. If we carry out this procedure at the beginning, we conclude that we will have to repeat it.




8. Procedural UV Generation

To assign materials to our 3D models, we use the original UV coordinates already present in them. For automatic mapping and generating the UV map, we rely on the RizomUV program. While the automated method significantly speeds up the scanning process, it may yield low-quality results




9. Light baking

Light baking is a resource-intensive process that requires computing power. Before performing light baking, we prepare UV coordinates for each 3D model. We then create an additional UV set for lightmaps, which differs from the arrangement of UV snippets in a square. We optimize the 3D model for UV by increasing the most visible parts and intentionally reducing the inconspicuous ones. Thus, the finished light maps look remarkably clear, even at 2K resolution.

When creating a UV set, we combine some objects for more optimization. This way, there is one light map for 3-4 interior objects.




Challenges and Solutions

1. Interior optimization is always an important part of the design process. One of the most challenging stages of this process is the optimization of the ceiling. In this case, the ceiling object contained a large number of reversed normals, as well as layering of polygons in the main areas of the model.

We decided to model part of the ceiling cutout using procedural modeling based on its shape.




2. The poufs in the 3D models were damaged, but we didn't let that stop us. We created new models from scratch and strategically placed them to fill the gaps.​​​​​​​




3. Our team replaced the original 3D flower models with similar low-poly versions. The previous models contained intricate polygonal leaves that proved challenging to optimize.




4.Extracting objects, such as the floors, from the main 3D model can be complicated, especially when parts of other models are standing on them. But with the Edit node and Ctrl+H key combination, we quickly overcame the challenge.




Procedural Optimization on Cabinet Object

1. To isolate the cabinet object, we separated it from the main scene, allowing for automatic selection in the event of any changes in the source scene.




2. Removing back-facing polygons from all objects, including books, was necessary. For the cabinet object, we deleted polygons from the bottom and the top to increase optimization.




3. We fixed referenced polygons for particular objects to maintain a smooth appearance was crucial.




4. We completed a complex model optimization to ensure that the model runs efficiently.





The initial phase of working with a 3D interior model involves analysis, which includes a visual inspection of the existing objects. During this stage, it is essential to identify and differentiate between repeating objects, such as lamps, poufs, armchairs, and cabinets. However, it is crucial to note that some of the 3D models of poufs may be corrupt, and most objects may have reversed normals. Identifying these issues at the analysis stage is critical to ensure the final output is high quality and meets the required standards.

Our 3D model creation approach utilizes procedural methods to streamline routine actions, saving valuable time and allowing for easy adjustments to the interior scene.




Realtime interior configuration
Published: