Sei sulla pagina 1di 1

As virtual worlds become more complicated, more and more Tom Kelly (Glasgow & http://twak.

org)
resources are being spent creating them. Procedural tools
assist artists in the creation of these environments. This
poster presents an implementation of one such tool Modelling with the Straight Skeleton
(the straight skeleton), and details its uses.
The Skeleton Uses of the Skeleton
The straight skeleton is a geometric algorithm for partitioning a simple Existing procedural architectural
polygon. It shows a lot of promise as a primitive in a procedural system. It systems such as the shape
was first described in A Novel Type of Skeleton for Polygons (Aichholzer et grammars described in
alia, 1995). Procedural Modeling of Buildings
(Müller & Wonka et alia, 2006) cannot work with entirely arbitrary input
polygons, while the straight skeleton can.

The gradient assigned with each input edge defines a face of the 3D
skeleton that resembles a house-roof shape. By changing the gradient as
Acornsoft's Elite (1984) Ubisoft's Far Cry 2 (2008) the sweep-plane ascends, a wider range of architectural features can be
modelled. Setting the gradient of a given edge to vertical, produces a
Why Procedural? When interpreted in 3D the skeleton is an algorithm that takes the floorplan When the planes defined by edges collide to a point we have to modify the straight wall, while setting it to a lower value, a roof face with a lower
(bird's eye view) of a house and produces the roof shape. Each edge of a data structures accordingly. Often we will remove old corners, insert new slope is created. More interestingly, we can set the gradient to be negative,
Over the last two decades video games have adapted with Moore's polygon moves inwards in the direction of it's normal, tracing the gutters and corners or add output edges to the skeleton. This is an involved process, and giving an expanding polygon that can be used to model ridges (above,
law and become increasingly complex. One of the consequences of crests between the edges as it shrinks in. Raising Roofs, Crashing Cycles, and here I sketch only an outline. shows an s-shaped input polygon with gradient changes to create a ridge
this is that our games are more detailed. For example the number of Playing Pool (Eppstein & Erickson, 1999) is an excellent introduction to the below the 'roof'), overhangs or the undersides of roofs.
polygons displayed on each frame once has risen from tens in the skeleton. The collision resolution technique takes a set of planes that meet at a point
1980's to the tens of millions today. Additional techniques such as as input. It processes these into lists of chains of adjacent corners that
displacement and bump mapping are adding additional detail beyond reference these edges (above, 1, blue lines show three chains). It is sufficient
polygon meshes. to process only adjacent pairs in, and between, these chains. This is much
Staff ratios in Japanese simpler and more general technique than described by Felkel.
game development companies
As this chart illustrates, this Processing the inter-edge pairs adds one new input corner, adjusts the corner
rising demand for detail is Admin pointers, (cutting out the internal corners) and adds a skeleton edge ending
visible in the structure of large at the new corner (above, 2). However non-adjacent edge pairs (above, 3, Building houses on non-flat terrains is a current area of research in
Music procedural urban modelling. The skeleton can be adapted to create
video game developers. The the red, yellow and orange edges) take a little more thought as multiple
majority of the man-years chains can collide at one point. Intra-chain edge pairs are ordered around the geometry on an arbitrary polygon landscape (above). By creating
Artist additional edges at different times in the algorithm, the base of the
required to make a modern Programming collision point and processed pair-wise by the last corner in the first chain,
60% The algorithm I engineered proceeds in the style given by a Straight Skeleton skeleton can follow the terrain.
video game are spent by with the first corner of the next. For each of these pairs we add one
Implementation (Felkel & Obdrzálek, 1998), modified to allow an arbitrary additional corner to the skeleton. This corner is at the location of the
artists creating models for the
gradient on each edge. This produces a weighted straight skeleton. Staring collision, and cuts out the inter-chain corners from any edge loops.
world.
from the input polygon (above, 1), a plane is defined for each edge by the
associated gradient. The core of the method then uses a sweep plane that Ambiguities of the Weighted Skeleton
considers intersections between triplets of planes ordered by increasing
Unfortunately this bottleneck of creating geometry means that it costs height order (above 2,3). At each valid intersection (below a,b,c for
more than ever to create video games. Development costs for the like example) new skeleton edges are created.
of Ubisoft's Far Cry 2 (2008) are expected in be in the tens of millions
of pounds. This leads to today's market dominated by a small number
of very conservative, low risk titles. The final example of the skeleton's application is in the construction of
windows. The above, left, diagram shows how a complex window can
be considered a nested set of paths (red, blue and green lines). By using
Some procedural technologies exist as intelligent tools that help the skeleton to extrude the paths, ornate windows may be constructed.
artists create more content, faster. So far this has been at domain- The above figure shows a weighted skeleton, with two parallel and differently These paths themselves can be “grown” using the skeleton to create
specific level. Procedural Inc's CityEngine and IDV's Speedtree allow weighted edges that meet to form a horizontal edge. Normally the skeleton of a windows with shared borders (above, right).
the procedural creation of procedural cityscapes or foliage polygon is unique, but this case it is ambiguous. There are three resolution
respectively. possibilities that make topological sense – choosing the higher or lower
gradient (above, 1,3), or adding a new edge to the skeleton and taking an Results
average (above, 2). The descriptions of the skeleton in the literature do not
resolve the problem, however the best solution for procedural modeling is to This sicsa* logo was extruded using the skeleton to
allow the artist to define a solution using an edge priority system. demonstrate some of the discussed features. Different
perimeters of the logo have different sets of gradients.
You can see outward-moving edges (dotting the i), many
edges meeting at one location (again dotting the i), holes
in the input geometry (the letter a), and the overall effect
of changing the edge gradient.

The skeleton computations took less than second and the


3D output was rendered as a vector graphic.
IDV's SpeedTrees in Bethesda Game Studios' Fallout 3

© 2009 twak

Potrebbero piacerti anche