Book Image

Unity for Architectural Visualization

By : Stefan Boeykens
Book Image

Unity for Architectural Visualization

By: Stefan Boeykens

Overview of this book

Architects have always relied on drawings, renderings, and sometimes even movies to present their design concepts to clients, contractors, and other stakeholders. The accessibility of current game engines provides new and exciting possibilities to turn any design into an interactive model that anyone can experience at their own pace. "Unity for Architectural Visualization" explains how you can create compelling, real-time models from your 3D architectural project. Filled with practical tips and in-depth information, this book explains every step in the process, starting from the very basics up to custom scripts that will get you up to the next level. This book begins with a general overview of the Unity workflow for architectural models. You will start with a simple project that lets you walk around in your design using basic Unity tools and methods. You will then learn how to easily get convincing lightning effects on your scene. You will then set up a basic navigation system in your project, and not only this; you will also cover some tips and tricks to take navigation to the next level. You will quickly learn how to fine-tune the shaders and how to set up materials that are a bit more advanced. Even when you finish Unity for Architectural Visualization, this book will make scripting easier with reusable examples of scripts that can be applied in most projects. After reading this book, you will be comfortable enough to tackle new projects and develop your own.
Table of Contents (15 chapters)
Unity for Architectural Visualization
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Preface
Index

Updating the scene when changes occur


Regardless if you use CAD or BIM software or rely on DCC systems, chances are that the models need to be updated to reflect changes in the design. Traditional visualization systems often fully import models and convert them in a system specific internal model, which is edited and adapted in a project. However, in such systems, you need to redo all these changes when you have to replace a model with a new, updated version. Since you cannot reasonably assume that a model is completely finalized before any game authoring starts, a more efficient workflow is in order. Like many game authoring systems, Unity is not modeling software, but relies on external software, such as Autodesk 3ds Max or Maxon CINEMA 4D. It is, however, possible to add modeling functionality to Unity using third-party plug-ins, such as ProBuilder available at http://www.probuilder3d.com or GameDraw available at http://gamedraw.mixeddimensions.com.

When you load models inside Unity, they are handled by an internal importer module. Like most 3D systems, you can tweak the import with a number of settings. However, in Unity these settings are maintained as part of the imported model's properties and a reference to the original file is kept. Whenever that file is updated, for example by exporting the model again, using the same file name, Unity recognizes this and reloads the file, applying the same import settings again. This is a very important behavior of the Unity pipeline, as you can see that all models that have already been placed inside the different scenes of a project are placed on exactly the same position, at the same scale and using the same geometry conversion. This also allows you to tweak the import, for example, by altering the import settings and re-importing the model even if it has already been placed in scenes of the project.

The following screenshot displays an ArchiCAD model inside Unity:

Unity goes a step further when you use one of the directly supported DCC modeling systems, such as 3ds Max, Maya, or CINEMA 4D. If you save your native model directly inside the project's Assets folder, Unity automatically imports the model, or so it seems. Actually, Unity calls the original application in the background to request an export to the FBX format.

If you have such a supported modeling application and it is installed on the same machine as Unity, making changes can be really straightforward as shown:

  1. Double click the model icon inside Unity. The native model gets loaded inside the DCC software, ready for you to make changes.

  2. When you have finished editing, simply save the file and close the DCC software.

  3. When you switch back to Unity, after a few moments, the converted FBX model is reloaded automatically in the background.

For the user, it just looks like there is only a single model that Unity can import when changes occur. This same process also works fine with for example, Photoshop PSD files, where no conversion is required.

When using SketchUp or ArchiCAD or other 3D modeling software that is not directly recognized by Unity, the process is a little more complicated:

  1. Double click the model icon inside Unity to launch the authoring software.

  2. When you are ready with editing, you need to export the model manually. Export the file to FBX or another supported format and overwrite the previous version in the Unity project's Assets folder.

  3. When you switch back to Unity, the model is replaced with the new version.

Tip

If you need to set up the conversion configuration each time (for example, when the software does not remember export settings), take care of noting which configuration was used last time. For example, how the model is organized, how textures are treated,and if a possible transformation occurs. Once you have a conversion configuration that works, take a note of all the export settings and be wary of applying them again at the next export action.

Optimally supported workflows

While we would prefer to claim that any modeling software is equally usable, two combinations are worth mentioning specifically and they are based on using software from the same vendor in both cases.

When using CAD or BIM software from Autodesk, it helps to pass through DCC software that is also provided by Autodesk. AutoCAD or Revit models are best passed through 3ds Max or Maya before converting to FBX into Unity. This is especially important to reflect model changes. AutoCAD models are usually passed as DWG files to Max or Maya. Set up correct material properties and texture mapping and either save the file directly inside the Assets folder (to have Unity call up the translation in the background) or export to FBX into the Assets folder. The former is slightly more convenient, but the latter gives you full control and is usually the preferred choice for experienced users.

This is equally true when using software from Nemetschek (or one of its daughter companies). ArchiCAD and VectorWorks models are best passed through CINEMA 4D, before converting to Unity, for exactly the same reason. The Exchange plug-ins for ArchiCAD and VectorWorks optimizes the model exchange with CINEMA 4D and automates model updates. You can set up materials and textures and still refine the model in the original creation software. CINEMA 4D models can be placed directly inside the Assets folder.

As always with interoperability through add-ons, success depends on particular software versions and supported platforms and the fact that a software update of one application can break compatibility with the other one. Alas, this is beyond our control.

You can also be confronted with permission problems. When you use the automatic conversion process, Unity copies an FBX exporter module in the supported application's add-on folder, which requires administrative permissions. On Windows, you have to launch Unity as an administrator at least once to have this process completed.

With both the Autodesk and Nemetschek applications workflow, you can reload the architectural model, while preserving applied materials, mapping, or animations, and consequently reload the FBX model inside Unity while preserving the additional settings over there. The following screenshot gives an example of an ArchiCAD model that is exported to CINEMA 4D and loaded inside Unity:

Based on reactions in user forums on Unity (for example, the Unity Community at http://forum.unity3d.com/forum.php) or one of the related DCC software programs, many people actually suggest ignoring the automatic conversion and leaving the native models (for example, MAX or C4D files) outside of the Assets folder. They would rather perform the conversion manually. This allows more control, for example by splitting the model up in smaller chunks, so they are easier to manipulate inside Unity. This is also required when you collaborate with others and not everyone has the Unity or modeling software available on their machine. In that case, the artist responsible for the 3D model can work on a provided FBX, while the designer responsible for the building model can continue working, and export the model when updates need to be integrated.

The following figure summarizes several workflows that are known to work well for architectural visualization. Bold arrows are the recommended pathways for optimal integration.