Stationary engine

Matchmove

I used 3D Equalizer because I think it’s the best software for camera tracking. The backplate did come with a camera and lens information. Additionally, the backplate was shot with tracking markers. That made tracking easy.

I tracked each marker and also a few extra points. When I tracked about 20-30 points across the shot, I made a camera solve. Looking at the deviation graph I could spot a few inaccurate points so I deleted them. The final deviation value was below 0.1. That’s a really good and solid track. I used a lens grid to undistort the footage. To accurately line up the 3d scene I picked a point and turned it into an origin. Additionally, I picked another two points and guessed their position from the origin. In this way, my matchmove had a flat floor and roughly good scale. The final matchmove was exported and imported into Maya. I also exported lens distortion data.

In Maya, I lined up geometry to match the walls and floor. I also camera projected the backplate onto this geometry. I later used this geometry for lighting and rendering to catch shadows and also for accurate reflections. Additionally, because my track was really solid I could have used the geometry of the walls as a holdout of the engine render.

Maya scene with lined up geometry

Modeling & UVs

Based on my reference images, I started by modeling various engine elements. To save time, I was trying to model only a few components and reuse them as much as possible. That also helped me save time doing UVs. Modeling was relatively easy because my engine doesn’t have many complex shapes. I used multiple UV tiles to have big UV shells and nice texel density. I probably used way too many UV tiles.

Finished model
UVs

Rigging

The tricky part of rigging for me was the front movement of the connecting rod, crank, and wheel. I made the wheel rotate with an expression that uses frame number. I created a null object that I parented to the wheel. Then I used point constraint on the x axis between the wheel and the connecting rod. Finally, to make the rod follow the wheel properly, I used an aim constraint for the rotation axis. I constrained main wheel and other smaller wheels with the front wheel to make them rotate. For some smaller wheels and the rotating tower, I used an expression reading rotation from the main wheel. Because I wanted to make the tower spin faster, I multiplied the expression by a float number. I faked the movement of the rubber belt by animating UVs instead of deforming the geometry. Additionally, to make the belt less static, I added a bit of movement to the geometry with blendshapes.

Finished rigging

Texturing

For texturing, I used Substance Painter. I used Substance Painter a few times before so I was already familiar with the software. I exported the engine as an fbx and imported it into the Substance Painter. In the Substance, I had to bake out texture maps. Because I had too many UDIMs the baking took some time. I used steel painted material preset as a base for each component. I manually painted and modified the material for each part of the engine. I had to manually break up the wear and tear layers to make it look more natural. Additionally, I did add texts and other details. I exported the final textures as an EXRs and used the textures in Maya.

Screenshot from Substance Painter

Lighting & Rendering

I analyzed the lighting based on the rocks lying in the room. Based on these rocks, I could guess the location of the lights and how strong they should be. I created one strong light on the right side behind the wall. This light creates very sharp shadows. Another light on the left side has a much lower intensity and the light is warmer. Additionally, there is an extra front light and skydome light with HDRI.

Light setup

I created a setup for rendering. I picked the useful AOVs that I used later in compositing. The different AOVs such as direct, indirect, and specular, also helped me balance samples and remove noise. I wanted to render shadows separately, so I created two render layers. One render layer contained the engine and the other layer included geometry catching the shadows.

AOVs
Slap comp

Leave a comment

Your email address will not be published. Required fields are marked *