Recreating a Digimax 210 Camera in Maya & Substance 3D

Shangyu Wang talked about the workflow behind the Samsung Camera – Digimax210 project, demonstrated how its parts were textured, and explained how the wear effect was achieved.

Introduction

Hello, my name is Shangyu Wang. I have been in love with CG for about 3 years and now I am in the fourth year of college. 3 years ago, I was a freshman in college and there was a club attended by many people who love painting or modeling; that was where I used a CG app, Maya, for the first time. From then on, I started to find some tutorials about Maya on Youtube or Bilibili.

I really enjoy creating stuff in 3D, it can make your dreams and ideas into an actual image, and that’s why I am so passionate about CG.

The Digimax 210 Camera Project

This project was inspired by my great passion for photography. I like to collect old cameras, I bought this one in the second-hand market because I loved its design with the many details on its surface, it made me want to copy one in Maya.

Modeling

I used Maya to model the camera. I took photos of the front, top, and left view of the camera with my phone before I started modeling. Then I imported them into the Maya viewport as a background image to avoid errors in scaling.

The modeling of the camera is a little tricky in the beginning because it consists of many small parts, so the most important thing we have to do is figure out how many parts of the camera there are.

We can see there is a very small gap between the two parts, and when I knew how this camera was assembled, I finished this model part by part. It took me about 2 weeks: the camera has many buttons and a small frame, so it requires more patience. I used Booleans and then manually modified the mesh to make it cleaner.

There are also some details inside the flashlight and lens. Before this project, I had some experience with lens repair, so I knew the structure of the inside more or less. If u don’t know the insides of your asset, you can buy one more to disassemble it, as long as it is not too expensive, it’s very helpful for your project. 

The last step before doing UVs is also very important, in my experience: in the reference object, not all buttons are aligned perfectly, some of them might be tilted, this is why we need to adjust the position of each button to make them slightly misaligned, this way the model can be more realistic.

I separate the model into two parts: one is without transmission, and the other (shown in blue) is the transmission part (lens and transparent plastic). It will be easy to control the material in the final render.

UV Mapping

I output the model and created the UVs in RizomUV. I set the UDIM to four, the texture resolution is 4096x4096, and the average texel density is 16px/cm. I used "rectangularize polygons vertically" to make the metal ring part UV a rectangle, it will be very handy when I project the height pattern texture for this ring in Substance 3D painter. 

The second part of the model is the same as the first.

Baking

I didn’t add damage detail in ZBrush, so I just smoothed the model twice and output the model into Substance 3D Painter, with the default baking options.

Texturing

If we zoom in on the reference, we can see the surface is not totally blue and white, it is more like blue mixed with some noise.

I used a very simple way to make this pattern in Substance 3D Designer: I created a white noise node and used the Pick Gradient tool in the Gradient Map node.

Then I exported this image to Substance 3D Painter and projected this texture using a filler layer.

In the next step, I added a flakes effect in the metallic channel because when I rotated this camera under the light, I could see its surface has a shining reflection, I think it is like a car paint material.

In Substance 3D Painter there is a preset for flakes, it’s very quick to complete this effect.

Text and Height Detail

There are many digital symbols on the camera, and it is difficult to find them one by one. I searched for an image of the brand-new camera on Google, then went to Photoshop to extract the symbols on the camera by removing the colors from the image. After that, I converted it to black and white to enhance the contrast of the image, then erased the extra stuff, and converted it to an alpha image.

And next, I used these alpha images as masks to project onto the camera.

Then I added normal details:

Anisotropy Metal Ring

In Substance 3D Painter, you can find a sample called Preview Sphere, which will show you how to make an anisotropic effect in the software.

So first, I projected a height pattern on the ring surface with UV space, there are no seams projected because I set this UV into a rectangle before.

Next, I added two channels in the texture set settings (anisotropy angle and anisotropy level).

Before the next step, we need to open the enable anisotropy option in the shader settings. If this option is off, you cannot see what happens when you do anything about anisotropy.

Then, I created a new fill layer, opened these two channels, and set the anisotropy level to 1. In addition, we need to use a gradient circular pattern fill in the anisotropy angle, this pattern is in the preset resource.

At last, we got a cool anisotropy result.

Scratches and Dirt

I created a smart mask for the basic texture layer, but it is too simple, with no break ups, therefore, I added a paint layer to fix it manually.

In my view, we should think about the formation of the scratches during painting. When we use a camera, there is always an area that is used more than others, so we should add more scratches and dirt to it. I painted more details on the buttons/the battery cover and the dial.

Then, I created a new grey layer for the dust and used a dirt generator. The dust is not too strong in this model, so I set this layer opacity to 30%.

After this, this camera texture was almost finished, but I added one more layer for the base color. I filled the normal space texture mixed with the base color and blurred/warped it, setting the opacity to one percent. This added more color variations to the surface, even if the change is small, it will improve your asset realism because the world is random, including the color.

Transmission Effect

This part is very simple, no baking, you only need the normal and roughness channels to control the transmission effect, so I used dynamic strokes to paint some scratches on the surface.

After the texture is finished, the next step is to export it to Arnold.

Rendering

Create a new aiStandardSurface first. For the first material, there are six types of textures exported (roughness, metallic, base color, normal, anisotropy level, and anisotropy rotation).

When you connect the texture, make sure that roughness, metallic, and normal texture is already set to RAW in the color space before starting rendering.

It's worth saying that you should connect anisotropy rotation/level to Specular, the color space should be set to RAW.

Now to the second material. Create one more aiStandardSurface.

I used a Reverse node on the roughness texture and connected it to the transmission weight.

When the glass has more roughness on its surface, that transmission weight will reduce it. Then I used the aiColorCorrect node to add more contrast, it can make the scratch effect more pronounced.

As for the lighting, I only used a dome light and an area light

At last, I wanted to make my work more interesting, so I added a falling effect to the camera, separated the model, bent/moved some pieces, and scattered some screws on the side. 

Before rendering, I set the rendering resolution to 2560x1440, and the camera AA samples to 4. I adjusted the render angle and pressed the render button.

Conclusion

I don’t have too much advice because I am not a graduate yet. I just do what I love, in my opinion, this is really important when we want to improve our skills.

Thank you for reading, I hope it was helpful for you!

Shangyu Wang, 3D Artist

Interview conducted by Theodore McKenzie

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more