1 1 effective gpu-based synthesis and editing of realistic heightfields giliam j.p. de carpentier...

31
Effective GPU-based synthesis and editing of realistic heightfields Giliam J.P. de Carpentier 1 Computer Graphics and CAD/CAM Group Faculty of Electrical Engineering, Mathematics and Computer Science Delft University of Technology W!Games Amsterdam [email protected]

Upload: candice-atkinson

Post on 17-Dec-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

11

Computer Graphics and CAD/CAM GroupFaculty of Electrical Engineering, Mathematics and Computer ScienceDelft University of Technology

W!GamesAmsterdam

[email protected]

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

22

• Introduction• Analysis• Approach• Procedural brushes• Editing on the GPU• Terrain rendering• Demo• Conclusions

• Introduction• Analysis• Approach• Procedural brushes• Editing on the GPU• Terrain rendering• Demo• Conclusions

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

33

Both hardware capabilities and gamer’s expectations are constantly growing:

• Higher fidelity graphics• More immersive environments and experiences

Production requires either:

• Larger teams and budgets• More effective tools and more automatization

Both hardware capabilities and gamer’s expectations are constantly growing:

• Higher fidelity graphics• More immersive environments and experiences

Production requires either:

• Larger teams and budgets• More effective tools and more automatization

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

44

Game content creation:

• Indoor environments:– Buildings– Artifacts

• Outdoor environments:– Terrain– Vegetation

• Actors• …

Game content creation:

• Indoor environments:– Buildings– Artifacts

• Outdoor environments:– Terrain– Vegetation

• Actors• …

Game content creation:

• Indoor environments:– Buildings– Artifacts

• Outdoor environments:– Terrain (Heightfields)– Vegetation

• Actors• …

Game content creation:

• Indoor environments:– Buildings– Artifacts

• Outdoor environments:– Terrain (Heightfields)– Vegetation

• Actors• …

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

55

Heightfield terrain:Heightfield terrain:

• 2D specification2D specification

• 3D geometry3D geometry

• Simple but fast & Simple but fast & compactcompact

• Importable/exportable as imageImportable/exportable as image

Heightfield terrain:Heightfield terrain:

• 2D specification2D specification

• 3D geometry3D geometry

• Simple but fast & Simple but fast & compactcompact

• Importable/exportable as imageImportable/exportable as image

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

66

Three creation categories:Three creation categories:• Local brushingLocal brushing• Procedural synthesisProcedural synthesis• Erosion simulationErosion simulation

Three creation categories:Three creation categories:• Local brushingLocal brushing• Procedural synthesisProcedural synthesis• Erosion simulationErosion simulation

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

77

Three creation categories:Three creation categories:• Local brushingLocal brushing• Procedural synthesisProcedural synthesis• Erosion simulationErosion simulation

Three creation categories:Three creation categories:• Local brushingLocal brushing• Procedural synthesisProcedural synthesis• Erosion simulationErosion simulation

Applications:Applications:• Game editorsGame editors

(e.g. UnrealEd, Sandbox)(e.g. UnrealEd, Sandbox)

Pros:Pros:• User controllableUser controllable• InteractiveInteractive

Cons:Cons:• Lack of realismLack of realism

Applications:Applications:• Game editorsGame editors

(e.g. UnrealEd, Sandbox)(e.g. UnrealEd, Sandbox)

Pros:Pros:• User controllableUser controllable• InteractiveInteractive

Cons:Cons:• Lack of realismLack of realism

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

88

Three creation categories:Three creation categories:• Local brushingLocal brushing• Procedural synthesisProcedural synthesis• Erosion simulationErosion simulation

Three creation categories:Three creation categories:• Local brushingLocal brushing• Procedural synthesisProcedural synthesis• Erosion simulationErosion simulation

Applications:Applications:• Terrain generatorsTerrain generators

(e.g. Terragen, World (e.g. Terragen, World Machine)Machine)

Pros:Pros:• Complex resultsComplex results• Easy to set upEasy to set up

Cons:Cons:• Lack of local controlLack of local control• SlowSlow

Applications:Applications:• Terrain generatorsTerrain generators

(e.g. Terragen, World (e.g. Terragen, World Machine)Machine)

Pros:Pros:• Complex resultsComplex results• Easy to set upEasy to set up

Cons:Cons:• Lack of local controlLack of local control• SlowSlow

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

99

Three creation categories:Three creation categories:• Local brushingLocal brushing• Procedural synthesisProcedural synthesis• Erosion simulationErosion simulation

Three creation categories:Three creation categories:• Local brushingLocal brushing• Procedural synthesisProcedural synthesis• Erosion simulationErosion simulation

Applications:Applications:• Terrain generatorsTerrain generators

(e.g. Terragen, World (e.g. Terragen, World Machine)Machine)

Pros:Pros:• RealisticRealistic• Apply to any terrainApply to any terrain

Cons:Cons:• Lack of local controlLack of local control• Very slowVery slow

Applications:Applications:• Terrain generatorsTerrain generators

(e.g. Terragen, World (e.g. Terragen, World Machine)Machine)

Pros:Pros:• RealisticRealistic• Apply to any terrainApply to any terrain

Cons:Cons:• Lack of local controlLack of local control• Very slowVery slow

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

1010

Central question:Central question:

““What are the main bottlenecks in terrain design for What are the main bottlenecks in terrain design for current computer gaming applications and how can current computer gaming applications and how can these bottlenecks be alleviated?”these bottlenecks be alleviated?”

More specifically:More specifically: How to improve designers’ workflow?How to improve designers’ workflow? Which tools and techniques could be provided?Which tools and techniques could be provided? How to reconcile speed and complexity?How to reconcile speed and complexity? How to accomplish this on modern PCs?How to accomplish this on modern PCs?

Central question:Central question:

““What are the main bottlenecks in terrain design for What are the main bottlenecks in terrain design for current computer gaming applications and how can current computer gaming applications and how can these bottlenecks be alleviated?”these bottlenecks be alleviated?”

More specifically:More specifically: How to improve designers’ workflow?How to improve designers’ workflow? Which tools and techniques could be provided?Which tools and techniques could be provided? How to reconcile speed and complexity?How to reconcile speed and complexity? How to accomplish this on modern PCs?How to accomplish this on modern PCs?

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

1111

We need:We need:

• ControlControl

• FeedbackFeedback

• RealismRealism

• EfficiencyEfficiency

We need:We need:

• ControlControl

• FeedbackFeedback

• RealismRealism

• EfficiencyEfficiency

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

1212

We’ve got:We’ve got:

ControlControl

FeedbackFeedback

RealismRealism

EfficiencyEfficiency

- How do you place or move a realistic mountain in a virtual world?- How do you place or move a realistic mountain in a virtual world?

We’ve got:We’ve got:

ControlControl

FeedbackFeedback

RealismRealism

EfficiencyEfficiency

- How do you place or move a realistic mountain in a virtual world?- How do you place or move a realistic mountain in a virtual world?

Brush systemBrush systemProcedural/Procedural/

simulationsimulation

Local editingLocal editing Regenerate allRegenerate all

GoodGood PoorPoor

DifficultDifficult EasyEasy

PoorPoor PoorPoor

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

1313

Recommended improvements:Recommended improvements:

• Procedural brushes:Procedural brushes:– Feedback and control of brushesFeedback and control of brushes– Realism of procedural techniquesRealism of procedural techniques

• Other suggestions:Other suggestions:– Layers and blendingLayers and blending– Multi undoMulti undo

Recommended improvements:Recommended improvements:

• Procedural brushes:Procedural brushes:– Feedback and control of brushesFeedback and control of brushes– Realism of procedural techniquesRealism of procedural techniques

• Other suggestions:Other suggestions:– Layers and blendingLayers and blending– Multi undoMulti undo

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

1414

• Current brushes are simple and procedural Current brushes are simple and procedural techniques are slow for a reason...techniques are slow for a reason...

• Exploit parallelism in current PCsExploit parallelism in current PCs

– Multi-core CPUsMulti-core CPUs

– Graphics card GPUsGraphics card GPUs

