Oceanyd project
This presentation is the property of its rightful owner.
Sponsored Links
1 / 35

Oceanyd Project PowerPoint PPT Presentation


  • 59 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Oceanyd project

Oceanyd Project

Under-water visualisation


Introduction

Introduction

  • Project Goals:

    • Import topographic data (sonar)

    • Objects loading (fauna, flora…)

    • Path Edition

    • Texturing & FX

    • Portability (Win, Mac, Linux)


Oceanyd project

Plan

  • Project Base:

    • 3DTerragen

    • A previous terrain visualization project

    • R.O.A.M based


3dterragen oceanyd

3DTerragen & Oceanyd

  • Tools

    • IDE :

      • Visual C++ Express 2005

      • XCode

    • API & SDK :

      • wxWidgets

      • GLEW

      • OpenGL

    • Langage :

      • C++


3dterragen

3DTerragen


3dterragen1

3DTerragen

  • Visualisation Algorithm:

    • « Real time Optimally Adaptating Meshes » (Duchaineau)

      • Patches meshing

      • Adaptative Tessellation

        • « Split and merge » algorithm

        • Cutting criteria

      • Recursive rendering


3dterragen2

3DTerragen

  • Limits

    • Unoptimized rendering loop

    • Culling 2,5D

    • Path editor to simple

    • Memory usage

    • Reduced portability


Oceanyd project

Plan

  • Additionnal developments :

    • XYZ file loading

      • Sonar RAW data


Projet oceanyd

Projet Oceanyd

  • XYZ file loading :

    • Sonar RAW data

    • Depth is inversed

    • Data parasiting

      • Filtering is needed

    • Possible support of XYZB files

      • Biocenose additional data


Filtrage

Filtrage

  • Modified Top Hat Filtering :


Oceanyd project

Plan

  • Additionnal developments :

    • XYZ file loading

    • Rendering engine optimizations


Oceanyd project1

Oceanyd Project

  • Rendering engine optimization :

    • 3D Frustum culling

    • Additionnal tessellation criterias

    • Vertex Buffers

    • Elements ordering


Oceanyd project2

Oceanyd Project

  • 3D Frustum culling :


Oceanyd project3

Oceanyd Project

  • 3D Frustum culling :

    • OpenGL frustum retrieval

      • M = View * Proj

      • Plane normalization

    • Tests on half-spaces

      • Point

      • Box

      • Sphere


Oceanyd project4

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


Projet oceanyd1

Projet Oceanyd

  • Vertex Buffer

    • Batching (minimise the API calls)

      • Interlaced

      • Indexed

    • Array :

      • Uses system RAM

    • Object :

      • Uses VRAM (+ AGP/PCI-e)


Oceanyd project5

Oceanyd Project

  • Elements ordering

    • 3 types of objets (fauna, flora, others…)

      • Fauna and others are independents

      • Flora are world dependents (patch dependency)

        • Optimized Culling


Oceanyd project

Plan

  • Addtionnal developments :

    • XYZ file loading

    • Rendering engine optimizations

    • New path editor


Oceanyd project6

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


Oceanyd project7

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


Oceanyd project8

Oceanyd Project

  • Path


Oceanyd project

Plan

  • Additionnal developments

    • XYZ file loading

    • Rendering engine optimizations

    • New path editor

    • Better visual quality


Oceanyd project9

Oceanyd Project

  • Better visual rendering

    • Texturing

      • UV Planar Mapping

        • S and T parametrisation

        • Number of tiles / terrain size

      • Animation

      • Alpha masking

    • Water plane

    • Skybox


Oceanyd project10

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)


Oceanyd project

Plan

  • Additionnal developments :

    • XYZ file loading

    • Rendering engine optimizations

    • New path editor

    • Better visual quality

    • Multi-files support


Oceanyd project11

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


Oceanyd project12

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


Oceanyd project

Plan

  • Développements effectués :

    • XYZ file loading

    • Rendering engine optimizations

    • New path editor

    • Better visual quality

    • Multi-files support

    • Portability


Oceanyd project13

Oceanyd Project

  • Portability

    • wxWidgets, OpenGL

    • Compilers behaviors

    • Word representations

      • Little / Big Endian

      • Byte swapping

    • Much additionnal programming workload


Results

Results


Oceanyd project14

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


Oceanyd project15

Oceanyd Project

  • Results

    • More than 2 times faster

    • Portable!

    • Better object code

      • Facilitation of further implementations

      • 24 classes

    • Open to receive new files formats


Oceanyd project16

Oceanyd Project

  • Futurs developments

    • Fog on objects

    • LOD on objects

    • Additionnal FXs (God Light,…)

    • Model animation (key frames)

    • A.I

    • Scene script editor


Oceanyd project17

Oceanyd Project

  • Ressources

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

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


  • Login