3D Modelling and Texturing

Models and Textures

Over the course of the games production I have been required to do some 3D work.
Im not so experienced with Maya so I initially selected a modelling option that is closer to Photoshop than Maya.

Buildings

MagicaVoxel

A free lightweight 8-bit voxel art editor and interactive path tracing renderer, enjoy :)

MagicaVoxel was not the first voxel painting application that I used, but it was the one I found the most useful.The workflow was quite straight forward and it gave some nice results.

magicavoxel-ui
magicavoxel-render
magicavoxel-render2

Inside Unity this looks like below.

CityScape-Prevew

I painted the 4 faces of the building differently so that, once rotated in the dark, it can pass as 4 different buildings.

This worked quite well, however, it became apparent that due to the files are exported there was too much geometry and not enough texture data to add detail textures.
With all the windows being inset from the main building face, each window uses 10 polys, 2 for the window and 8 for the surrounding inset frame, add this to all the external faces and created models had around 30k polys.
Texture data was similarly an issue, it is exported as a pixel palette, with each colour on the model UV mapped to a single pixel on the texture map.

I attempted to remedy the issues by baking the texture data in Blender onto a low poly mesh, baking normals, occlusion, heights in xNormal was straight forward but the result was far from pleasing and I decided to take another approach.

Substance Painter

Substance Painter is a 3D painting software allowing you to texture, render and share your work.

I used the models created earlier and used the texture map from earlier as a material id map in substance painter, this allowed me to mask off sections of the building for use with different procedural materials. This worked nicely and game some nice results.

I had planned to use editor code inside unity to procedurally generate an emission map for the windows, however, after many hours of experimenting I still had nothing, so I cut my losses and tried another approach.

Substance Designer

Substance Designer is the Ultimate 3D Material Authoring and Scan Processing Tool.
It has become the standard in the entertainment industry for PBR material authoring.

While looking for textures and materials for my work I came across a procedural material for a building facade complete with lighting and parallax mapped rooms.
I created a few low poly flat building meshes, UV mapped them to match the procedural texture, and spent a few hours looking over and editing the node graph for the material before importing it into unity.

substance-engine
The roofs are UV mapped to a single pixel as they will never be seen. The lit windows and various properties of the facade can be modified in the engine to create variations if needed.

This is what is used in the final submission.

Roads

During the project there was a time when we had no roads available so i took some time to create some in line with the design goals highlighted in my design post.

Workflow

With a bit more experience, I knew exactly how I was going to approach this task. As I still lack experience with box modeling, I decided that I would put together my basic shapes in MagicaVoxel first. Then I exported the meshes to blender, decimated the geometry to reduce poly count, adjusted and re-UV mapped the mesh. I then exported each of the meshes for texturing in Substance Painter.

I baked all the relevant maps, and then using procedural materials I put together some textures that satisfied the design criteria.

SubstanceRoad

SubstanceRoadRender

It has some nice surface details and just enough specularity to look slightly wet inside the engine.

Final Thoughts

The work done game me some interesting insights into a 3D Artists workflow and a better idea of the various maps involved. It helped a lot in the creation of a shaders, and is definitely something I'll take a bit more time to investigate.

cityModeling