• Current brushes are simple and procedural Current brushes are simple and procedural techniques are slow for a reason...techniques are slow for a reason...

• Exploit parallelism in current PCsExploit parallelism in current PCs

– Multi-core CPUsMulti-core CPUs

– Graphics card GPUsGraphics card GPUs

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

1515

Implemented testbed for the evaluation of techniques:Implemented testbed for the evaluation of techniques:

• Stand-alone editor applicationStand-alone editor application

• Import/exportImport/export

• Terrain edit systemTerrain edit system– Procedural brushesProcedural brushes

• Terrain render systemTerrain render system

Implemented testbed for the evaluation of techniques:Implemented testbed for the evaluation of techniques:

• Stand-alone editor applicationStand-alone editor application

• Import/exportImport/export

• Terrain edit systemTerrain edit system– Procedural brushesProcedural brushes

• Terrain render systemTerrain render system

Implemented testbed for the evaluation of techniques:Implemented testbed for the evaluation of techniques:

• Stand-alone editor applicationStand-alone editor application

• Import/exportImport/export

• Terrain edit systemTerrain edit system– Procedural brushesProcedural brushes

• Terrain render systemTerrain render system

Implemented testbed for the evaluation of techniques:Implemented testbed for the evaluation of techniques:

• Stand-alone editor applicationStand-alone editor application

• Import/exportImport/export

• Terrain edit systemTerrain edit system– Procedural brushesProcedural brushes

• Terrain render systemTerrain render system

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

1616

Procedural brushes:Procedural brushes:

• Executes procedural algorithmExecutes procedural algorithm

• Limits effect to ‘brushed’ areaLimits effect to ‘brushed’ area

Procedural brushes:Procedural brushes:

• Executes procedural algorithmExecutes procedural algorithm

• Limits effect to ‘brushed’ areaLimits effect to ‘brushed’ area

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

1717

Procedural algorithms:Procedural algorithms:

• Many different algorithmsMany different algorithms

• Deterministic functionDeterministic function

• Not based on physical modelsNot based on physical models

• Designed to visually approximate featuresDesigned to visually approximate features

• Typically some sort of noisy signalTypically some sort of noisy signal

Procedural algorithms:Procedural algorithms:

• Many different algorithmsMany different algorithms

• Deterministic functionDeterministic function

• Not based on physical modelsNot based on physical models

• Designed to visually approximate featuresDesigned to visually approximate features

• Typically some sort of noisy signalTypically some sort of noisy signal

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

1818

+ +

+

Low MidMid

High SumSum

LowLow

Mid

HighHigh

Sum

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

1919

Weights of individual noiseWeights of individual noise

signals influence roughnesssignals influence roughnessWeights of individual noiseWeights of individual noise

signals influence roughnesssignals influence roughness

More “High”More “High”More “High”More “High”Less “High”Less “High”Less “High”Less “High”

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

2020

Proc( x )

Improving procedural realism:Improving procedural realism:

• Output transformOutput transform• Input transformInput transform• Quilez noiseQuilez noise• Erosive noiseErosive noise• Directional noiseDirectional noise

Improving procedural realism:Improving procedural realism:

• Output transformOutput transform• Input transformInput transform• Quilez noiseQuilez noise• Erosive noiseErosive noise• Directional noiseDirectional noise

Transform( Proc( x ) )Proc( Perturb( x ) )Proc( x )Dynamic octave weightsGradient-based input transformStretched perpendicular to brush

directionStretched along brush directionStretched at 45˚ rel. to brush

direction

Improving procedural realism:Improving procedural realism:

• Output transformOutput transform• Input transformInput transform• Quilez noiseQuilez noise• Erosive noiseErosive noise• Directional noiseDirectional noise

Improving procedural realism:Improving procedural realism:

• Output transformOutput transform• Input transformInput transform• Quilez noiseQuilez noise• Erosive noiseErosive noise• Directional noiseDirectional noise

Improving procedural realism:Improving procedural realism:

• Output transformOutput transform• Input transformInput transform• Quilez noiseQuilez noise• Erosive noiseErosive noise• Directional noiseDirectional noise

Improving procedural realism:Improving procedural realism:

