• Register
Post feature Report RSS Cheftastic!: Buffet Blast - Material Development

An insight into the development workflow for materials, including game optimisation for performance and file size

Posted by on

Materials Development

Article by - David Phoenix

Optimised Workflow


From the beginning of development, the goal was set out to create aesthetic and engaging materials whilst also maintaining good performance and as low of a memory/storage usage as possible. This meant opting for an art workflow that prioritises trim sheets and tiling materials over individually textured assets: by creating versatile materials, we can reuse them over many unique assets in a scene, therefore lowering the number of individual texture files and subsequently the total VRAM usage and overall game size.

VeggieFields material collection


Trim Sheets


One of the first materials created was the wood trim sheet to texture the majority of the VeggieFields assets as well as various props and structures across the other maps where appropriate. This material was created in the Substance Designer package and features a good variety of wood plank materials, painted and raw, as well as varying sections for accessorising the applied assets.


designer graph

MaterialPreviewbarn

watchtower


creating materials from geometry


Another trim sheet was also created specifically for assets in the ‘logger’ region of Veggie fields and variations are also used later in other maps. A benefit of using these variations is that we can add new diffuse texture maps only and reuse the same normal and ORM maps.

For this trim sheet, we used Blender to create the base geometry which was then baked onto a plane and textured in Substance Painter: so it isn’t absolutely necessary to know how to use Substance Designer, for example, if you want to create compelling materials for your projects.

blender trim

MaterialPreviewindustrial

warehouse


UE4 Shaders

Equally as important as the textures themselves is how they are displayed in UE4. We had a great task of creating a familiar, yet unique, stylised feel to our materials which we achieved by adding certain elements to the shader graph.

ue4 shader

Fresnel – White colour overlayed on extreme angles, creates the ‘halo’ effect around the edge of spherical shapes.

Procedural ‘baked’ lighting – Green top-down, and purple bottom-up faked lighting gives a more vibrant/abstract appearance to the surface. Also serves as an homage to the classic ‘baked’ lighting look like retro games where the lighting was included in the textures instead of from dynamic lights.

Procedural position gradient – A brown (or any colour) position gradient overlayed over the base colour. Starts from the bottom of the prop and fades up vertically.

Shader construction gif

Having these options built into the shader instead of in the textures themselves, meant we could share the settings over all materials and change them all at once if we decided we wanted to make a change to the stylisation. In addition to this, the procedural elements of the shader adapt to the position and rotation of meshes in the world, meaning, for example, the faked top and bottom lighting will always be at the top and bottom no matter how you rotate it.


PB keepintouch


Thanks for taking the time to read this article, hopefully, it was as informative as it was insightful into our development process. If you have any questions or suggestions feel free to leave a comment and we’ll be sure to get back to you :)

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: