Week 10, 11, & 12 – Level Production & More Assets

The past 3 weeks have been a bit slower in terms of production due to personal reasons and organising stuff for my soon move to work at Sumo Digital.

I’ve mostly focused on level production & creating more assets over this period of time, and for the next few weeks will close off the level, develop a polish listing, and then work through that to make adjustments as required – namely art-based.

I also spent one week of this time writing my dissertation to free up time & stress to further polish the project.

Level Production

The level production is an iterative process which will is being constantly refined by adding smaller areas and props to fill out the space.

From here I will be closing off the level & refining the art for the existing sections and adding details such as environment narrative elements & infrastructure (i.e. the lampposts, drains etc).

Level Design.PNG

To help block the player off from accessing areas outside the level I developed a quick spline based tool which adds buoys at each spline vertex (with buoyancy and a random rotation to remove repetitiveness), and generates a collider along the spline to create the bounding box.

Bounds.PNG

Buoyancy & Dynamic Flow Mapping

I’ve also added buoyancy to elements in the water along with dynamic flow mapping to allow the water to flow around objects. My approach to the buoyancy does not match with the water’s simulation as this is both too expensive without using multiple render targets so an approximation works fine. The approximation generates sin waves based on world position so everything bobs at different rates. This is controlled through an ocean controller (an actor which drives the values) so everything is consistent.

I had to do this via scripting to affect collision as using world position offset or displacement in the vertex or geometry shaders respectively is done at GPU time so it would not affect collision.

Buoyancy.gif

Dynamic Elements

I’ve also worked on making the scene more dynamic with rolling fog, particles, and props such as fans. This is also backed up by other small elements such as wind rolling through the canopies.

Dynamic Scene.gif

I also updated the screen space fog shader to utilise rolling fog generated using 3D noise – this gives a more volumetric feel to the fog instead of it being very static.

Art Production

This slideshow requires JavaScript.

These are the assets I’ve worked on – they are made using the same prop workflow as I’ve been using over the course of the project. I’ve also been experimenting with further optimising my use of texture space – for example the back of the mirror is the same as the front which is re-welded back into place. This idea has been essential for the level of detail on areas such as the cabinet which covers a large surface area.

Material Extension

I’ve also been experimenting with secondary reflections & anisotropic contribution in Toolbag 3 and seeing how I can bring any of that over to UE4. In the process of this I looked into this article aimed at graphics programmers about rendering in Far Cry 4 – https://www.gdcvault.com/play/1022235/Rendering-the-World-of-Far.

While distorting the reflection itself is not something I can do in the base surface shader (I would need to write and inject my own BRDF in a custom engine build), I managed to engineer the anisotropic specular highlight itself as a shader function.

Anisotropy GIF.gif

Anisotropy

While this is only a subtle effect and does not affect the actual specularity (though is still driven by roughness), it does open up more material options and allows me to add extra complexity to existing materials.

Where Now?

From here I will be developing a polish list and working through that – adjustments that need to be made currently are ones such as adjusting albedo values to be more physically accurate. Also I will be finishing up a desk prop to replace the prototype desk (first prop made in the project) as the style now falls too far beyond the rest to be consistent.

I will also be further developing the shaders – such as the water shader to potentially add procedural waves purely in the shader. But apart from that it’s just polish from here on out to the art & finishing up the level.

Leave a comment