My name is Charles Coureau and I have been a freelance CG Artist for 8 years. I’m specialized in 2D and 3D graphic creation for video games, animation and VR. I’m focusing on characters, objects, and landscapes.
This experience enables me to be artistic director on animated projects, or lead project designer on 3D VR projects, for the company Speedernet.
Siggraph 2018 is a project that I and several others realized for Speedernet. It features a hefty 3D resource, tailored for their VR authoring software for the web, Sphere.
Thanks go to: Pearl Pegaz (3D), Gael Roulin (DA), Laura Meheust (illustrations), Frederic Gide (illustrations), Benjamin Fuzet (scenario).
Designing the simplified 3D base
The core of the model comes from a box that is 6.3 x 12 x 3.5 meters in size.
To avoid being too symmetrical, some edges were cut. At this moment in the process, I was only working on rough shapes to form the structure of the whole thing.
Adding some structure with wooden beams
Then, I put main pillars on the walls and the ceiling, to give some structure to the room.
We followed basic architecture rules, and tried to make their placement look realistic. I added some details such as nails and shelf brackets.
After this part, I could now start the objects library to fill the room.
PBR textured objects library
First, I defined 5 areas in my scene, each of which will have different needs in terms of items.
- The entrance, with the electric board
- A desk and its board
- A comfy corner, with its armchair and table
- A geeky corner, featuring a computer and diverse devices
- A dumping ground, and its mess
To craft these objects, I took inspiration from the theme and story of the project, in which a man finds old possessions of his deceased brother, reminding him of his past life and several moments of it.
I chose to use 80’s and 90’s culture, with retro-themed objects, blended with some more modern ones.
A preview of some of those have been made in low poly, each composed of base color, metalness, roughness, and normal maps.
All have been modelized in 3ds Max, and their PBR textures were made using 3D-Coat.
The ambiance and render to texture were handled by the Mental Ray engine in 3ds Max.
To read Mental Ray textures, I use the Physical Material shader, which is able to handle photometric lights, raytracing shadows, and light reflections.
We put the items in the room in an homogenous way, to avoid any empty spot in the scene.
The hard part was to plan ahead, since the objects were in render to texture mode, and we could not just duplicate objects and stack similar UV layers.
Every object had to be independent, to prevent light issues and imperfections on the final render pass.
We also had to calibrate the render taking into account the starting point of view, once in first person VR. A middle ground needed to be set to avoid being too computation-heavy.
We used 5 different lights to get the right result. They’re all set up with the Mental Ray engine, in Photometric Web mode.
The first is the main one, bearing a slight yellow tint, and Ray Traced shadows.
Lights 2 and 3 are slightly orange counter-lights.
The fourth one is the light coming from the roof window; it has a yellow tint as well, and Ray Traced shadows.
The two n°5 lights are red, to represent the electrical board lighting. They helped us lighten this part of the scene, which was a bit too dark, and change its mood.
Baking lights into the texture
I tested different renders to check how lights behaved, and if everything matched. When the lights were satisfactory, I could start rendering them to texture.
The idea was to transform the lighting and everything that came out of it (occlusion, reflections…) directly into texture maps for each object group.
I selected the group and went to rendering. I then selected the complete map, and defined the rendering path for the texture. Finally, I set the resolution to 2048*2048 and start rendering.
I followed this process for the 21 textures needed, in 2048px, with the exception of the walls, which would be rendered in 4096px, to avoid lowering the quality of their details.
Baking the ambient into the texture + usefulness for the (mobile) web
To ponder the gains of this process, we’ll simply do the math.
This scene holds 21 different shaders, each of those need 4 textures (base color, normal map, metalness, roughness). This means we end up with 84 textures to load when displaying the scene, which is quite a lot for smartphones, and promises at best a very sluggish experience.
Using a render to texture technique allowed us to load one texture per shader, and minimized computing effort, replacing every physical material shader with a standard material, and applying for each one of them the matching texture. This enabled us to reduce considerably the weight of the scene and increase the fps.
In conclusion, comparing my master scene with all its lights and 84 textures with my final scene, holding only 21, I get a true but lighter copy, which is perfect for its intended use and target.
This process enabled me to optimize greatly my models, and remove the scene’s lights, which reduces the sources of incompatibility depending on the platform it’ll be viewed on.
I integrated my scene in Sketchfab using flat shaders. The final rendering was done in 3ds Max during renderings. There are no lights and no effects in post prod;)
I’ll let you be the judge.