Title: Infinite Deterministic Terrain Synthesis
1Infinite Deterministic Terrain Synthesis
2Topic Overview
- Project Goal (Infinite Deterministic Terrain
Synthesis) - Alternative terrain generation techniques
- Perlin noise
- Successive subdivision
- Terrain generation using texture synthesis
- Overview of various techniques
- Details of our proposed texture synthesis
technique (Neighborhood matching) - Extensions for terrain generation
- Implementation
- Extensions
- Applications
- Example Images
3Project Goal (Infinite Deterministic Terrain
Synthesis)
- Conceptually infinite terrain
- Generation of only a subset
- Deterministic generation
- If we are to generate a subset, it is essential
for subsets to overlap correctly. This requires
that the generation is deterministic. - Synthesised from elevation maps
- We should be able to generate a terrain from a
base exemplar. This will allow for very realistic
terrain generation because the exemplar
represents real-world data.
4Alternative terrain generation techniques
- An approximation to Gaussian filtered noise.
Noise is added at various frequencies, creating a
bandwidth-limited function. - Terrain generated from Perlin noise can appear
monotonous and featureless - Slow to generate
5Alternative terrain generation techniques
- Fractal subdivision
- Can also appear monotonous and featureless
- Can be partially guided by an initial height-map,
but finer details will still be pseudo-random
6Terrain generation using texture synthesis
7Terrain generation using texture synthesisTiling
- Fastest technique
- Textures need to be tileable
- Created by modulating the texture co-ordinates,
forcing them into a range of 0.0, 1.0 on all
axis
8Terrain generation using texture synthesisPatch
Optimization
- Best results
- Slow
- Sequential
- Created by iteratively overlapping irregular
patches of the exemplar to minimize overlap error - Dealing with inter-patch boundaries is non
trivail, involving a graph cut or dynamic
programming
9Terrain generation using texture
synthesisNeighborhood Matching
- Relatively fast
- Parallel technique
- Improved control of the synthesis process
- Texture co-ordinates of the exemplar are stored
in a indirection texture - This allows for noise in the indirection texture
domain to become jitter in the exemplar domain - Also, jitter does not create gaps in the image
because texels are interpolated between texture
co-ordinates
10Terrain generation using texture
synthesisNeighbourhood Matching
- Given an exemplar, its co-ordinates are sampled
into a fine to coarse stack - To generate these levels, a Gaussian blur is
applied to each, with the blur radius doubling at
each level. This requires the exemplar to have a
border of texels so that the new dimension is
(2mx2m). - There will be (log2(m) 1) levels, where m is
the exemplar dimension (mxm) - To generate a texture window we start from the
coarsest level. We add jitter by adding noise to
the indirection texture. We then correct all
texels by replacing from exemplar, the texel for
which neighborhoods match optimally.
11Terrain generation using texture
synthesisExtensions for Terrain Synthesis
- We will need more resolution than offered by any
colour channel (8 bit) - We would prefer 16 bits. If using textures,
channels might be merged to allow for higher bit
depth. (RGBA -gt 32 bits). - How to achieve overall terrain structure (Ocean
vs. Mountains vs. Plains)? - A novel technique is proposed for dealing with
this aspect below. - A large scale exemplar is used for various
features of terrain - Separate exemplars for the details of each
feature are created. The large scale exemplar is
used to give an index for which exemplar to use. - We will need to research methods for texturing
the generated terrain. One such method involves
applying a texture with co-ordinates based on the
height of the terrain. We could possibly make use
of texture synthesis here as well.
12Terrain generation using texture
synthesisExtensions for Terrain Synthesis
- Guidance
- With the method of neighborhood matching,
terrains can be guided and be forced to
maintain certain features such as mountains and
lakes. Also, rivers can be directed by modulating
the Gaussian stack with another texture. - Possible further extensions
- We have only looked at terrain in which height is
a one-to-one function of longitude and latitude.
This means we cannot have caves or overhangs. - As we progress, we will bear in mind possible
extensions to create such features.
13Implementation
- Offline implementation for blender using the
python scripting language - Real-time infinite terrain simulator using a C
implementation - Possibly implement view dependent optimization of
mesh using the ROAM technique - Possible Implementation on the GPU (This is a
parallel technique)
14Applications
- Terrain generation for the text-to-scene research
being carried out in the department. - A Blender plug-in for terrain generation.
- Games! Computer games would benefit enormously
from real-time infinite terrains, generated from
realistic data sets.
15Example Image
16Example Image
17Bibliography
- http//freespace.virgin.net/hugo.elias/models/m_pe
rlin.htm - http//graphics.stanford.edu/projects/texture/
- http//www.cs.utah.edu/michael/ts/examples.html
- http//www.cc.gatech.edu/cpl/projects/graphcuttext
ures/ - Sylvain Lefebvre and Hugues Hoppe. Parallel
controllable texture synthesis. - ACM Trans. Graph., 24(3)777786, 2005.
- Ken Perlin. An image synthesizer. Computer
Graphics, 19(3)287296, 1985.