07.01.2013 Views

3D graphics eBook - Course Materials Repository

3D graphics eBook - Course Materials Repository

3D graphics eBook - Course Materials Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Procedural generation 117<br />

Another indie game that relies heavily on procedural generation is Dwarf Fortress. In the game the whole world is<br />

generated, completely with its history, notable people, and monsters.<br />

Film<br />

As in video games, procedural generation is often used in film to rapidly create visually interesting and accurate<br />

spaces. This comes in a wide variety of applications.<br />

One application is known as an "imperfect factory," where artists can rapidly generate a large number of similar<br />

objects. This accounts for the fact that, in real life, no two objects are ever exactly alike. For instance, an artist could<br />

model a product for a grocery store shelf, and then create an imperfect factory that would generate a large number of<br />

similar objects to populate the shelf.<br />

Noise is extremely important to procedural workflow in film, the most prolific of which is Perlin noise. Noise refers<br />

to an algorithm that generates a patterned sequence of pseudorandom numbers.<br />

Cellular automata methods of procedural generation<br />

Simple programs which generate complex output are a typical method of procedural generation. Typically, one starts<br />

with some simple initial conditions like an array of numbers. Then one applies simple rules to the array, which<br />

determine the next step in the evolution of the output—that is, the next array of numbers. The rules can be fixed, or<br />

they can be changing in time. One can let the program run, and given the right update rules and initial conditions,<br />

one can obtain a non-repeating evolution starting from an initial array.<br />

Cellular automata are discrete computer models of evolutionary behavior which start from an array of<br />

differently-colored cells, then apply update rules to determine the colors of the next array of cells. Typically one<br />

starts with a two-color program, and a random finite array of black and white cells. Then one defines a<br />

neighborhood—for the simplest case, just the two neighboring cells of any one cell—and creates a so-called "update<br />

rule" to determine what the next cell in the evolution will be. Typical elementary update rules are of the form, "If the<br />

current cell is black and the cells to the right and left are white, then the next cell in the evolution shall be white."<br />

Such simple rules, even in the simplest case of two colors, can produce a complex evolution (see Rule 30 and Rule<br />

110).<br />

For game developers, this means that, using with finite initial conditions and extremely simple rules, one can<br />

generate complex behavior. That is, content can be nearly spontaneously generated from virtually nothing, which is<br />

the idea behind procedural generation. Evolving cellular automata is one way of generating a large amount of<br />

content from a small amount of input.<br />

Software examples<br />

Middleware<br />

• Acropora [4] - a procedural <strong>3D</strong> modeling software utilizing voxels to create organic objects and terrain.<br />

• Art of Illusion – an open source and free <strong>3D</strong> modeler, has an internal node-based procedural texture editor.<br />

• CityEngine [5] – a procedural <strong>3D</strong> modeling software, specialized in city modeling.<br />

• CityScape - procedural generation of <strong>3D</strong> cities, including overpasses and tunnels, from GIS data.<br />

• Filter Forge – an Adobe Photoshop plugin for designing procedural textures using node-based editing.<br />

• Grome – popular terrain and outdoor scenes modeler for games and simulation software.<br />

• Houdini - a procedural <strong>3D</strong> animation package. A free version of the software is available.<br />

• Allegorithmic Substance – a middleware and authoring software designed to create and generate procedural<br />

textures in games (used in RoboBlitz).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!