Asset Production Pipeline

For my Foundations of 3D Graphics class, we were tasked with creating an asset for a video game platform. Rather than opting for an organic asset, we were required to adhere to something non-organic, perhaps a spaceship, or weapon. An important point to consider are the constraints of video game engines, primarily the total polygon count of the model.

During the preliminary stages of this assignment, I decided that I wanted to create headgear, particularly something like the old diver’s helmets of the 20th century.

My first attempts at modelling were…unsuccessful, to say the least. I found that the reference images were far too complex for my relatively beginners skills. The related tutorials I researched (on helmet designs) weren’t too informative in terms of how to construct the diving helmet. Although I found that you can construct the “cages” around the openings using splines… (detailed in a brief tutorial here), the main method of construction the tutorials used was relying on symmetry, which is obviously a problem with such an asymmetrical design.

By this point, a week or two in, I began searching for an easier alternative to the complex helmet. I decided to settle for a fire hydrant, which, although relatively simplistic, if done well, will meet the requirements of the task.

Variations on fire hydrant designs means I could potentially add other elements, such as a chain or extra bolts, like the reference pictures detailed below.

I eventually settled with this reference image, which was imported as an image plane to directly model from:


Although I originally had trouble modelling the fire hydrant by trying to constraint the main body to a single polygon, I eventually combined several different polygons and attached them to form a single polygon before exporting the UVs.
The bolts were originally constructed separately before merging them with the main body using the same method.

When creating the chain, I used multiple copies of a modified Torus primitive, rotated, and attached to form a long chain. By using a path deform modifier in combination with a line spline, I was able to warp the chain around the hydrant protrusions to create the product below:


In terms of UV mapping, it was a relatively straight forward process, although due to increasing time constraints I had to use the automated functions of the UV editor, namely the auto-resize (resized the UVs in relation to their size on the model) and auto-packing (which packed the UVs automatically).

i qwant to die

Unfortunately during the baking process, I misinterpreted the tutorial, which required a normal map to be baked when using a combination of both a high and low poly model. Because my model was already relatively low-poly, this baking process was unnecessary, and I wasted time trying to find the error in the program.

After realising all I needed was an ID map, I went straight to texturing in Quixel!

Beginnings of the texturing process.

I definitely wanted to go with the traditional red fire hydrant motif . First starting with base materials, I then went in with secondary materials for more visual interest. Rather than leaving the main body flat, I chose to include an additional rough metallic map to add a bit of wear and character to the asset.

This slideshow requires JavaScript.

screen04After a quick export using Quixel’s animation feature, I put together a short video in Adobe Premiere!

This assignment presented a new challenge in my animation journey. I often found I had to resist the urge to diligently follow provided tutorials and improvise on my own account, particularly during the modelling stages. My progression from the previous assessment to this one was ultimately quite a positive transition, especially in terms of time management and general ease, having been previously acquainted with the program. The introduction to the Quixel Suite might just have been my favourite experience in this module thus far! Texturing was inevitably made easier, and the high level of customisation (now with the addition of different maps) meant that the final product looked much better than I originally expected.

Thanks for a great first tri, guys!


Pirate’s Gold: Rendering, Compositing, Video Editing (The Finale)


I had more than a little difficulty rendering this animation, and the entire process likely took almost two days.
My first attempt at rendering, which was left overnight, had not finished by morning – not due to any complications with the render set-up, but rather, the fact that the laptop I was borrowing went to sleep and had no background processes running. Alright, no biggie. I can render it at the campus whilst I’m staying there during the day.
…Wrong? It rendered quickly enough, in approximately 2.5 hours, whilst I did some background work, but with terrible quality.

Less than appealing. Alright, moving onto round three. I tweaked the settings so that the rendered animation would have a far higher quality. Even after leaving it to render overnight (high quality obviously means a longer rendering time) I returned to find a video with the exact same quality as my previous attempts.

A little disheartening, obviously, but I had made preparations with my friend to use their computer (which had already had the Autodesk program files installed) to render my animation overnight. And…the exact same result. It was at this point I realised I had been rendering the files into the wrong format – which explained the terrible quality.
With less than a day to turn in the assessment and time running out, I made a last ditch attempt to do a QuickSilver render. Although the quality will undoubtedly lessen, with my options narrowing, I didn’t really have much of a choice.

Because I needed to change the lighting, I went with a relatively bright skylight with an orange tint – mainly to mimic a sunset.

Compositing / Editing

Decided to head over to Adobe Premiere for the video editing effects.

In terms of compositing, in order to add authenticity to the video (since it is still meant to be an advertisement) I added an overlay, as if the animation was made for an android app. The title, “Pirate’s Gold,” was also implemented in a similar fashion, using a visual overlay.



Even though I had planned to investigate After Effects CC and further enhance the assignment, my issues with the rendering put off valuable time. I decided it was more practical to work with what the tutorial provided me with rather than risking not submitting the files on time. Besides, the new orange lighting looks great as it is – no real need to edit it further.

