Download presentation
Presentation is loading. Please wait.
Published byLorin Brenda Wilkinson Modified over 9 years ago
1
3D Visualisation of Simulation Data. Informal Seminar 08/03/2004. By Chris Sweet.
2
Why Visualise? More meaningful than lists of numbers. People have good visual intuition of dynamics. Visual check that simulation is correct. Easier to communicate interesting features of the simulation to others.
3
Methods for 3D Output. Projection of 3D image onto 2D plane. 3D libraries such as OpenGL or DirectX.
4
Projection of 3D onto 2D This can be accomplished by using a matrix to project the 3D data onto a 2D plane, which can be varied to change the viewpoint. For a viewing plane defined as follows we get a transformation matrix:
5
Example of 2D rendering of objects in 3D. Projection of 3D onto 2D
6
Example of 3D surface rendering. Projection of 3D onto 2D
7
Advantages/Disadvantages of 3D Projection +Easy to implement on any platform with raster graphics. -Objects drawn as 2D. -Hard to determine depth from viewer, (front objects do not obscure rear objects). -Hard to implement perspective. -Hard to apply textures. -Slow as pixel driven.
8
Advantages/Disadvantages of 3D Libraries -Hard initial implementation. +All methods of depth/ perspective/ texturing looked after. +Hardware support for drawing so fast. +Libraries exist for many different platforms. Comparison: 3D projection of Solar System. 3D library rendering of Solar System.
9
Advantages/Disadvantages of 3D Libraries Comparison: 3D projection of Solar System.
10
Advantages/Disadvantages of 3D Libraries 3D library rendering of Solar System.
11
OpenGL OpenGL is a cross-platform 3D graphics and modelling library with extremely good hardware support. OpenGL is a procedural graphics API containing over 200 commands and functions. OpenGL works in conjunction with other libraries, such as GLUT, for easier implementation.
12
OpenGL basics, Vertex Transformation Vertices are transformed according to the following pipeline:
13
OpenGL basics, Initialisation. Typical C++ initialisation commands: Typical C++ re-draw commands:
14
OpenGL View/Perspective The viewing Frustum parameters are set using the command: According to the diagram:
15
OpenGL Drawing Objects All OpenGL objects are constructed from polygons by defining the vertices: or by using GLUT more complex shapes:
16
OpenGL Lighting Both ambient and point source lighting can be defined:
17
OpenGL Textures Textures can be mapped onto objects according to their vertex positions:
18
OpenGL Translate/Rotate Object OpenGL objects can and rotated: be translated:
19
OpenGL Solar System Model The Solar System model is a 10 body model designed to test the long term stability of different integrators and uses the previous OpenGL techniques to generate the graphics.
20
References/Acknowledgments The following book provides a good reference to OpenGL with examples in C/C++: OpenGL SuperBible by R.S.Wright, M.Sweet (No relation!). The following online tutorial covers most aspects of OpenGL programming: http://nehe.gamedev.net/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.