• Output transformOutput transform• Input transformInput transform• Quilez noiseQuilez noise• Erosive noiseErosive noise• Directional noiseDirectional noise

Improving procedural realism:Improving procedural realism:

• Output transformOutput transform• Input transformInput transform• Quilez noiseQuilez noise• Erosive noiseErosive noise• Directional noiseDirectional noise

Improving procedural realism:Improving procedural realism:

• Output transformOutput transform• Input transformInput transform• Quilez noiseQuilez noise• Erosive noiseErosive noise• Directional noiseDirectional noise

Improving procedural realism:Improving procedural realism:

• Output transformOutput transform• Input transformInput transform• Quilez noiseQuilez noise• Erosive noiseErosive noise• Directional noiseDirectional noise

Improving procedural realism:Improving procedural realism:

• Output transformOutput transform• Input transformInput transform• Quilez noiseQuilez noise• Erosive noiseErosive noise• Directional noiseDirectional noise

Improving procedural realism:Improving procedural realism:

• Output transformOutput transform• Input transformInput transform• Quilez noiseQuilez noise• Erosive noiseErosive noise• Directional noiseDirectional noise

Improving procedural realism:Improving procedural realism:

• Output transformOutput transform• Input transformInput transform• Quilez noiseQuilez noise• Erosive noiseErosive noise• Directional noiseDirectional noise

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

2121

Brushing:Brushing:• Convert mouse stroke to positions on heightfieldConvert mouse stroke to positions on heightfield• Create spline from stroke pathCreate spline from stroke path• Create instance locations from splineCreate instance locations from spline• Apply individual instancesApply individual instances

Brushing:Brushing:• Convert mouse stroke to positions on heightfieldConvert mouse stroke to positions on heightfield• Create spline from stroke pathCreate spline from stroke path• Create instance locations from splineCreate instance locations from spline• Apply individual instancesApply individual instances

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

2222

+X

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

2323

• GPU hardware, standards and interfaces designed GPU hardware, standards and interfaces designed for 3D renderingfor 3D rendering

• All other algorithms must be mapped to rendering All other algorithms must be mapped to rendering operationsoperations

• GPU hardware, standards and interfaces designed GPU hardware, standards and interfaces designed for 3D renderingfor 3D rendering

• All other algorithms must be mapped to rendering All other algorithms must be mapped to rendering operationsoperations

Algorithm / CPUAlgorithm / CPU GPUGPU

Scalar / small vectorScalar / small vector ColorColor

2D data / matrix2D data / matrix 2D texture in video 2D texture in video memorymemory

AlgorithmAlgorithm Pixel shader codePixel shader code

Execute algorithmExecute algorithm Render 3D scene to Render 3D scene to texturetexture

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

2424

Mapping heightfield concepts:Mapping heightfield concepts:

• Height as colorHeight as color

• Heightfields as texturesHeightfields as textures

• Split into multiple ‘pages’Split into multiple ‘pages’

• Editing and synthesis Editing and synthesis algorithms as different pixel algorithms as different pixel shadersshaders

Mapping heightfield concepts:Mapping heightfield concepts:

• Height as colorHeight as color

• Heightfields as texturesHeightfields as textures

• Split into multiple ‘pages’Split into multiple ‘pages’

• Editing and synthesis Editing and synthesis algorithms as different pixel algorithms as different pixel shadersshaders

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

2525

Cached page textures (read only)

Cached RTT textures (read / write)

Unrequired page

textures

Required page textures

Operation-specific pixel

shader

General-purpose quad

rendering vertex shader

General-purpose quad vertex buffer

Output RTT textures

Other available

RTT textures

Full heightfield page store

Copies of all page

textures

GP

U &

Vid

eo m

emo

ryG

rap

hic

sb

us

Mai

n m

emo

ry

3D rendering data

Tile index & vertex buffers

Terrain detail RGB textures

GPU

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

2626

GPU optimizations:GPU optimizations:GPU optimizations:GPU optimizations:

• Don’t update identical Don’t update identical sections of RTT output sections of RTT output texture texture

• Combine calculations for Combine calculations for multiple brush instances multiple brush instances in in pixel shaderpixel shader