The audio piece I chose was simply a remix of the traditional “Pirates of the Caribbean” theme by Hans Zimmer, in a less serious, light-hearted tone by Raz Alon. Add some generic punch sound affects to enhance the action and we’re just about set to export!


Although the experience was full of obstacles, overcoming them and gaining texturing, mapping, modelling and editing experience was fulfilling. Whilst reaffirming the fundamentals of a production pipeline I gained more insight into the 3D animation industry itself, alongside the processes and programs used to create everything from feature length films to advertisements. As this project is closing, I am eager for the freedom in my next assignment, if a bit apprehensive. I hope this experience helps to reduce my error count in future endeavor.

Pirate’s Gold: Lighting

In order to create some fill lighting for the scene I implemented an omni light, which created a smooth fallout in all directions. In the Advanced Effects tab, there is an option for “Ambient Only,” which, in essence, makes the light have no specific directionality. By default, this lighting applies to all models in the scene. If rendered using this setting only, the scene will have flat lighting such as the screenshot below (ignoring the highlights already implemented onto the texture).


The textures are presented flat and at face value. In order to have some soft, albeit defining shadows for this scene I added the mental ray ambient/reflective occlusion shader based on the recommendations of the video tutorial. The shader deposits small contact shadows in darker areas where light is blocked within the environment, or where models interact with the plane.

Although I need to maintain quality for this assignment, it will likely take longer since I’m rendering it on a laptop. Therefore, although the recommended sample size is 64, I went with a lower value at 50. In regards to the maximum distance for the ambient occlusion parameters, I went with a value of 20, also recommended by the video tutorial.


With the option to change the colour of the shadows, I went with a lowly saturated red colour, mainly to highlight the warmth of the scene. Even if the difference between the black and red shadows is minimal at this stage, I still think it’s an important aspect to have the lighting match the palette of the scene itself.


Rendered scene with black shadows versus that with a darkly saturate red.

To ensure the shadows were pointing outwards from the center, I adjusted the co-ordinates to start at 0X0Y0Z, after which I adjusted it to fit more towards the middle of the scene, as the board itself is slightly off-centre. And that’s the lighting finished!

Pirate’s Gold: Texturing

Although I do have a little more experience with digital art programs, they’re mainly limited to drawing human characters rather than texturing materials and surfaces. So, even with a degree of prior practice, I can’t say with confidence that this texture is going to be anything more than a little average!

In terms of the program itself, I typically use Paint Tool Sai – and although very similar in terms of function, has a very different layout to Photoshop. In most iterations of the chest I’ve seen thus far, artists have made use of gradients to further accentuate lighting and shadows. Immediately I ran into a problem: Sai doesn’t exactly have a gradient tool. I basically had to choose between badly blurred gradients, staying in my comfort zone or learning the ropes of a new program and achieving a better result…and I picked the harder option.
Although it was difficult to adjust (mainly confusing shortcuts and tools) the gradient tool was a godsend! The highlights on the metal looked clean and would have likely turned out a bit dodgy had I gone with the second option.


When covering the seams for the wooden panels, it was advised to add a “border line” to both deepen the shadows and mimic real-life wooden texture. In this case, I modified the default brush to be more textured.


The straight mesh lines were quite easy to do – using either the stroke tool or by simply using the Shift + Click straight line method. In terms of the wooden strokes, which are most effectively done so with a tablet and pen pressure, I ended up having to switch back over to Sai. This was due to the fact that, even though I installed the latest driver, the laptop I was using (with Photoshop installed) wasn’t registering my tablet in the slightest. Rather than trying to troubleshoot the problem (at this point time started becoming a constraint I needed to consider) which might have eaten up my time, I chose to just go back to the laptop where my tablet was working and add all the details there, since most of my gradients were applied anyways.

Sai’s default file format is .sai, it does have the option to open .psd files, although at the cost of several of Photoshop’s functions – mainly certain tools and layer types. There is a possibility that the absence of functions will change the appearance of the file itself, so I made an additional copy in the case that it does happen.


Now with the addition of pen pressure, I was able to add some of the recommended details, namely cracks in the wood, varying light textures (to create the illusion of a textured surface), highlights on the wood and nails along some of the chest edges. I finished the texture with a keyhole on the lock.

Here’s the finished product:


chest final texture.png

Pirate’s Gold: UV Mapping

Before applying any texture to the chest, the mesh needed to be flattened into a series of two dimensional shapes, taking care to not have any polygons out of portion (otherwise the texture will become either blurry or stretched), using the planar projection technique.

When unwrapping breaks were inserted to avoid having the texture stretched, such in the example below, wherein the green highlight indicates where the mesh has been broken. This is done because the highlighted polygons, whilst flattened on the axis, would have been squashed and distorted if the mesh had not been broken.


After breaking the edges in the corners, I was able to relax the mesh and flatten it out into an accurate representation of the chest faces.


Before (with “squished” faces) and after.

The unwrapped meshes will then correspond to the faces selected on the model. Success!


