Oceanyd Project Under-water visualisation. Introduction Project Goals: Import topographic data...
-
Upload
josef-varty -
Category
Documents
-
view
218 -
download
0
Transcript of Oceanyd Project Under-water visualisation. Introduction Project Goals: Import topographic data...
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