oceanyd project under-water visualisation. introduction project goals: import topographic data...

Post on 14-Jan-2016

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Oceanyd Project

Under-water visualisation

Introduction

• Project Goals:Import topographic data (sonar)Objects loading (fauna, flora…)Path EditionTexturing & FXPortability (Win, Mac, Linux)

Plan

• Project Base:3DTerragenA previous terrain visualization projectR.O.A.M based

3DTerragen & Oceanyd

• ToolsIDE :

Visual C++ Express 2005XCode

API & SDK :wxWidgetsGLEWOpenGL

Langage :C++

3DTerragen

3DTerragen

• Visualisation Algorithm:« Real time Optimally Adaptating Meshes »

(Duchaineau)Patches meshingAdaptative Tessellation

« Split and merge » algorithm Cutting criteria

Recursive rendering

3DTerragen

• LimitsUnoptimized rendering loopCulling 2,5DPath editor to simpleMemory usageReduced portability

Plan

• Additionnal developments :XYZ file loading

Sonar RAW data

Projet Oceanyd

• XYZ file loading :Sonar RAW dataDepth is inversedData parasiting

Filtering is needed

Possible support of XYZB filesBiocenose additional data

Filtrage

Modified Top Hat Filtering :

Plan

• Additionnal developments :XYZ file loadingRendering engine optimizations

Oceanyd Project

• Rendering engine optimization :3D Frustum cullingAdditionnal tessellation criteriasVertex BuffersElements ordering

Oceanyd Project

• 3D Frustum culling :

Oceanyd Project

• 3D Frustum culling :OpenGL frustum retrieval

M = View * ProjPlane normalization

Tests on half-spacesPointBoxSphere

Oceanyd Project

• Additionnal tessellation criterias :Available thank to the cullingResolution steps

Of Mipmapping inspirationBetter triangles repartitions

Optimisation for hardware Z-BufferQuick sort on distancesFront to back

Projet Oceanyd

• Vertex BufferBatching (minimise the API calls)

InterlacedIndexed

Array :Uses system RAM

Object :Uses VRAM (+ AGP/PCI-e)

Oceanyd Project

• Elements ordering

3 types of objets (fauna, flora, others…)Fauna and others are independentsFlora are world dependents (patch dependency)

Optimized Culling

Plan

• Addtionnal developments :XYZ file loadingRendering engine optimizationsNew path editor

Oceanyd Project

• PathsUse Catmull-rom splinesConnect the control points

• q(t) = 0.5 * [ t^3 t^2 t 1 ] * [ -1 3 -3 1 ] * [ p0 ] [ 2 -5 4 -1 ] [ p1 ]

[ -1 0 1 0 ] [ p2 ]

[ 0 2 0 0 ] [ p3 ]

Must detect landscape collisions

Oceanyd Project

• PathCheckpoint class :

Add properties for each point (like time pause)

Computed in 4 steps :Estimate the segment lengthInsert additionnal pointsCompute the new arcElevate points if landscape collision

Oceanyd Project

• Path

Plan

• Additionnal developmentsXYZ file loadingRendering engine optimizationsNew path editorBetter visual quality

Oceanyd Project

• Better visual renderingTexturing

UV Planar Mapping S and T parametrisation Number of tiles / terrain size

AnimationAlpha masking

Water planeSkybox

Oceanyd Project

• Better visual qualityFX

Caustics using (multitexturing)Submarine picture stretching

Animate the projection matrixVolumetric fog

ImmersionUnderwater flow movementCinetic (simulates a submarine scooter)

Plan

• Additionnal developments :XYZ file loadingRendering engine optimizationsNew path editorBetter visual qualityMulti-files support

Oceanyd Project

• Multi-files supportBitmaps

PGM, PPMBMP (grey, 8/24 bits + RLE)TGA (grey, 8/24/32 bits + RLE)

Texture classAutomatic format detectionOpenGL texture loading

Oceanyd Project

• Mutli-files support3D

Loading 3DS triangulated filesInstancingMaterials, textures and multiples objetsVBA & VBO display

Object3D class• Model loading• Instancing• Compute bounding volumes

Plan

• Développements effectués :XYZ file loadingRendering engine optimizationsNew path editorBetter visual qualityMulti-files supportPortability

Oceanyd Project

• PortabilitywxWidgets, OpenGLCompilers behaviorsWord representations

Little / Big Endian Byte swapping

Much additionnal programming workload

Results

Oceanyd Project

• BenchmarkAthlon 64 3200+ (2Ghz), 1Go RAM 400Mhz,

Geforce6600GT 128 MO PCI Express 16X, Windows XP Pro SP2

3DTerragen VS Oceanyd : 100k hi-res textured triangles and FXs (Oceanyd disadvantaged).

Oceanyd Project

• ResultsMore than 2 times fasterPortable!Better object code

Facilitation of further implementations24 classes

Open to receive new files formats

Oceanyd Project

• Futurs developments– Fog on objects– LOD on objects– Additionnal FXs (God Light,…)– Model animation (key frames)– A.I– Scene script editor

Oceanyd Project

• RessourcesROAM: http://www.llnl.gov/graphics/ROAM

http://www2.ravensoft.com/users/ggribb/plane%20extraction.pdf

top related