In cases where the texture will be the same on both sides, both corresponding meshes are flattened on top of each other. This is useful for when I need to avoid creating the same texture twice, when it will just be the same. When the two meshes occupy the same space on a UV map, they will also occupy the same texture. Although a bit tedious, the vertices of the second mesh were attached to the first one in order to ensure they both correlate exactly. In the example below, although only “one” mesh has been selected (though, in reality there’s two directly on top of each other), both areas are shown to be selected on the chest.


Unfortunately at some point into unwrapping the chest I realised that I had distorted an area on the lid’s rim. I didn’t feel particularly like going back to one of my earlier saves and repeating the unwrapping process all over again (that’s theoretically almost two hours wasted) so I simply collapsed the modifier list and reverted to the editable polygon mode.

It’s unlikely that this model going to be absolutely perfect now that I’ve encountered this error, but there’s nothing much I can do. Time to keep progressing!

Aside from a few hiccups in the beginning, the growth of the UV mapping progress became quite easy after practice – it makes up for in simplicity what it consumes in time. The overlapping process done prior also allowed the space to be used more efficiently within the UV space.

Chest UVs

Exported UV space, rendered into a 2048 x 2048 PNG file.

The UV space, now converted into two-dimensional image plane, will be used as a layout for the texture files – discussed in the next section of the production pipeline.


Pirate’s Gold: Modelling! …and lots of problems.

When I mentioned I was new to 3DS Max, I wasn’t exaggerating. It took me a solid week of editing, going back to the drawing board, restarting and contacting my lecturer for advice before I managed to construct a chest I was content with.

My first attempts during the early stages of the assignment were mainly to get a feel for the program and were below satisfactory and didn’t progress further than just preliminary shapes and details. Although it may seem like wasted time at base level, it was extremely useful for familiarizing myself with the program, particularly short-cuts, etc. which will make future construction much easier.

During one of my later attempts at modelling, although the main construction of the chest went smoothly, I ran into trouble assembling the chest lid. Under advice from a lecturer, I chose not to wrap an edge connection around the entirety of the chest, and so, when it came to extruding the underneath of the chest to form the interior, I was unable to use the connections to extrude upwards.


No guidelines for the extrusion.

When I tried to remedy this by insetting the pre-existing lines, the chamfer I had done previously to create the lock managed to distort the inset into a different shape than required for the interior.


In addition to pre-existing problems, at some point I had managed to change the former connections on the top portion of the lid. Although I’m not entirely sure how it happened, I assume it was because I selected some edges in the area whilst attempting to revise my previous mistakes regarding the chest interior. It was at this point I decided that constructing a separate lid would be an easier option than trying to fiddle with settings (when I most likely would not have achieved a desired result in any case), and to obviously follow the tutorial more closely.


Whilst going through the stages of constructing a new lid, I ran into another problem! This time it was something I had relative ease with during the first attempt: scaling the chest inwards along the X axis, as shown in the tutorial videos. The problem wasn’t that it was distorting the model or anything along those lines, but rather that I couldn’t do it in the first place.


Attempting to drag the X axis inwards using the scale tool and failing miserably.

After contacting a lecturer, we concluded that the problem was I had neglected to use the selection centre tool. I switched to scaling the vertices instead and achieved a similar result as the one in the video, without having to use the aforementioned tool.5

The selection centre option (credit to Steve).


Finally achieving the desired scale.

After the first few debacles, the remaining experience was devoid of any complications and I managed to construct a relatively average looking treasure chest!


Pirate’s Gold: Pre-Production

The style, themes, and projected vision of the project is decided during the pre-production stage. As discussed in the brief provided, the client is looking for a short advertisement to market their upcoming board game, “Pirate’s Gold.”

The storyboard, almost like a “blueprint” of the finished product, helps to set the basic parameters for the employees and others working on the project. In this case, the one provided is as follows.


Although the major details have been provided, aspects such as certain camera angles and timing can be tweaked.

For this advertisement I think it would be ideal to add some visual interest by having some sweeping camera angles, or perhaps a consecutive one that circles around the treasure chest, which is the focal point, as recommended by the brief. It is important to consider that, because of the short time frame, (ideally 15 – 30 seconds long), to not have the camera angles change too drastically, as it may disorientate viewers or simply distract from the advertisement itself. I additionally want to avoid sharp angle cuts and have the advertisement play out without needing one at all.

Whilst the majority of assets and textures have been provided, the focal piece, the treasure chest, is to be constructed as part of the assessment. Although there is always the option of combining the tutorial and some artistic license to create a unique piece, since I’m not well-versed in 3DS Max, or just generally with 3D modelling, I’ll be following the tutorial closely. With the texturing, I will have more free reign, due to being a bit more experienced with art programs. It is likely that I will preserve the original style but add a little twist if I decide to at that point. The style is as follows:


The main challenge will be adding enough detail so that it creates visual interest but avoiding too much realism – it’s a cartoon, after all.

In the end, the proposed client requires an mp4 file with H.262 compression (a video of the finished animation), but in this case, since it is still an assignment, we are required to submit the video alongside working files and documentation of progress (which is when these blog posts come in!).

Images retrieved from