DAER logo animation

Runtime procedural generation

Objective: explore the possibilities of a real-time procedural 3D in a game engine through a lightweight sandbox system.

There is software to build procedural 3D content in a modular way. In addition, the 3D content is often generated in advance and can be used in a real-time environment such as a game engine in the form of pre-made or pre-baked assets. In this way of working, it is not possible to adjust the procedural structure or manipulation of parametrically constructed elements during the execution of the real-time application. This means that a procedurally constructed 3D model or environment cannot dynamically adapt to real-time user input, for example based on gameplay in the context of a game or the scanned environment in the context of an augmented reality application.
Of course there are already implementations that still enable run-time proceduralism, but these are specifically developed use cases that have been developed with a fixed goal in mind. Within that, the sandbox and dynamic aspect that you have with procedural software is lost.

In this use case, the possibilities and limitations of run-time mesh manipulation and instancing in Unity were first investigated. Existing plug-ins or tools were also looked at. To determine the commonly used procedural functionalities, Houdini was taken as an example. Then we looked at the complexity and feasibility of implementing a functionality. A selection was used to develop a lightweight system in which the functionalities are linked in a modular way. Some small proof of concepts were developed using the built procedural system in Unity.

This article belongs to the following project:

Procedural 3D

Creating a 3D model using a procedural workflow starts with a simple shape just like classic 3D. Manipulations are then...