top of page

Internal Tools

Landscape Toolset

This is a toolset to make landscape creation for our artists easier. It consists of two parts:

Firstly, a landscape master material, which can realistically distribute and blend different types of landscape materials (rock, grass, dirt,…) based on world height, inclination, weight paints, and more. Features include real-time virtual texture projection, different methods of displacement, and automatic foliage distribution.

Landscape master material applied to a simple landscape

Landscape master material graph (with various sub functions)

Secondly, a procedural content generation system, which can distribute grass, rocks, trees, and other natural features, according to the underlying material, collision with geometry, pre-defined zones, and manual weight paints:

The same PCG system used to populate two different types of landscapes 

Two PCG graphs of different complexity:

one is for performant large scale background generation, the other for more detailed control of smaller foreground generation

These two assets together allow artists to quickly build a production-ready landscape, closely tailored to their project. All they'd have to do is drop the geometry and materials they need for their specific environment into the parameters and adjust settings to taste. In an effort to make usage even easier, I also wrote a comprehensive documentation, so that artists had no need to dive into the underlying graphs at all and knew where to find everything.

As a final test, I built a complete scene using this toolset:

Fake Interior Materials

A persistent concern in the creation of urban environments are windows. To leave them blank is boring, but to create fully furbished rooms behind each and every window takes a lot of effort and drags performance down considerably.

 

I suggested a compromise from modern videogames: fake interior windows. A cubemap with some simple parrallax parameters can give a convincing illusion that there are real rooms behind every window, without requiring a lot of work or rendering resources. It's just a material applied to a plane.

The basic setup for the illusion is rather simple, but I made it highly customisable:

  • every cubemap in the right format can be used, including real pictures

  • parameters allow for windows to spawn with different cubemaps, randomly rotated rooms, color variations, curtains, and with or without lights on, which all together makes every window look somewhat unique and prevents obvious repetitions

  • variations can be controlled by either mesh instances or world position

  • artists can create their own cubemaps in a seperate Unreal dummy level, where anything they build is captured by a camera and saved into a cubemap

This material has its limits of course: cubemaps can only fake the dimensions of four walls, a floor, and a ceiling, which means that furniture and such can only be projected flatly onto one of its sides, so the illusion is limited. There is an option to add additional objects with different parrallax settings that fake objects standing in the middle of the room, but for the purposes of turntable configurators and driving films, this material was deemed more than sufficient.

Material Functions

RVTs

 

RVT stands for Realtime Virtual Textures. It's a native Unreal feature that allows actors to bake material information into a  texture that can be referenced in other actors. The most common application for this is to blend meshes organically into their surroundings, for example to submerge rocks in sand or snow, or to hide harsh transitions where meshes intersect.

My dedicated material function can be plugged into every material graph to achieve this effect:

Before

After

Cover/Crevice Blending

This function allows any mesh to be covered in moss, snow, or whatever else fits the environment, while following the natural shape of the object. It can make use of RVTs for this, to always take the underlying landscape material for example, but any type of texture can be used. Settings include a switch between blending from top or bottom, various adjustments to control intensity and masking behaviour, and the usual set of tiling and tinting adjustments.

Here is an example of a sandstone cliff repurposed for use in a greener environment:

Before

After

UV Randomisation

 

Sometimes repeating elements will share a UV space. This causes obvious repetition with certain textures. One possible solution would be to change the UVs, but this is not always feasible. My solution is a material function that gives each mesh the material is applied to an offset, either through world position or mesh instance. This helps break up repetition beyond recognition:

bottom of page