Saturday, 11 October 2014

Sunday, 14 September 2014

Creative Assembly Graduate Art Contest Submission - Jama Masjid


Above is my submission for the competition/contest from Creative Assembly to earn a paid internship. I decided to write up a fairly brief summary of how I went about creating it just for blogging and explanation purposes.

My friend who currently works at CA posted up the offer on Facebook, which is to believably recreate a historical building or siege engine as it was in its original setting (or character, but I want to be an environment artist). This immediately took my interest, so for the first week I went about looking for buildings to recreate (I decided on a building rather than a siege engine straightaway as I personally feels it allows for more variety and a larger scope with which to push myself). I wanted to do a Middle Eastern building from the get go as I was recently reminiscing over the Prince of Persia franchise and how nice the Persian Architecture was. I initially settled on the below structure - Qutb Minar - as it presented what looks like an ideal opportunity for sculpting practice on tiling textures, but the overall structure didn't seem interesting enough; it's mostly just a tower.

So after a week of humming and hawing, looking at other famous Indian structures I settled on the below building, Jama Masjid, the most well known mosque in India. While it is still completely intact from when it was constructed in 1656, the material definition was quite varied and would've been very different to what it is now. Almost all of the cream shades on the building are constructed from marble, which has obviously worn and weathered from being 360 years old, as has the golden spires. This means I was going to construct the building literally all shiny and new.

When I started modelling it I broke it down into modular assets, which would hugely save on time and texture budgets. I didn't set myself much of a budget for tri's or texture as this is meant to sell my skills and historical accuracy, but I did try to make it as game-ready as possible anyway. I'm not actually sure that the marble they used would have been polished to reflective levels, but seeing as it is a holy building and so immensely huge, I imagine they would have tried to make it look as fancy as possible.

Two shots of my white box in CryEngine3. At this stage I just wanted to ensure the general scale was correct, as I needed to make sure my modulars would fit correctly and everything. I also made sure to ensure the lighting was correct - mosques always point towards Mecca so I ensured the lighting matched that.

I gathered lots of reference from as many angles as I could so that I made sure it was accurate as possible and correctly to scale. Wikipedia was useful as it stated how high things like the minarets were so I could use this to work to. I also found some blueprints to the building which were very useful as almost all the photos of the building are from head on or slightly to the side which meant I had to get creative for things like the back corners and roof.

Some more shots of my modular progress, using a variety of 3DS max tools to ensure it would all line up correctly when I placed it in engine.

Next I started to create some base textures. Both of the above I've altered since these shots. I created some base tiling textures myself, and then plugged these into Quixel alongside my high poly bakes for AOs and Normals to create bases for my textures, which I then built up light layers of dirt using DDO and added extra normal details on top using NDO and Crazybump.

Material definition was key to making this project look as authentic as possible, so making sure the marble was reflective, but not too much, and the sandstone rough was essential. I used Quixel's default PBR settings to create the bases for my Albedo, Gloss, Specular, AO and Normal maps and then added in the extra necessary detail on top.

In progress textures.

I decided to switch engine to UE4 as I'd seen how great it was as lighting things when used effectively and I hadn't really put much into CryEngine at this point. It didn't take too long to get to grips with it thankfully as I have knowledge of UDK 3 and UE4 also makes things like importing textures and meshes and creating lightmaps far easier than before. One issue I came across is that using the PBR setting for my maps in Quixel wasn't ideal; as I should have used the UE4 setting to let me create Roughness and Metallness maps instead of Specular and Gloss. I worked around this with the fairly crude node layout on all my materials (and some with slightly different tweaks) which gave off the desired result I was after anyway. I also had to run the AO map through a multiplier with the Albedo into the Base Colour slot as just plugging it into the AO slot on the material didn't seem to be doing anything.

I also made sure that the values for all my materials different maps were the same on each texture sheet to avoid inconsistencies.

Throughout the project the building was always my main focus (as this was the main task after all), but I wanted to present it properly so in the last few days I fleshed out the area around it. Luckily the building is obviously very modular so I was able to make most of the surrounding assets like the walls and tower using existing textures and altered assets. I was trying to create a game-ready building but the assets around it are less efficient and messy in areas so these aren't as optimal as I would have liked.

Finally, I created some quick curtains to decorate the entrances using the nVidia Apex plug-in for 3DS Max for use with UE4 and added a little wind to the scene, and created some water after following a tutorial. All the assets and textures are completely my own work, excluding the water texture supplied with UE4. The skybox is also default and I used tweaked UE4 material shaders on my own marble textures to get the desired reflective result. I used photos from the following links, again altering them and creating tiled versions myself:

