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

35
Oceanyd Project Under-water visualisation

Upload: josef-varty

Post on 14-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

Under-water visualisation

Page 2: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Introduction

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

Page 3: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Plan

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

Page 4: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

3DTerragen & Oceanyd

• ToolsIDE :

Visual C++ Express 2005XCode

API & SDK :wxWidgetsGLEWOpenGL

Langage :C++

Page 5: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

3DTerragen

Page 6: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

3DTerragen

• Visualisation Algorithm:« Real time Optimally Adaptating Meshes »

(Duchaineau)Patches meshingAdaptative Tessellation

« Split and merge » algorithm Cutting criteria

Recursive rendering

Page 7: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

3DTerragen

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

Page 8: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Plan

• Additionnal developments :XYZ file loading

Sonar RAW data

Page 9: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Projet Oceanyd

• XYZ file loading :Sonar RAW dataDepth is inversedData parasiting

Filtering is needed

Possible support of XYZB filesBiocenose additional data

Page 10: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Filtrage

Modified Top Hat Filtering :

Page 11: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Plan

• Additionnal developments :XYZ file loadingRendering engine optimizations

Page 12: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

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

Page 13: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

• 3D Frustum culling :

Page 14: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

• 3D Frustum culling :OpenGL frustum retrieval

M = View * ProjPlane normalization

Tests on half-spacesPointBoxSphere

Page 15: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

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

Page 16: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Projet Oceanyd

• Vertex BufferBatching (minimise the API calls)

InterlacedIndexed

Array :Uses system RAM

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

Page 17: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

• Elements ordering

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

Optimized Culling

Page 18: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Plan

• Addtionnal developments :XYZ file loadingRendering engine optimizationsNew path editor

Page 19: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

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

Page 20: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

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

Page 21: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

• Path

Page 22: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Plan

• Additionnal developmentsXYZ file loadingRendering engine optimizationsNew path editorBetter visual quality

Page 23: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

• Better visual renderingTexturing

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

AnimationAlpha masking

Water planeSkybox

Page 24: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

• Better visual qualityFX

Caustics using (multitexturing)Submarine picture stretching

Animate the projection matrixVolumetric fog

ImmersionUnderwater flow movementCinetic (simulates a submarine scooter)

Page 25: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Plan

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

Page 26: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

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

Page 27: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

• Mutli-files support3D

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

Object3D class• Model loading• Instancing• Compute bounding volumes

Page 28: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Plan

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

Page 29: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

• PortabilitywxWidgets, OpenGLCompilers behaviorsWord representations

Little / Big Endian Byte swapping

Much additionnal programming workload

Page 30: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Results

Page 31: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition
Page 32: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

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).

Page 33: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

• ResultsMore than 2 times fasterPortable!Better object code

Facilitation of further implementations24 classes

Open to receive new files formats

Page 34: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

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

Page 35: Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition

Oceanyd Project

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

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