Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Oceanyd Project Under-water visualisation. Introduction Project Goals:  Import topographic data (sonar)  Objects loading (fauna, flora…)  Path Edition."— 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 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 ] * [ ] * [ p0 ] [ ] [ p1 ] [ ] [ p2 ] [ ] [ 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

32 Oceanyd Project Benchmark  Athlon (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).

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

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

35 Oceanyd Project Ressources  ROAM:  %20extraction.pdf %20extraction.pdf


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

Similar presentations


Ads by Google