• Don’t update identical Don’t update identical sections of RTT output sections of RTT output texture texture

• Combine calculations for Combine calculations for multiple brush instances multiple brush instances in in pixel shaderpixel shader

• Only apply to affected pagesOnly apply to affected pages

• Divide in affected/unaffected Divide in affected/unaffected sectionssections

• Apply complex procedural Apply complex procedural pixel shader only to affected pixel shader only to affected sectionssections

• Apply ‘copy’ pixel shader toApply ‘copy’ pixel shader tounaffected sectionsunaffected sections

• Only apply to affected pagesOnly apply to affected pages

• Divide in affected/unaffected Divide in affected/unaffected sectionssections

• Apply complex procedural Apply complex procedural pixel shader only to affected pixel shader only to affected sectionssections

• Apply ‘copy’ pixel shader toApply ‘copy’ pixel shader tounaffected sectionsunaffected sections

• Neighbor lookups: Split Neighbor lookups: Split sections into different sections into different border casesborder cases

• Prevent dynamic Prevent dynamic conditional branching: conditional branching: Use differently compiled Use differently compiled pixel shaderspixel shaders

• Neighbor lookups: Split Neighbor lookups: Split sections into different sections into different border casesborder cases

• Prevent dynamic Prevent dynamic conditional branching: conditional branching: Use differently compiled Use differently compiled pixel shaderspixel shaders

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

2727

• Density of triangulation should Density of triangulation should dependent on distancedependent on distance

• Retriangulate on camera moveRetriangulate on camera move

• Need balance between Need balance between updates and triangle overhead updates and triangle overhead

• Solution: Triangulate per ‘tile’Solution: Triangulate per ‘tile’

• Density of triangulation should Density of triangulation should dependent on distancedependent on distance

• Retriangulate on camera moveRetriangulate on camera move

• Need balance between Need balance between updates and triangle overhead updates and triangle overhead

• Solution: Triangulate per ‘tile’Solution: Triangulate per ‘tile’

Geometry:Geometry:Geometry:Geometry:

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

2828

• Give each triangle colored detail Give each triangle colored detail

• Terrain editor concerned Terrain editor concerned with modeling, not withwith modeling, not withtexturingtexturing

• Automate texturing withAutomate texturing withprocedural techniquesprocedural techniques

• Dependent on height,Dependent on height,slope and randomnessslope and randomness

• Give each triangle colored detail Give each triangle colored detail

• Terrain editor concerned Terrain editor concerned with modeling, not withwith modeling, not withtexturingtexturing

• Automate texturing withAutomate texturing withprocedural techniquesprocedural techniques

• Dependent on height,Dependent on height,slope and randomnessslope and randomness

Texturing:Texturing:Texturing:Texturing:

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

2929

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

3030

• Iterative design requires control, feedback and realismIterative design requires control, feedback and realism

• Developed procedural brushes offer thisDeveloped procedural brushes offer this

• Exploring GPU parallelism achieves required fast Exploring GPU parallelism achieves required fast processingprocessing

• Proposed novel procedural techniques further improve Proposed novel procedural techniques further improve realismrealism

• Iterative design requires control, feedback and realismIterative design requires control, feedback and realism

• Developed procedural brushes offer thisDeveloped procedural brushes offer this

• Exploring GPU parallelism achieves required fast Exploring GPU parallelism achieves required fast processingprocessing

• Proposed novel procedural techniques further improve Proposed novel procedural techniques further improve realismrealism

Effective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de CarpentierEffective GPU-based synthesis and editing of realistic heightfieldsGiliam J.P. de Carpentier

3131

• Integrate the stand-alone editor with specific game Integrate the stand-alone editor with specific game editoreditor

• Develop more common and novel brushes and toolsDevelop more common and novel brushes and tools

• Develop man-made terrain feature toolsDevelop man-made terrain feature tools

• Integrate the stand-alone editor with specific game Integrate the stand-alone editor with specific game editoreditor

• Develop more common and novel brushes and toolsDevelop more common and novel brushes and tools

• Develop man-made terrain feature toolsDevelop man-made terrain feature tools