Oceanyd Project
description
Transcript of Oceanyd Project
![Page 1: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/1.jpg)
Oceanyd Project
Under-water visualisation
![Page 2: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/2.jpg)
Introduction
• Project Goals:Import topographic data (sonar)Objects loading (fauna, flora…)Path EditionTexturing & FXPortability (Win, Mac, Linux)
![Page 3: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/3.jpg)
Plan
• Project Base:3DTerragenA previous terrain visualization projectR.O.A.M based
![Page 4: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/4.jpg)
3DTerragen & Oceanyd
• ToolsIDE :
Visual C++ Express 2005XCode
API & SDK :wxWidgetsGLEWOpenGL
Langage :C++
![Page 5: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/5.jpg)
3DTerragen
![Page 6: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/6.jpg)
3DTerragen
• Visualisation Algorithm:« Real time Optimally Adaptating Meshes »
(Duchaineau)Patches meshingAdaptative Tessellation
« Split and merge » algorithm Cutting criteria
Recursive rendering
![Page 7: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/7.jpg)
3DTerragen
• LimitsUnoptimized rendering loopCulling 2,5DPath editor to simpleMemory usageReduced portability
![Page 8: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/8.jpg)
Plan
• Additionnal developments :XYZ file loading
Sonar RAW data
![Page 9: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/9.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/10.jpg)
Filtrage
Modified Top Hat Filtering :
![Page 11: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/11.jpg)
Plan
• Additionnal developments :XYZ file loadingRendering engine optimizations
![Page 12: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/12.jpg)
Oceanyd Project
• Rendering engine optimization :3D Frustum cullingAdditionnal tessellation criteriasVertex BuffersElements ordering
![Page 13: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/13.jpg)
Oceanyd Project
• 3D Frustum culling :
![Page 14: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/14.jpg)
Oceanyd Project
• 3D Frustum culling :OpenGL frustum retrieval
M = View * ProjPlane normalization
Tests on half-spacesPointBoxSphere
![Page 15: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/15.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/16.jpg)
Projet Oceanyd
• Vertex BufferBatching (minimise the API calls)
InterlacedIndexed
Array :Uses system RAM
Object :Uses VRAM (+ AGP/PCI-e)
![Page 17: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/18.jpg)
Plan
• Addtionnal developments :XYZ file loadingRendering engine optimizationsNew path editor
![Page 19: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/19.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/20.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/21.jpg)
Oceanyd Project
• Path
![Page 22: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/22.jpg)
Plan
• Additionnal developmentsXYZ file loadingRendering engine optimizationsNew path editorBetter visual quality
![Page 23: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/23.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/24.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/25.jpg)
Plan
• Additionnal developments :XYZ file loadingRendering engine optimizationsNew path editorBetter visual qualityMulti-files support
![Page 26: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/26.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/27.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/28.jpg)
Plan
• Développements effectués :XYZ file loadingRendering engine optimizationsNew path editorBetter visual qualityMulti-files supportPortability
![Page 29: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/29.jpg)
Oceanyd Project
• PortabilitywxWidgets, OpenGLCompilers behaviorsWord representations
Little / Big Endian Byte swapping
Much additionnal programming workload
![Page 30: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/30.jpg)
Results
![Page 31: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/31.jpg)
![Page 32: Oceanyd Project](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/32.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/33.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/34.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081603/5681411a550346895dace58e/html5/thumbnails/35.jpg)
Oceanyd Project
• RessourcesROAM: http://www.llnl.gov/graphics/ROAM
http://www2.ravensoft.com/users/ggribb/plane%20extraction.pdf