Flintlock Marmoset Render B

Old Rocket Engine ― PBR asset I made for my latest project (Marmoset Toolbag).

Flintlock Marmoset Render B

Old Rocket Engine ― Middle image depicts base texture prior to receiving extra detail in Substance Painter (ZBrush).

Flintlock Marmoset Turntable Video

Old Rocket Engine ― Turntable video showcasing final rocket engine asset (Marmoset Toolbag).

Flintlock Marmoset Render B

Procedural Temple Floor Texture Set ― Designed to modulate between 'light damage' & 'heavy damage' versions using height maps.

Flintlock Marmoset Render B

Procedural Temple Floor Texture Set ― Demonstration of end result. No repeat patterns or seams exist due to height modulation contributing to texture blending.

Flintlock Marmoset Render B

Stylised anisotropic highlight shader (UE4).

Flintlock Marmoset Render B

Queens Horror Project ― Screenshot of environment created for second year group project. I implemented all assets in UDK (incl: materials, decals, etc) & created 33% of 3D models.

Flintlock Marmoset Render B

Indian Tata Lorry I was inspired to model during my Internship at Ubisoft Pune.

Flintlock Marmoset Render B

Vector Displacement Material ― UE4 wave material capable of deforming a plane into any shape using vector displacement maps. Animated maps will produce animated geometry.

Flintlock Marmoset Turntable Video

Vector Displacement Material ― Video examining how vector displacement maps offset verticies in world-space.

↓ View Description

Personal / University Work
Context: Assortment of projects demonstrating a variety of skills and artistic approaches.
This section contains an assortment of noteworthy projects that are too small to be included in their own seperate sections.


Old Rocket Engine

This is one my latest projects. I intend to create a particle animation in Unreal Engine 4 of the rocket engine firing-up and ejecting exhaust fumes/flames.

I began by creating an intermediary mesh in 3DS Max, which was then converted into high and low poly meshes. Geometric detail was added to the high poly mesh in ZBrush. It also received a lick of polypaint at this point. The bulk of the texturing was then done in Substance Painter, followed by refinement carried-out in Photoshop. The low-poly mesh was unwrapped in headus UVLayout and baking was done in xNormal.


Procedural Temple Floor Texture Set

I made this texture set to experiment with DX11 realtime tesselation and height-based texture interpolation. I wanted to create a crumbling stone floor with sand slowly swalling-up the stone slabs.

I made a base mesh in 3DS Max, consisting of stone slabs repeated in a pattern. From this base mesh, I made two high poly meshes: a stone floor with light damage, and anouther with heavy damage. Damage was inflicted upon the stone slabs in both 3DS Max and ZBrush ― the former, for breaking some of the slabs into fragments, and the latter, for more subtle damage.

The texture bake in xNormal produced high quality height maps, used for DX11 tessellation and displacement, and to modulate between maps based upon height.


Queens Horror Project

This is the product of a group project for which I was project manager and technical artist in my second year of university. We were tasked with recreating a university building interior with a horror theme of our choosing applied. I worked on all materials for this projects in addition to making 33% of the total 3D assets.

This was my first exposure to a game engine. I had many responsibilities, including:

  • Coordinating a team of six’s efforts by overseeing asset production and establishing deadlines/project milestones
  • Implimentation of all assets in UDK (including, materials, positioning and composing of all assets in scene)
  • Facilitating bi-weekly meetings, and bringing into effect contingeny measures where nessesisary
  • Conveying technical concepts to the team, and demonstrating various techniques, workflows and computer graphics concepts (such as per-pixel shading and the bidirectional reflectance distribution function)
  • Acting as a quality control arbiter, requesting work to be refined where necessary
  • Technical troubleshooting and bug fixing
  • Establishing workflows and conventions for the team to follow, and speficying optimisation measures
  • Creating all level blockouts/orange boxes for quick level design prototyping, and creating the final level layout
  • Creating 33% of the game assets in the final product environment


Vector Displacement Material

This is an on-going project for a material I plan to release onto the UE4 Marketplace. The final product will be extremely realistic with foamy, rolling waves on the shore and larger waves in the deeper depths of the ocean.

So far I have developed a system capable of displacing a plane (or any 3D geometry really) according to the information in a vector displacement map (projected in world-space). The material can rotate the vector displacement map around an abitrary axis, meaning waves can propagate in any direction. In the final product, this will allow vertex colours and/or a flow map to control the wave propagation direction.

To create the crashing effect, the material pans down the vector displacement map row-by-row, interpreting it in a similar way to a flipbook texture.

In its current form, the material also has a parent-child UV system whereby the tiling of a parent UV set (world-space derived) can be specified. A series of child UV sets are then generated within the parent UV set with pseudorandom offsets and scales. This allows multiple vector displacement maps to be layered, creating a more natural effect. By scaling the parent UV set, all scale dependent variables (such as the child UV sets’ size) will be altered accordingly.