1 / 35

Oceanyd Project

Oceanyd Project. Under-water visualisation. Introduction. Project Goals: Import topographic data (sonar) Objects loading (fauna, flora…) Path Edition Texturing & FX Portability (Win, Mac, Linux). Plan. Project Base: 3DTerragen A previous terrain visualization project R.O.A.M based.

teigra
Télécharger la présentation

Oceanyd Project

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Oceanyd Project Under-water visualisation

  2. Introduction • Project Goals: • Import topographic data (sonar) • Objects loading (fauna, flora…) • Path Edition • Texturing & FX • Portability (Win, Mac, Linux)

  3. Plan • Project Base: • 3DTerragen • A previous terrain visualization project • R.O.A.M based

  4. 3DTerragen & Oceanyd • Tools • IDE : • Visual C++ Express 2005 • XCode • API & SDK : • wxWidgets • GLEW • OpenGL • Langage : • C++

  5. 3DTerragen

  6. 3DTerragen • Visualisation Algorithm: • « Real time Optimally Adaptating Meshes » (Duchaineau) • Patches meshing • Adaptative Tessellation • « Split and merge » algorithm • Cutting criteria • Recursive rendering

  7. 3DTerragen • Limits • Unoptimized rendering loop • Culling 2,5D • Path editor to simple • Memory usage • Reduced portability

  8. Plan • Additionnal developments : • XYZ file loading • Sonar RAW data

  9. Projet Oceanyd • XYZ file loading : • Sonar RAW data • Depth is inversed • Data parasiting • Filtering is needed • Possible support of XYZB files • Biocenose additional data

  10. Filtrage • Modified Top Hat Filtering :

  11. Plan • Additionnal developments : • XYZ file loading • Rendering engine optimizations

  12. Oceanyd Project • Rendering engine optimization : • 3D Frustum culling • Additionnal tessellation criterias • Vertex Buffers • Elements ordering

  13. Oceanyd Project • 3D Frustum culling :

  14. Oceanyd Project • 3D Frustum culling : • OpenGL frustum retrieval • M = View * Proj • Plane normalization • Tests on half-spaces • Point • Box • Sphere

  15. Oceanyd Project • Additionnal tessellation criterias : • Available thank to the culling • Resolution steps • Of Mipmapping inspiration • Better triangles repartitions • Optimisation for hardware Z-Buffer • Quick sort on distances • Front to back

  16. Projet Oceanyd • Vertex Buffer • Batching (minimise the API calls) • Interlaced • Indexed • Array : • Uses system RAM • Object : • Uses VRAM (+ AGP/PCI-e)

  17. Oceanyd Project • Elements ordering • 3 types of objets (fauna, flora, others…) • Fauna and others are independents • Flora are world dependents (patch dependency) • Optimized Culling

  18. Plan • Addtionnal developments : • XYZ file loading • Rendering engine optimizations • New path editor

  19. Oceanyd Project • Paths • Use Catmull-rom splines • Connect 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

  20. Oceanyd Project • Path • Checkpoint class : • Add properties for each point (like time pause) • Computed in 4 steps : • Estimate the segment length • Insert additionnal points • Compute the new arc • Elevate points if landscape collision

  21. Oceanyd Project • Path

  22. Plan • Additionnal developments • XYZ file loading • Rendering engine optimizations • New path editor • Better visual quality

  23. Oceanyd Project • Better visual rendering • Texturing • UV Planar Mapping • S and T parametrisation • Number of tiles / terrain size • Animation • Alpha masking • Water plane • Skybox

  24. Oceanyd Project • Better visual quality • FX • Caustics using (multitexturing) • Submarine picture stretching • Animate the projection matrix • Volumetric fog • Immersion • Underwater flow movement • Cinetic (simulates a submarine scooter)

  25. Plan • Additionnal developments : • XYZ file loading • Rendering engine optimizations • New path editor • Better visual quality • Multi-files support

  26. Oceanyd Project • Multi-files support • Bitmaps • PGM, PPM • BMP (grey, 8/24 bits + RLE) • TGA (grey, 8/24/32 bits + RLE) • Texture class • Automatic format detection • OpenGL texture loading

  27. Oceanyd Project • Mutli-files support • 3D • Loading 3DS triangulated files • Instancing • Materials, textures and multiples objets • VBA & VBO display • Object3D class • Model loading • Instancing • Compute bounding volumes

  28. Plan • Développements effectués : • XYZ file loading • Rendering engine optimizations • New path editor • Better visual quality • Multi-files support • Portability

  29. Oceanyd Project • Portability • wxWidgets, OpenGL • Compilers behaviors • Word representations • Little / Big Endian • Byte swapping • Much additionnal programming workload

  30. Results

  31. Oceanyd Project • Benchmark • Athlon 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).

  32. Oceanyd Project • Results • More than 2 times faster • Portable! • Better object code • Facilitation of further implementations • 24 classes • Open to receive new files formats

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

  34. Oceanyd Project • Ressources • ROAM: http://www.llnl.gov/graphics/ROAM • http://www2.ravensoft.com/users/ggribb/plane%20extraction.pdf

More Related