Programs Used:
3DS Max 2013
Zbrush 4R6
Photoshop CS5
Unreal Engine 4
Quixel Suite

Overall I'm pleased with what I accomplished considering the short time span. I got the actual building finished which was what was required so all I can do now is hope for the best. Even if I don't win I have something new to add to my portfolio, and I'll probably continue working on it now, replacing the assets I put in in the last few days with actual unique geometry and texture sheets, along side adding things like the whole courtyard, carpets, natural lighting, the gateway entrances - basically making it as true to its 1656 rendition as possible.

Monday, 8 September 2014

PBR Skateboard

Something I never put up on here, PBR skateboard I created a while ago using Quixel Suite. It was mainly to test out Quixel and to give PBR a go (even though its not technically true PBR). I found Quixel to be fairly awkward to use due to it still being in beta, but what it can accomplish when it's working right is awesome. You get more out of it depending on how much you put into it, so I made sure that my Mesh, AO, Normals, Object Space Normals and Colour IDs were all perfect before plugging them in and tweaking the materials and build-up processes made possible by Quixel.
I did find it very awkward to alter things in Photoshop manually once Quixel was open, especially if you wanted to add your own masks and layers like the grind marks on the bottom of the board - Quixel simultaneously edits all the maps accordingly which is fantastic, but if you need to do something manual like the grind marks it tends to cause a lot of issues (for me anyway). I did find it easy to set up my own materials to though, such as the gloss paint on the underside and the actual maple wood of the board (as Quixel's provided wood was far too worn and aged).

Monday, 5 May 2014


Overall, I am extremely happy with how my FMP turned out. As with all projects, when the time to hand in comes around, there are always things I wish I did differently or things that didn’t go as planned; there always will be. But at the same time, there are things that went better than expected too. Considering my only prior experience with CryEngine was some very light work on the ‘Off the Map’ Project, I feel that I have learnt an extreme amount about CryEngine, creating my level tidily and efficiently and also learning a lot about how to use the engine, 3DS Max and things like scripting and flowgraphs in conjunction with another to best optimize and enhance my level.

For my concepting I wish I had done a little more rather than spending most of my time on the whitebox, as I don’t feel I fully captured the style I wanted my level to emit. As a result of this I feel certain areas of my level don’t fully blend well with the corresponding areas and doesn’t feel as naturally constructed as I would have wanted. One such thing is the Chinese architecture; I concepted more with Hong Kong streets in mind, and the only hints of traditional Chinese architecture are the roofs and bridges. The resulting image is that of modern buildings with tacked on looking elements.
The main concern myself and others had with my FMP was the scope of it – it was simply too much to do within four months. While I did bring down the scope after my initial pitch, I still kept the city at a believable size. One of the main ideas and points behind my FMP was efficiency – the construction of a large environment, using a lot of prior planning and modular assets, interchangeable texture sheets and using CryEngine’s shaders to their full extent. I also intended to have scenes with a lot of detail, but keeping the framerate down by using LoDs and as few texture sheets as possible. By doing this I was able to create large areas around the playable space that didn’t take that long to construct, quickly making the scene seem larger than it was. Creating a whitebox straightaway immediately helped me lay out the general path of my level, adjust the areas to fit the lighting and level flow accordingly and have a base to build upon. Creating an asset sheet and plan at the same time helped me to also put into perspective how much I had to do, and how long to allocate myself for each asset. Using Excel I was able to construct an easy to see and follow plan which helped me stay on track. I was also able to create square grids that I divided up into sections, allowing me to plan out how to spend texture space on sheets that would have many U or V tiling coordinates.

While time management was mostly good throughout, I did make a few stupid decisions or spent too long on certain assets, hindering me greatly in the long run. For instance, creating my air conditioners first thing simply because I really wanted to was a really bad idea. They turned out fine, but I simply spent far too long on them, and justifying them as ‘an important’ asset was a poor excuse for the time I spent on them in correlation to what I should have been doing. The rooftops also spent a lot longer than I had intended as I didn’t fully understand how to create them as proper modulars (creating precise pivot points and sticking to set sizes) and how to quickly place them in CryEngine (there would always be small holes at meeting geometry). Once they were sorted they didn’t cause any more problems, but as with the air conditioners, I spent too long on them in regards to the payoff (I didn’t even use them all that much in the level as they were too restrictive for easy placement). As a result of this management, I never got my boats done at all. I decided around the end of April that I should just not do them and instead focus on polishing up what I did have. My time management for my asset production in March and April went much smoother, and I was able to create assets quickly and efficiently, whilst keeping the production value just as high. I wasn’t too sure about how many tri’s CryEngine could handle at first, but throughout the project framerate was nowhere near an issue, and idles comfortably around 45-60fps. Knowing this I pushed in a few more tris than I typically would have on assets, especially those where I had to be conservative with the normal maps. This is also where I am very glad I created LoDs for the vast majority of objects with more than 300 tri’s – not only because its good practice despite being something people generally dislike doing, but also because it definitely helped keep the framerate high, and thanks to CryEngine auto detecting when to use LoDs, you can barely even notice them loading in the actual model.

In regards to my modelling, I think the only thing to say relative to my other projects is that I’ve got quicker at it, while maintaining the same quality. Modelling is definitely my strongest ability, so for the duration of this project there was nothing I found too difficult or hard to create, and I always had LoDs and texture usage in mind. The tram was the hardest asset to model as it required an interior, so creating geometry that was extremely precise and didn’t intersect all the time was very challenging. Modular asset creation was relatively new to me and so my first modular assets, the roof top pieces, were very awkward to create and tile properly. Luckily I learned from this eventually and the rest of my modular pieces went much more smoothly. I tried to pack everything as tightly as possible, but also saving texture space with similar faces where necessary. Some objects however, like the windows, benefited from having separate similar UV space as it allowed for more variety in the texture sheet.

Texturing is something I feel I have greatly improved, but still lack definition in certain areas, notably the speculars. While a lot of my level didn’t offer very many interesting speculars (not much was metal) I still feel some areas came out rather flat and undefined. I did a lot of high poly baking for my normal maps, and for things that tiled I tended to use CrazyBump. I am pleased that I managed to source a lot of texture reference myself, and going to Chinatown helped immensely at understanding the culture. Even in those few streets in London the culture was hugely different to everywhere else in London and I was able to grab some scenes and textures that I used later in my project. I tried to make my textures as authentic as possible, using my reference where possible and double-checking all the Chinese language and themes that I used.
CryEngine itself was the perfect engine for this project as it offered so many good shaders and tools for my level. The only downsides to it are that I found the gizmo and general interface far more awkward to navigate and use compared to UDK or 3DS Max, and that while the shaders it offers are fantastic, it offers very little in the way of customization and personal optimization. One such issue was when I was trying to create a desaturated texture that used CryEngine’s colour tool for the hue. This would’ve allowed me to have created tonnes of 1kb material files of many different colours. The problem was that when used in conjunction with vertex painting, the blended layer also adopted the colour change, which didn’t look authentic at all. The only solution I could find was to save out five separate colour textures instead, which is exactly what I was trying to avoid.

I also had consistent issues with the shadows and it creating nasty banding when objects were parallel to the sun. I managed to mostly sort this by fiddling with the Time of Day parameters, but the problem still persists, albeit not as bad as it was. Finally, animation in CryEngine proved to be extremely cumbersome. More to the point, you can’t really animate the same you can in UDK, so you have to do it all in 3DS Max and just hope that it exports correctly. I exported a lot of objects with animations and almost all of them I ended up exporting in a different way to the last one. So while I’m pleased that I managed to get a lot of animations in, I don’t think that I fully grasped the production cycle. The tram was by far the most ambitious of my assets, and the result is about 75% of what I wanted. It looks how I wanted, but only works to a degree. You can get in it and ride it to the top and back, but you basically have to run whilst in it to not fall out of the proxy. I also animated it near perfectly in 3DS Max, stretching the cables and twisting the turntables so that it always stayed within the track, but upon exporting discovered that (as far as I know) exporting vertex animation on non-character assets doesn’t work, so the wires clip through the track or not at all in some locations. Overall the tram works nicely, but definitely not as well as it could have.

Organization was one thing I feel went great throughout the whole project. Apart from some iffy naming and placement choices in CryEngine’s SDK, all my assets and files are named and structured correctly, and I never had any issues with losing or trying to find my files. I tried to name everything (including Photoshop layers) as though it was a group project and other people would need to use my layers.

In conclusion, I am extremely pleased with everything I have learnt from my FMP and very pleased with the general outcome. If I had used my time more wisely and stuck more strictly to deadlines I believe I would have been able to get everything finished – mainly the dock area – and generally add a lot more detail to the surrounding area. While I’m pleased that I managed to maintain a large scale, I feel it did hinder me in the long when it came to polishing up what I had, as there was simply too much to refine. I do feel I was successful at recreating the happy, colourful concepts I produced, and avoided creating a grimy claustrophobic city, if at the expense of some of the Chinese culture I wanted to capture too.