Hi, I’m Chris Sweetwood. I’m a 3D/2D freelance artist living in Denver, CO. I graduated from the Rocky Mountain College of Art and Design, and have been creating 3D art for about 4 years.
Although I went to school for 3D art, I began self taught. I was drawing at an early age, and by high school I focused on understanding art and design. Before going to college I started learning Blender, as it was free and easy to pick up. This was the beginning of my 3D art background. I was able to learn Blender in a few months. However, it took much longer before basic art principles translated from my 2D work into my 3D work. Proportion and form are particularly challenging in 3D and crucial to any 3D modeling. From there I would eventually learn and study in a variety of applications (Maya, ZBrush, Photoshop, Unreal Engine, etc.). To this day I insist on never being complacent, and always trying to learn new software and modeling techniques as well as staying strong in the fundamentals of art and design.
My Computer Terminal model started as a simple concept. I like creating small standalone models for Sketchfab that I can share with the community and get feedback on. I try to limit these project to just a few hours of work, and I always try to set a small goal for each project. For this project I wanted to have a compelling thumbnail image. A lot of my prior work at the time had fairly boring thumbnails. One common thread I noticed on Sketchfab was an abundance of compelling thumbnail images. I wanted to try to capture something similar. At the time I was a bit obsessed with old terminal style computers and their magazine ads. One ad in particular stood out…
With this ad as my key reference, I worked on gathering additional reference images for the details of the model materials. I also created a simple 2D reference I could model from. Although simple, this image (below) was used as my reference when 3D modeling. Although the details and shapes would change, the general proportions stayed the same.
I use Blender for most of my low poly modeling work, Blender is very fast and easy to use when laying down your basic geometry. Once the basic shape took form I then layered on details from my various reference images: adding an arc across the front of the surface, extruding the outside edges of the terminal, beveling and regressing the monitor, rounding the monitor, and adding on the side panel and disk drive.
When modeling I try to first get a very basic mesh completed, it doesn’t need any details, just form and shape. With this basic shape complete I refine the proportion and gradually add more and more details. My final step in the initial modeling process is reducing the polygon count; I try to only use as many polygons as I need to achieve the desired look. Smaller surface details will be added with normal mapping later.
With the mesh completed, I created the UV map (shown below). Whenever possible I will overlap my UVs to save space on the UV map, and reduce the overall needed resolution of the texture maps. In this case, the back, top, bottom, and sides of the computer terminal (the outer ‘shell’) were all folded and overlapped on top of themselves, this reduced how much space was taken up by these less important elements. Overlapping UVs also allows for much faster texture creation. However, the seam and mirror this creates can be distracting, I find it best to use overlapping only in non-obvious places. In this case the outer shell would be largely one color and the mirroring would not be noticeable.
From here the only remaining 3D detail was the keyboard keys. With the keys I wanted to capture the rounded and beveled look of older keyboards.
I also wanted to keep my polygon count fairly low. This meant creating a detailed normal map, that could imitate the high res details I was looking for, then applying that normal map to a lower resolution model. The first step here was creating a high poly version of the keyboard.
Because this model was only being used to bake out normal maps, I didn’t worry about reducing the polygon density, and instead just made sure to capture the shapes and forms necessary to get the look I wanted. At the same time I created a low resolution model of the same keys. This low resolution model would be used as the final mesh (below). The proportions of the two models were identical, so that the details could be directly transferred from one to another.
From here I would create the UV maps for the low resolution mesh. In this case I used the simplest possible method, a projection map from the Z (vertical) axis.
With these UVs I was then able to bake a normal from the high res geometry and add it as a normal map to the lower res mesh. This process can be completed in a number of ways; Blender features a matcap shader that emulates a normal map, making this process a simple copy paste (first image below). However, a custom material could be created to emulate this effect, or a three light setup could also be used to the same effect (second image below).
Regardless of the method used, this captured image is then added to the normal map of the low resolution keys, lining up the projected normal with the UV map described above. As long as this is done correctly I can achieve a lot of faked detail in the low resolution mesh. The low resolution mesh is also smooth shaded, meaning all of the actual shading detail is coming from the normal map (edges, beveling etc.). Once combined this achieved exactly what I had wanted: the details of a high poly mesh with the poly count of the low poly mesh.
The low poly keyboard mesh was then added onto the existing computer mesh. I then used the same normal mapping process described above to add additional details to the computer terminal itself, including additional beveling, slots for the keys, smoothing the frame around the monitor, adding the vents along the top, and adding the logo plate under the disk drive. The normal mapping process is really where the smaller details are added in my workflow. Because this mesh is mostly made of smooth plastic, this process was fairly easy. The more complex the materials, the more time consuming normal mapping can be.
At this point the modeling and normal mapping was completed and I moved on to creating the diffuse roughness and metallic maps.
My primary tool for texture map creation is Photoshop, and with a simple mesh like this, the process was very quick. I start by masking off each region of a model, using the UV map and normal map as a reference. In this case, I separated the various components, (monitor, shell, keyboard, etc.) and colored them accordingly (left image). Once the basic colors are established I then work into the the details of each component. In this case, the text on the keyboard and logo, the dust on the monitor, and the vents on the shell top (upper right image). Finally additional smaller details are added to give the texture more color variation. This is usually just a few layers of noise and dust brushes within Photoshop, the idea being to break up the colors without overshadowing the image (lower right image).
I always keep my Photoshop files organized with a lot of folders and subfolders. Although this is a bit overwhelming to look at, it makes the process much easier when changes need to be made. This is especially true when using multiple texture maps (diffuse, normal, emissive, etc.)
With the color map and normal map completed, I worked on the additional needed maps using a similar process, and baking maps from Blender when needed (ambient occlusion, cavity, etc.).
With the terminal completed, I worked on the background of the image. This included: a shadow plane, which sits under the mesh to create a drop shadow, and a text plane, which would sit behind the mesh to add the text to the final rendering. These are just 2D planes with alpha and color texture maps. The text was directly taken from my key reference poster; I masked out the text in Photoshop then reformatted it to fit a widescreen display, and exported the image at 1920×1080.
*Sketchfab has recently added a Ground Shadows option in its lighting, making the ground shadow plane redundant in a modern workflow.
This was added into my test scene within Blender, with all of my elements in place I created a few test renders to see how all of the various elements were coming together.
At this point the bulk of the work was completed, and the results were looking great. The final step was importing the model to Sketchfab!
Sketchfab is always an important part of my process. Just because something looks good in Maya or Unreal doesn’t mean it will look good automatically in Sketchfab. After importing the model and texture maps into Sketchfab I also take another look at the assets, to ensure everything translates the way I want it. This might mean going back to my model, UVs, or Textures to make final adjustments. In this case everything went smoothly. I translated my camera information, including FOV, from Blender into Sketchfab and the image was already looking great.
At this point I felt like I had achieved my original goal of creating a compelling thumbnail within Sketchfab. I made more adjustments to the image, including adding a dynamic light, that helped to highlight the PBR materials, as well as playing around with the background color and post effects.
The post effects within Sketchfab are one of my favorite features, they are really robust and can add a lot to an image. In this case, I used grain to help bring the text, model, and background together, and sharpness to make the model better match the text. Some chromatic aberrations were also added, however this effect was toned down after a commenter recommended that it was too intense. Another great feature of Sketchfab is the community; I always appreciate comments, especially those that are critical, as they help me improve my work.
Overall this project was a success, I created a fun little model, and achieved my goal of creating a compelling thumbnail image. This is currently my second most popular model. And the response from the Sketchfab community has been overwhelmingly positive. I hope this breakdown was instructive and insightful and I can’t wait to see more work from this community. Thanks for reading!