3D Graphics - Current Technologies

Download Report

Transcript 3D Graphics - Current Technologies

3D Graphics Current Technologies
• Open GL (Open Graphics Language)
– SGI Silicon Graphics
• Direct 3D
–
Microsoft Direct X Technology
• Java3D
–
Sun MicroSystems
• RDX (Realistic Display Mixer)
–
Intel MMX Technologies
Open GL
• Platform Independent 3D API
•
•
•
•
•
•
•
•
Texture Mapping
Z-Buffering
Double Buffering
Lighting Effects
Smooth Shading
Material Properties
Alpha Blending
Transformation matrices
OpenGL
• GLUT (OpenGL Utility Toolkit)
– Window system independent API for binding OpenGL
API. (No need to learn Win32API,MFC, Xlib or Motif)
– Very Simple to use .
– Reduces learning and code overhead for OpenGL
applications.
– Features supported
•
•
•
•
•
•
Multiple windows for OpenGL rendering.
Callback driven event processing.
An `idle' routine and timers.
Utility routines to generate various solid and wire frame objects.
Support for bitmap and stroke fonts.
Miscellaneous window management functions.
Direct X - DirectDraw
• Very Fast - DirectDraw bypasses GDI and directly
accesses video memory on graphics card (via
surface object)
• PRIMARYSURFACE - direct access to display
memory area.
• OFFSCREENSURFACE - offscreen “behind the
scene drawing area”
Display Architecture in Win95
Windows Application
Graphics
Device
Interface
(GDI)
DIBENG
Emulator
Windows Device
Driver Interface
(DDI)
Realistic
Display
Mixer
(RDX)
Video for
Windows
(VFW)
Active
Movie
(Win95)
Direct3D
Retained
Mode
Direct3D
Immediate Mode
DirectDraw
Hardware Emulation
Layer (HEL)
Direct Video
Direct3D Hardware
Emulation Layer
(HEL)
DirectDraw & Direct3D Hardware Abstraction Layer (HAL)
/ Device Driver Interface
Graphics Device
Direct3D - Modes of Operation
• Direct3D Retained Mode
– Sophisticated Geometry Engine to create entire scene to
be manipulated with high level API calls. Functionality comes at performance cost (similar to
OpenGL).
• Direct3D Immediate Mode
– A device independent way for accessing low-level
hardware acceleration (however programmers must
design their own geometry and lighting modules).
– Very Fast! But difficult to program!
Direct3D
• Advantages:
• Faster than OpenGL (Direct hardware accelaration)
• Used in Games
• Disadvantages:
• Platform Dependent (PC Windows platform)
• Very difficult use (steep learning curve) with large
code overhead incomparison to OpenGL.
Java3D API
• Provides a Java 3D API that sits on top of
OpenGL.
• Advantages:
–
–
–
–
–
Platform Independent
Ability to distribute over the web (3D Applets)
Small Code size (similar to OpenGL overhead)
Also-Magician is a front-end to OpenGL
Java Language:-NO Pointers->No Headaches!!!!!!
• Disadvantages:
– Slow (Java Byte code is interpreted by the Java Virtual
Machine, which then talks to Lower Level OpenGLLayer
Comparison
OpenGL
Direct3D
Java3D API
Poor
Good
Very Poor. Java3d
designed to run on
top of other API
Multiplatform
Windows
Multiplatform (?)
Speed
7.5:10
10:10
3:10
Easy to
Program
10:10
2:10
9:10
PC Driver
support for
GFX
accelerator
Cards
Platform
Documentation
Fair:-Books Fair:-Books are No Programming
are 2 years
2-3 years old.
guide, only a
old. OpenGL Microsoft has
specification
superbible,
yet to produce
(available on the
OpenGL
Direct3d
web, so no need to
programming documentation.
buy in on
Guide
Probably
bookstore!)
reccommend
wont.since
ed. On-Line FAHRENHEIT
GLUT doc
is in progess!!
up-to-date.
References
•
•
•
OPENGLProgramming for Windows 95/NT
DIRECTX, RDX, RSX, MMX TECHNOLOGY (High perf API, Rohan Coelho)
High PerformaceWindows Graphics Programing
•
•
•
•
•
•
•
•
www.mesa3d.org
http://www.microsoft.com.../directx/dxm/help/da/frameset/cpp_right.htm
http://cc.usu.edu/~sljwm/index.html
http://cc.usu.edu/~sljwm/OpenGL.html
http://trant.sgi.com/opengl/toolkits/glut-3.5/progs/mui/mui.html
http://www.rezio.com/d3d/
http://www.cmlab.csie.ntu.edu.tw/~robin/JavaGL/
htttp://java.sun.com
•
http://www.opengl.org/
•
•
•
•
•
•
•
http://trant.sgi.com/opengl/toolkits/glut-3.5/progs/progs.html
http://java3d.sdsc.edu/
http://www.jars.com
http://www.wksoftware.com/publications/mcd_icd.html
http://reality.sgi.com/mjk_asd/glut3/glut3.html
http://reality.sgi.com/mjk_asd/glut3/glut3.html
http://ceu.fi.udc.es/SAL/F/3/index.shtml
INSTALLATION FOR Windows DRIVERS required for Demos:
OpenGL:
SGI OpenGL drivers for Windows95
================================
http://www.opengl.org/Downloads/DevDownloads.html
---ftp://ftp.microsoft.com/softlib/mslfiles/opengl95.exe
---http://www.berkelium.com/OpenGL/sgi-opengl.html
MESA OpenGL Implementation
===========================
http://www.mesa3d.org/download.html
GLUT:
=====
You can compile and re-build libraries given original GLUT source code, or just download necessary
binaris, DLLS etc avaliable at the following links:
Reccommended to download complete GLUT src and compile libraries (VC++
recommeded)..includes very nice OpenGL demos, like:
Ideas (SGI)
Atlantis
Chess
Manymore....
http://www.opengl.org/Documentation/GLUT.html
http://reality.sgi.com/mjk_asd/glut3/glut3.html
//Good links
DirectX + RDX
=============
This links to Intels Download area for RDX SDK + samples and includes binary donwload for DirectX 3a.
http://developer.intel.com/ial/rdx/download.htm
http://developer.intel.com/ial/rdx/demos.htm
DirectX6
========
Microsoft has DirectX V6 out but is only available via purchasing its CD from microsoft (approx $12.50 inc
S/H).
http://www.microsoft.com/directx/resources/dx61sdk.htm (SDK includes sample code + demos)
Java3D + JDK1.2
===============
Import Note to set-up classpaths correclty for JDK1.2 installation.
http://java.sun.com/products/jdk/1.2/
//includes demo prgs for Java 2d + java 3D
http://java.sun.com/products/java-media/3D/
All These SDK/Driver installations were necessary to show the demos during the presentation.