Fly-By-Wire: Procedural Content Generation Tools


Article by Yuri Ilyin
Procedural tools are transforming the world of 3D graphics. If you haven't started learning them yet, here's why now is the perfect time to step up and master them.
Why Procedural Generation Changes Everything
3D suites used for creating content in the entertainment industry serve roughly the same purpose, and to an outsider, it might seem like they would follow a similar workflow. However, this assumption is far from accurate.
While some suites may be similar in some aspects, such as traditional modelling using vertices, edges and polygons, but otherwise they are totally different. There is a popular saying that once you grasp one programming language, you've essentially learned them all. With 3D suites, however, things are quite different.
Procedural generation of content, whether it's textures (materials) or geometry, is present in most of the modern suites, in this form or another.
For some, it is the core functionality from day one. Examples include SideFX Houdini, a top-notch professional Swiss knife for 3D animation that is totally procedural. It has a very peculiar learning curve, and requires a lot of effort with uncertain outcomes:
Reference: Houdini Learning Path Meme
The venerable 3ds Max suite is also essentially procedural, although in a different way: the geometric content is created via the stacks of modifiers, rather than direct operations on the mesh (although the latter are also possible).
Blender, the jack-of-all-trades, seems to be striving to encompass every imaginable approach to 3D modelling (and much more), and the node functionality had been there for years, although primarily it was about texture-making and post-processing.
But relatively recently, Geometry Nodes arrived and upended the traditional workflow. However, it wasn't the first to do so, third-party commercial add-ons like the Hardops/Boxcutter combo had already introduced extremely significant changes to the traditional modeling approach, bringing Boolean operations to the forefront.
Autodesk Maya has its own visual programming environment called Bifrost; it does a great job creating procedural effects, and is in extensive use in the entertainment industry.
Speaking of nodes, Substance Designer (now known as Adobe Substance 3D Designer) certainly deserves a mention. Now a de facto industry-standard suite for creating materials used in 3D modeling software and video games, it is entirely node- and graph-based, allowing artists to construct photorealistic materials that can be easily altered and randomized with just a few clicks.
Reference: Adobe
And that is where the strength of the procedural workflow resides, in the first place.
One can compare this to the fly-by-wire concept from aviation: the manual flight controls are replaced with an array of electronic controllers, often excessive in order to provide fail safety. A human pilot still maintains control over them and in some cases can take over completely.
All the Advantages, with Just One Setback
Why is procedural generation so important in 3D?
First things first, it's all about flexibility. While this is often an ugly marketing word concealing a lot of submerged rocks, with procedural content generation it's actually the best fit. Instead of moving polygons by hand, one can deploy a set of instructions and parameters that tell the machine how things should look. Tweaking and randomizing then becomes far easier, you don't get just one model (or set of materials), but virtually limitless variations, all achievable by adjusting a few sliders, entering some values, or even just changing a single 'seed' number.
This is especially convenient when working with materials, as they often benefit from a degree of randomization.
For example, when designing a material for, say, an old metal door, it's expected that in addition to metal parts, there will be dust, rust, and dirt, as well as scuff marks, each placed in a naturally random way, within certain constraints.
For instance, dirt, dust, and rust tend to accumulate in specific areas, such as concavities, while scuff marks are more likely to appear prominently along the edges. These are the relative constants. On the other hand, the noise-based textures used to depict corrosion, grunge, and similar effects can, and should be randomized for every instance of the texture, especially when there's more than one door in the scene.
With procedurally created geometry, certain elements could, and sometimes should be randomized. The best example would be procedural trees or rocks, or anything that's not expected to have identical twins in the scene. Naturally, one could tediously sculpt a stunning tree entirely by hand... spending a week on it. Alternatively, it's possible to use a procedural foliage generator and populate the entire forest with minimal effort.
Reference: Blender Documentation
Setting things up can be a bit tricky, and that's the primary setback for many users. On top of that, procedural tools tend to require higher-end systems to run smoothly, which can be another barrier for beginners or those with limited hardware.
For example, getting a firm grasp on Substance Designer or Blender Geometry Nodes, understanding what does what and why, can take a lot of time, at least some knowledge of mathematics, and the resulting 'noodlework' may seem daunting. But once the system is properly set up and the necessary parameters are exposed, countless variations of the same object, texture, or material can be created just by moving some sliders, or simply by changing a single 'seed' number.
It's worth mentioning that in the world of video games, procedural content creation is a long-established concept, dating back to the 1984 video game Elite, where the algorithms generated 8 galaxies, each with 256 star systems.
The latest installment of the Elite series utilizes procedural generation for the majority of the in-game content, especially celestial bodies. Surfaces of the landable planets tend to look very realistic, but a somewhat trained eye will definitely identify basic procedural noise textures that are used for generation and real-time rendering of the surroundings.
Reference: A screenshot from Elite Dangerous video game
It is safe to assume that procedural generation is poised to supplant the more traditional approach to modeling in the majority of 3D suites. To varying degrees, perhaps, some simple shapes are much easier to create without messing with algorithms. And besides, there's always room for adding finishing touches by hand. But in general, yes, procedural content will likely take over. So, if you're passionate about 3D graphics and have been waiting for a sign to start learning procedural tools, here it is.