Grafica Computazionale
|
|
- Marilynn Neal
- 5 years ago
- Views:
Transcription
1 Grafica Computazionale lezione31 Informatica e Automazione, "Roma Tre" May 20, 2010
2 Grafica Computazionale: Lezione 31 Introduction to PyOpenGL GLUT - The OpenGL Utility Toolkit GLU and GLX Libraries OpenGLContext 2.x
3 Contents Introduction to PyOpenGL GLUT - The OpenGL Utility Toolkit GLU and GLX Libraries OpenGLContext 2.x
4 About PyOpenGL PyOpenGL is the cross platform Python binding to OpenGL and related APIs
5 About PyOpenGL PyOpenGL is the cross platform Python binding to OpenGL and related APIs PyOpenGL includes support for OpenGL v1.1 through 3.2, GLU, GLUT v3.7 (and FreeGLUT), and GLE 3
6 About PyOpenGL PyOpenGL is the cross platform Python binding to OpenGL and related APIs PyOpenGL includes support for OpenGL v1.1 through 3.2, GLU, GLUT v3.7 (and FreeGLUT), and GLE 3 It also includes support for hundreds of OpenGL extensions. PyOpenGL is interoperable with a large number of external GUI libraries for Python including wxpython, Pygame, PyGTK, and Qt
7 About PyOpenGL PyOpenGL is the cross platform Python binding to OpenGL and related APIs PyOpenGL includes support for OpenGL v1.1 through 3.2, GLU, GLUT v3.7 (and FreeGLUT), and GLE 3 It also includes support for hundreds of OpenGL extensions. PyOpenGL is interoperable with a large number of external GUI libraries for Python including wxpython, Pygame, PyGTK, and Qt It can also use the GLUT library to provide basic windowing and user interface mechanisms.
8 PyOpenGL Sub-Packages The SourceForge PyOpenGL project has two sub-projects:
9 PyOpenGL Sub-Packages The SourceForge PyOpenGL project has two sub-projects: the core library, PyOpenGL (known as the OpenGL-ctypes module in bzr, and the OpenGL package when installed in Python),
10 PyOpenGL Sub-Packages The SourceForge PyOpenGL project has two sub-projects: the core library, PyOpenGL (known as the OpenGL-ctypes module in bzr, and the OpenGL package when installed in Python), and a teaching and testing library, OpenGLContext built on top of the core
11 PyOpenGL Sub-Packages The SourceForge PyOpenGL project has two sub-projects: the core library, PyOpenGL (known as the OpenGL-ctypes module in bzr, and the OpenGL package when installed in Python), and a teaching and testing library, OpenGLContext built on top of the core PyOpenGL further has a module OpenGL_accelerate which provides Cython-based acceleration code.
12 OpenGLContext OpenGLContext VRML97-compatible scenegraph engine written in Python Built directly on top of PyOpenGL,
13 OpenGLContext OpenGLContext VRML97-compatible scenegraph engine written in Python Built directly on top of PyOpenGL, OpenGLContext is a retained-mode rendering engine which demonstrates many of the most basic features desired by those building scenegraph engines
14 OpenGLContext OpenGLContext VRML97-compatible scenegraph engine written in Python Built directly on top of PyOpenGL, OpenGLContext is a retained-mode rendering engine which demonstrates many of the most basic features desired by those building scenegraph engines It is written primarily to provide a source of sample and testing code for the PyOpenGL library, but represents a fairly complete rendering engine.
15 OpenSceneGraph OpenSceneGraph General-purpose C++ engine with Python binding (PyOSG) Large C++ rendering engine with what looks to be a fairly large user base
16 OpenSceneGraph OpenSceneGraph General-purpose C++ engine with Python binding (PyOSG) Large C++ rendering engine with what looks to be a fairly large user base Rendering quality is rather good judging from the screenshots
17 OpenSceneGraph OpenSceneGraph General-purpose C++ engine with Python binding (PyOSG) Large C++ rendering engine with what looks to be a fairly large user base Rendering quality is rather good judging from the screenshots Uses OpenGL for it s rendering back-end
18 OpenSceneGraph OpenSceneGraph General-purpose C++ engine with Python binding (PyOSG) Large C++ rendering engine with what looks to be a fairly large user base Rendering quality is rather good judging from the screenshots Uses OpenGL for it s rendering back-end Rather minimal homepage for the Python wrapper.
19 Pivy Pivy Wrapper for the Coin/Inventor Scenegraph Library Pivy is a Coin3D binding for Python
20 Pivy Pivy Wrapper for the Coin/Inventor Scenegraph Library Pivy is a Coin3D binding for Python Coin3D is a high-level 3D graphics library with a C++ API
21 Pivy Pivy Wrapper for the Coin/Inventor Scenegraph Library Pivy is a Coin3D binding for Python Coin3D is a high-level 3D graphics library with a C++ API Coin uses scene-graph data structures to render real-time graphics suitable for all kinds of scientific and engineering visualization applications
22 Pivy Pivy Wrapper for the Coin/Inventor Scenegraph Library Pivy is a Coin3D binding for Python Coin3D is a high-level 3D graphics library with a C++ API Coin uses scene-graph data structures to render real-time graphics suitable for all kinds of scientific and engineering visualization applications Can be extended with PyOpenGL
23 Pivy Pivy Wrapper for the Coin/Inventor Scenegraph Library Pivy is a Coin3D binding for Python Coin3D is a high-level 3D graphics library with a C++ API Coin uses scene-graph data structures to render real-time graphics suitable for all kinds of scientific and engineering visualization applications Can be extended with PyOpenGL Includes loaders for a number of common formats, including VRML97.
24 POVRay Recipe POVRay Recipe Generation of POVRay files from Python (ray tracing) Textual generator for producing POVRay files from Python code
25 POVRay Recipe POVRay Recipe Generation of POVRay files from Python (ray tracing) Textual generator for producing POVRay files from Python code Written as a recipe in the Python cookbook
26 POVRay Recipe POVRay Recipe Generation of POVRay files from Python (ray tracing) Textual generator for producing POVRay files from Python code Written as a recipe in the Python cookbook Includes sample code for a few scenes
27 POVRay Recipe POVRay Recipe Generation of POVRay files from Python (ray tracing) Textual generator for producing POVRay files from Python code Written as a recipe in the Python cookbook Includes sample code for a few scenes All of the sample code I can see uses something akin to immediate mode in that it renders directly to the file, rather than creating a graph first and then rendering out to the file.
28 Contents Introduction to PyOpenGL GLUT - The OpenGL Utility Toolkit GLU and GLX Libraries OpenGLContext 2.x
29 GLUT - The OpenGL Utility Toolkit GLUT is a window-system independent toolkit for writing OpenGL programs
30 GLUT - The OpenGL Utility Toolkit GLUT is a window-system independent toolkit for writing OpenGL programs It implements a simple windowing API for OpenGL
31 GLUT - The OpenGL Utility Toolkit GLUT is a window-system independent toolkit for writing OpenGL programs It implements a simple windowing API for OpenGL GLUT makes it considerably easier to learn about and explore OpenGL programming
32 GLUT - The OpenGL Utility Toolkit GLUT is a window-system independent toolkit for writing OpenGL programs It implements a simple windowing API for OpenGL GLUT makes it considerably easier to learn about and explore OpenGL programming GLUT provides a portable API so you can write a single OpenGL program that works across all PC and workstation OS platforms.
33 GLUT - The OpenGL Utility Toolkit GLUT is a window-system independent toolkit for writing OpenGL programs It implements a simple windowing API for OpenGL GLUT makes it considerably easier to learn about and explore OpenGL programming GLUT provides a portable API so you can write a single OpenGL program that works across all PC and workstation OS platforms. While GLUT is well-suited to learning OpenGL and developing simple OpenGL applications, GLUT is not a full-featured toolkit so large applications requiring sophisticated user interfaces are better off using native window system toolkits
34 GLUT - The OpenGL Utility Toolkit GLUT is a window-system independent toolkit for writing OpenGL programs It implements a simple windowing API for OpenGL GLUT makes it considerably easier to learn about and explore OpenGL programming GLUT provides a portable API so you can write a single OpenGL program that works across all PC and workstation OS platforms. While GLUT is well-suited to learning OpenGL and developing simple OpenGL applications, GLUT is not a full-featured toolkit so large applications requiring sophisticated user interfaces are better off using native window system toolkits GLUT is simple, easy, and small.
35 Perchè GLUT Un applicazione grafica deve poter accedere ad un buffer di scrittura, sia in finestra che a schermo intero
36 Perchè GLUT Un applicazione grafica deve poter accedere ad un buffer di scrittura, sia in finestra che a schermo intero Tale accesso dipende dalla piattaforma; le OpenGL non provvedono funzionalita per gestire una finestra su cui disegnare, lasciano il compito al sistema operativo
37 Perchè GLUT Un applicazione grafica deve poter accedere ad un buffer di scrittura, sia in finestra che a schermo intero Tale accesso dipende dalla piattaforma; le OpenGL non provvedono funzionalita per gestire una finestra su cui disegnare, lasciano il compito al sistema operativo Sotto Windows si usano, per esempio, le Win32 API, mentre sotto Unix o Linux si usano, in genere, le librerie X-Windows
38 Perchè GLUT Un applicazione grafica deve poter accedere ad un buffer di scrittura, sia in finestra che a schermo intero Tale accesso dipende dalla piattaforma; le OpenGL non provvedono funzionalita per gestire una finestra su cui disegnare, lasciano il compito al sistema operativo Sotto Windows si usano, per esempio, le Win32 API, mentre sotto Unix o Linux si usano, in genere, le librerie X-Windows Che vantaggio c è ad usare una libreria multipiattaforma se poi il codice deve comunque contenere chiamate a librerie specifiche?
39 Perchè GLUT Un applicazione grafica deve poter accedere ad un buffer di scrittura, sia in finestra che a schermo intero Tale accesso dipende dalla piattaforma; le OpenGL non provvedono funzionalita per gestire una finestra su cui disegnare, lasciano il compito al sistema operativo Sotto Windows si usano, per esempio, le Win32 API, mentre sotto Unix o Linux si usano, in genere, le librerie X-Windows Che vantaggio c è ad usare una libreria multipiattaforma se poi il codice deve comunque contenere chiamate a librerie specifiche? Le GLUT si interpongono tra OS/Window system e applicazione grafica.
40 Perchè GLUT Le funzionalità GLUT possono essere riassunte in breve come segue:
41 Perchè GLUT Le funzionalità GLUT possono essere riassunte in breve come segue: 1. gestione delle finestre
42 Perchè GLUT Le funzionalità GLUT possono essere riassunte in breve come segue: 1. gestione delle finestre 2. gestione dei menù
43 Perchè GLUT Le funzionalità GLUT possono essere riassunte in breve come segue: 1. gestione delle finestre 2. gestione dei menù 3. la gestione degli eventi (della finestra, del timer, dei dispositivi di input)
44 Perchè GLUT Le funzionalità GLUT possono essere riassunte in breve come segue: 1. gestione delle finestre 2. gestione dei menù 3. la gestione degli eventi (della finestra, del timer, dei dispositivi di input) 4. gestione di varie primitive geometriche solide e in wireframe
45 GLUT è basato sul paradigma degli eventi All accadere di un evento (l utente preme un tasto sulla tastiera, muove il mouse, sposta una finestra, ecc.):
46 GLUT è basato sul paradigma degli eventi All accadere di un evento (l utente preme un tasto sulla tastiera, muove il mouse, sposta una finestra, ecc.): Il sistema operativo manda quindi un messaggio all applicazione con il tipo di evento
47 GLUT è basato sul paradigma degli eventi All accadere di un evento (l utente preme un tasto sulla tastiera, muove il mouse, sposta una finestra, ecc.): Il sistema operativo manda quindi un messaggio all applicazione con il tipo di evento La gestione dei messaggi tra OS e applicazione puo essere complessa: GLUT intercetta tali messaggi e li gestisce in maniera semplice
48 GLUT è basato sul paradigma degli eventi All accadere di un evento (l utente preme un tasto sulla tastiera, muove il mouse, sposta una finestra, ecc.): Il sistema operativo manda quindi un messaggio all applicazione con il tipo di evento La gestione dei messaggi tra OS e applicazione puo essere complessa: GLUT intercetta tali messaggi e li gestisce in maniera semplice Ad ogni messaggio GLUT fa corrispondere la chiamata ad una funzione ed è compito del programmatore costruire delle funzioni callback (di rendering, di interazione I/O, ecc.) e registrarle con chiamate alla API GLUT
49 GLUT è basato sul paradigma degli eventi All accadere di un evento (l utente preme un tasto sulla tastiera, muove il mouse, sposta una finestra, ecc.): Il sistema operativo manda quindi un messaggio all applicazione con il tipo di evento La gestione dei messaggi tra OS e applicazione puo essere complessa: GLUT intercetta tali messaggi e li gestisce in maniera semplice Ad ogni messaggio GLUT fa corrispondere la chiamata ad una funzione ed è compito del programmatore costruire delle funzioni callback (di rendering, di interazione I/O, ecc.) e registrarle con chiamate alla API GLUT
50 GLUT è basato sul paradigma degli eventi All accadere di un evento (l utente preme un tasto sulla tastiera, muove il mouse, sposta una finestra, ecc.): Il sistema operativo manda quindi un messaggio all applicazione con il tipo di evento La gestione dei messaggi tra OS e applicazione puo essere complessa: GLUT intercetta tali messaggi e li gestisce in maniera semplice Ad ogni messaggio GLUT fa corrispondere la chiamata ad una funzione ed è compito del programmatore costruire delle funzioni callback (di rendering, di interazione I/O, ecc.) e registrarle con chiamate alla API GLUT Riassumendo: Quando l OS sente un evento, invia un messaggio all applicazione; GLUT determina il tipo di evento che lo ha generato e chiama la corrispondente funzione di gestione fornita dal programmatore
51 Programmare con le GLUT passo-passo Si inizia con le import Tutte le funzioni della libreria sono della forma glutsomething(something)
52 Funzioni di inizializzazione (1/2) glutinit() richiede al sistema operativo le risorse per aprire una finestra su cui disegnare.
53 Funzioni di inizializzazione (1/2) glutinit() richiede al sistema operativo le risorse per aprire una finestra su cui disegnare. L argomento può essere fornito dagli argomenti del main e può essere usato per passare delle flag al programma in fase di avvio (dipende dal sistema operativo)
54 Funzioni di inizializzazione (2/2) glutinitdisplaymode() setta le caratteristiche della finestra tramite OR di maschere di bit:
55 Funzioni di inizializzazione (2/2) glutinitdisplaymode() setta le caratteristiche della finestra tramite OR di maschere di bit: GLUT_DOUBLE inizializza una double buffered window
56 Funzioni di inizializzazione (2/2) glutinitdisplaymode() setta le caratteristiche della finestra tramite OR di maschere di bit: GLUT_DOUBLE inizializza una double buffered window GLUT_RGB si chiede una finestra che supporti il formato RGB dei colori (in realtà è RGBA essendoci anche un valore per α-blending)
57 Funzioni di inizializzazione (2/2) glutinitdisplaymode() setta le caratteristiche della finestra tramite OR di maschere di bit: GLUT_DOUBLE inizializza una double buffered window GLUT_RGB si chiede una finestra che supporti il formato RGB dei colori (in realtà è RGBA essendoci anche un valore per α-blending) GLUT_DEPTH la finestra deve possedere un depth-buffer (z-buffer). Il sistema operativo deve quindi fornire la memoria necessaria.
58 Apertura di Finestre Quindi possiamo inizializzare ed aprire la finestra vera e propria
59 Apertura di Finestre Quindi possiamo inizializzare ed aprire la finestra vera e propria glutinitwindowsize(h, w) fissa le dimensioni di questa a h * w
60 Apertura di Finestre Quindi possiamo inizializzare ed aprire la finestra vera e propria glutinitwindowsize(h, w) fissa le dimensioni di questa a h * w glutinitwindowposition(x,y) fissa la posizione del vertice superiore sinistro della finestra agli interi (x,y)
61 Apertura di Finestre Quindi possiamo inizializzare ed aprire la finestra vera e propria glutinitwindowsize(h, w) fissa le dimensioni di questa a h * w glutinitwindowposition(x,y) fissa la posizione del vertice superiore sinistro della finestra agli interi (x,y) glutcreatewindow("name") crea la finestra e pone il titolo pari a "Name"
62 Apertura di Finestre Quindi possiamo inizializzare ed aprire la finestra vera e propria glutinitwindowsize(h, w) fissa le dimensioni di questa a h * w glutinitwindowposition(x,y) fissa la posizione del vertice superiore sinistro della finestra agli interi (x,y) glutcreatewindow("name") crea la finestra e pone il titolo pari a "Name" Dalla versione (3.7), GLUT permette anche applicazioni a schermo intero
63 Apertura di Finestre Quindi possiamo inizializzare ed aprire la finestra vera e propria glutinitwindowsize(h, w) fissa le dimensioni di questa a h * w glutinitwindowposition(x,y) fissa la posizione del vertice superiore sinistro della finestra agli interi (x,y) glutcreatewindow("name") crea la finestra e pone il titolo pari a "Name" Dalla versione (3.7), GLUT permette anche applicazioni a schermo intero Permette inoltre di aprire più finestre e fornisce varie funzioni per la gestione di programmi multi-finestra.
64 Registrazione delle funzioni utente Si devono "registrare" le varie funzioni (callback) definite dall utente, e responsabili del rendering, dell I/O, del timing ecc.
65 Registrazione delle funzioni utente Si devono "registrare" le varie funzioni (callback) definite dall utente, e responsabili del rendering, dell I/O, del timing ecc. abbiamo registrato la funzione display() come funzione di rendering che viene chiamata ogni volta che l applicazione deve disegnare sulla finestra,
66 Registrazione delle funzioni utente Si devono "registrare" le varie funzioni (callback) definite dall utente, e responsabili del rendering, dell I/O, del timing ecc. abbiamo registrato la funzione display() come funzione di rendering che viene chiamata ogni volta che l applicazione deve disegnare sulla finestra, la funzione keyboard() come funzione di I/O da tastiera che viene chiamata ogni volta che l utente usa la tastiera
67 Registrazione delle funzioni utente Si devono "registrare" le varie funzioni (callback) definite dall utente, e responsabili del rendering, dell I/O, del timing ecc. abbiamo registrato la funzione display() come funzione di rendering che viene chiamata ogni volta che l applicazione deve disegnare sulla finestra, la funzione keyboard() come funzione di I/O da tastiera che viene chiamata ogni volta che l utente usa la tastiera e la funzione animate() come funzione che viene chiamata quando non succede nulla (utile per le animazioni)
68 Glut callbacks glutbuttonboxfunc glutclosefunc glutdialsfunc glutdisplayfunc glutentryfunc glutidlefunc glutjoystickfunc glutkeyboardfunc glutkeyboardupfunc glutmenudestroyfunc glutmenustatefunc glutmenustatusfunc glutmotionfunc glutmousefunc glutmousewheelfunc glutoverlaydisplayfunc glutpassivemotionfunc glutreshapefunc glutspaceballbuttonfunc glutspaceballmotionfunc glutspaceballrotatefunc glutspecialfunc glutspecialupfunc gluttabletbuttonfunc gluttabletmotionfunc gluttimerfunc glutvisibilityfunc glutwmclosefunc glutwindowstatusfunc
69 Esempi di registrazioni callback in C
70
71 Esempio di programma GLUT in C
72
73 Esempio di programma GLUT in Python
74 Esempi di altre funzioni callback
75 Contents Introduction to PyOpenGL GLUT - The OpenGL Utility Toolkit GLU and GLX Libraries OpenGLContext 2.x
76 GLU is the OpenGL Utility Library The GL Utilities (GLU) library is a set of routines designed to complement the OpenGL graphics system by providing support for
77 GLU is the OpenGL Utility Library The GL Utilities (GLU) library is a set of routines designed to complement the OpenGL graphics system by providing support for mipmapping (to create texture mipmaps from a base image),
78 GLU is the OpenGL Utility Library The GL Utilities (GLU) library is a set of routines designed to complement the OpenGL graphics system by providing support for mipmapping (to create texture mipmaps from a base image), matrix manipulation (to map coordinates between screen and object space),
79 GLU is the OpenGL Utility Library The GL Utilities (GLU) library is a set of routines designed to complement the OpenGL graphics system by providing support for mipmapping (to create texture mipmaps from a base image), matrix manipulation (to map coordinates between screen and object space), polygon tessellation,
80 GLU is the OpenGL Utility Library The GL Utilities (GLU) library is a set of routines designed to complement the OpenGL graphics system by providing support for mipmapping (to create texture mipmaps from a base image), matrix manipulation (to map coordinates between screen and object space), polygon tessellation, quadrics, NURBS, and error handling.
81 GLU supported functions
82 GLU supported functions Mipmapping routines include image scaling and automatic mipmap generation
83 GLU supported functions Mipmapping routines include image scaling and automatic mipmap generation A variety of matrix manipulation functions build projection and viewing matrices, or project vertices from one coordinate system to another.
84 GLU supported functions Mipmapping routines include image scaling and automatic mipmap generation A variety of matrix manipulation functions build projection and viewing matrices, or project vertices from one coordinate system to another. Polygon tessellation routines convert concave polygons into triangles for easy rendering
85 GLU supported functions Mipmapping routines include image scaling and automatic mipmap generation A variety of matrix manipulation functions build projection and viewing matrices, or project vertices from one coordinate system to another. Polygon tessellation routines convert concave polygons into triangles for easy rendering Quadrics support renders a few basic quadrics such as spheres and cones
86 GLU supported functions Mipmapping routines include image scaling and automatic mipmap generation A variety of matrix manipulation functions build projection and viewing matrices, or project vertices from one coordinate system to another. Polygon tessellation routines convert concave polygons into triangles for easy rendering Quadrics support renders a few basic quadrics such as spheres and cones NURBS code maps complicated NURBS curves and trimmed surfaces into simpler OpenGL evaluators
87 GLU supported functions Mipmapping routines include image scaling and automatic mipmap generation A variety of matrix manipulation functions build projection and viewing matrices, or project vertices from one coordinate system to another. Polygon tessellation routines convert concave polygons into triangles for easy rendering Quadrics support renders a few basic quadrics such as spheres and cones NURBS code maps complicated NURBS curves and trimmed surfaces into simpler OpenGL evaluators an error lookup routine translates OpenGL and GLU error codes into strings.
88 GLU Application Programming Interface glubegincurve - glubeginpolygon - glubeginsurface - glubegintrim - glubuild1dmipmaplevels - glubuild1dmipmaps - glubuild2dmipmaplevels - glubuild2dmipmaps - glubuild3dmipmaplevels - glubuild3dmipmaps - glucheckextension - glucylinder - gludeletenurbsrenderer - gludeletequadric - gludeletetess - gludisk - gluendcurve - gluendpolygon - gluendsurface - gluendtrim - gluerrorstring - glugetnurbsproperty - glugetstring - glugettessproperty - gluloadsamplingmatrices - glulookat - glunewnurbsrenderer - glunewquadric - glunewtess - glunextcontour - glunurbscallbackdata - glunurbscallbackdataext - glunurbscurve - glunurbsproperty - glunurbssurface - gluortho2d - glupartialdisk - gluperspective - glupickmatrix - gluproject - glupwlcurve - gluquadricdrawstyle - gluquadricnormals - gluquadricorientation - gluquadrictexture - gluscaleimage - glusphere - glutessbegincontour - glutessendcontour - glutessendpolygon - glutessnormal - glutessproperty - gluunproject - gluunproject4 -
89 GLX: OpenGL onto the X protocol stream for remote rendering GLX 1.4 is used on Unix OpenGL implementation to manage interaction with the X Window System and to encode OpenGL onto the X protocol stream for remote rendering
90 GLX: OpenGL onto the X protocol stream for remote rendering GLX 1.4 is used on Unix OpenGL implementation to manage interaction with the X Window System and to encode OpenGL onto the X protocol stream for remote rendering pixel buffers for hardware accelerated offscreen rendering;
91 GLX: OpenGL onto the X protocol stream for remote rendering GLX 1.4 is used on Unix OpenGL implementation to manage interaction with the X Window System and to encode OpenGL onto the X protocol stream for remote rendering pixel buffers for hardware accelerated offscreen rendering; read-only drawables for preprocessing of data in an offscreen window and direct video input;
92 GLX: OpenGL onto the X protocol stream for remote rendering GLX 1.4 is used on Unix OpenGL implementation to manage interaction with the X Window System and to encode OpenGL onto the X protocol stream for remote rendering pixel buffers for hardware accelerated offscreen rendering; read-only drawables for preprocessing of data in an offscreen window and direct video input; FBConfigs, a more powerful and flexible interface for selecting frame buffer configurations underlying an OpenGL rendering window.
93 X Terminology In X, a rendering surface is called a Drawable
94 X Terminology In X, a rendering surface is called a Drawable X provides two types of Drawables: Windows which are located onscreen and Pixmaps which are maintained offscreen
95 X Terminology In X, a rendering surface is called a Drawable X provides two types of Drawables: Windows which are located onscreen and Pixmaps which are maintained offscreen The GLX equivalent to a Window is a GLXWindow and the GLX equivalent to a Pixmap is a GLXPixmap
96 X Terminology In X, a rendering surface is called a Drawable X provides two types of Drawables: Windows which are located onscreen and Pixmaps which are maintained offscreen The GLX equivalent to a Window is a GLXWindow and the GLX equivalent to a Pixmap is a GLXPixmap GLX introduces a third type of drawable, called a GLXPbuffer, for which there is no X equivalent
97 X Terminology In X, a rendering surface is called a Drawable X provides two types of Drawables: Windows which are located onscreen and Pixmaps which are maintained offscreen The GLX equivalent to a Window is a GLXWindow and the GLX equivalent to a Pixmap is a GLXPixmap GLX introduces a third type of drawable, called a GLXPbuffer, for which there is no X equivalent GLXPbuffers are used for offscreen rendering but they have different semantics than GLXPixmaps that make it easier to allocate them in non-visible frame buffer memory.
98 X Terminology GLXWindow*s, *GLXPixmaps and GLXPbuffers are created with respect to a GLXFBConfig;
99 X Terminology GLXWindow*s, *GLXPixmaps and GLXPbuffers are created with respect to a GLXFBConfig; the GLXFBConfig describes the depth of the color buffer components and the types, quantities and sizes of the ancillary buffers (i.e., the depth, accumulation, auxiliary, multisample, and stencil buffers)
100 X Terminology GLXWindow*s, *GLXPixmaps and GLXPbuffers are created with respect to a GLXFBConfig; the GLXFBConfig describes the depth of the color buffer components and the types, quantities and sizes of the ancillary buffers (i.e., the depth, accumulation, auxiliary, multisample, and stencil buffers) Double buffering and stereo capability is also fixed by the GLXFBConfig. Ancillary buffers are associated with a GLXDrawable, not with a rendering context
101 X Terminology GLXWindow*s, *GLXPixmaps and GLXPbuffers are created with respect to a GLXFBConfig; the GLXFBConfig describes the depth of the color buffer components and the types, quantities and sizes of the ancillary buffers (i.e., the depth, accumulation, auxiliary, multisample, and stencil buffers) Double buffering and stereo capability is also fixed by the GLXFBConfig. Ancillary buffers are associated with a GLXDrawable, not with a rendering context If several rendering contexts are all writing to the same window, they will share those buffers.
102 Rendering Contexts and Drawing Surfaces The OpenGL specification is intentionally vague on how a rendering context (an abstract OpenGL state machine) is created. One of the purposes of GLX is to pro- vide a means to create an OpenGL context and associate it with a drawing surface. OpenGL defines both client state and server state. Thus a rendering context consists of two parts: one to hold the client state and one to hold the server state.
103 Rendering Contexts and Drawing Surfaces The OpenGL specification is intentionally vague on how a rendering context (an abstract OpenGL state machine) is created. One of the purposes of GLX is to pro- vide a means to create an OpenGL context and associate it with a drawing surface. OpenGL defines both client state and server state. Thus a rendering context consists of two parts: one to hold the client state and one to hold the server state. Each thread can have at most one current rendering context
104 Rendering Contexts and Drawing Surfaces The OpenGL specification is intentionally vague on how a rendering context (an abstract OpenGL state machine) is created. One of the purposes of GLX is to pro- vide a means to create an OpenGL context and associate it with a drawing surface. OpenGL defines both client state and server state. Thus a rendering context consists of two parts: one to hold the client state and one to hold the server state. Each thread can have at most one current rendering context In addition, a rendering context can be **current for only one thread at a time
105 Rendering Contexts and Drawing Surfaces The OpenGL specification is intentionally vague on how a rendering context (an abstract OpenGL state machine) is created. One of the purposes of GLX is to pro- vide a means to create an OpenGL context and associate it with a drawing surface. OpenGL defines both client state and server state. Thus a rendering context consists of two parts: one to hold the client state and one to hold the server state. Each thread can have at most one current rendering context In addition, a rendering context can be **current for only one thread at a time The client is responsible for creating a rendering context and a drawable.
106 Contents Introduction to PyOpenGL GLUT - The OpenGL Utility Toolkit GLU and GLX Libraries OpenGLContext 2.x
107 OpenGLContext 2.x The OpenGLContext project provides a simplified environment for writing OpenGL code with PyOpenGL
108 OpenGLContext 2.x The OpenGLContext project provides a simplified environment for writing OpenGL code with PyOpenGL 1. Rendering contexts for various
109 OpenGLContext 2.x The OpenGLContext project provides a simplified environment for writing OpenGL code with PyOpenGL 1. Rendering contexts for various
110 OpenGLContext 2.x The OpenGLContext project provides a simplified environment for writing OpenGL code with PyOpenGL 1. Rendering contexts for various GUI libraries,
111 OpenGLContext 2.x The OpenGLContext project provides a simplified environment for writing OpenGL code with PyOpenGL 1. Rendering contexts for various GUI libraries, scene graph geometry objects, and
112 OpenGLContext 2.x The OpenGLContext project provides a simplified environment for writing OpenGL code with PyOpenGL 1. Rendering contexts for various GUI libraries, scene graph geometry objects, and PyOpenGL testing code
113 OpenGLContext 2.x The OpenGLContext project provides a simplified environment for writing OpenGL code with PyOpenGL 1. Rendering contexts for various GUI libraries, scene graph geometry objects, and PyOpenGL testing code 2. This simplified environment abstracts the GUI library interfaces for a large number of GUI libraries to allow the easy creation of cross platform and cross-gui OpenGL programs.
114 OpenGLContext 2.x The project also provides simplified geometry display primitives to allow new developers to concentrate on the particular task in which they are interested rather than forcing them to re-implement basic geometry display mechanisms.
115 OpenGLContext 2.x The project also provides simplified geometry display primitives to allow new developers to concentrate on the particular task in which they are interested rather than forcing them to re-implement basic geometry display mechanisms. Taking advantage of this simplified environment, the project provides a number of testing modules
116 OpenGLContext 2.x The project also provides simplified geometry display primitives to allow new developers to concentrate on the particular task in which they are interested rather than forcing them to re-implement basic geometry display mechanisms. Taking advantage of this simplified environment, the project provides a number of testing modules These testing modules should operate under any of the fully functional GUI contexts (note that there are unfinished contexts).
117 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x
118 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders
119 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects
120 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects
121 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries
122 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame
123 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython
124 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython GLUT
125 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython GLUT Qt (in the OpenGLContext_qt project)
126 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython GLUT Qt (in the OpenGLContext_qt project)
127 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython GLUT Qt (in the OpenGLContext_qt project) Rendering common scenegraph objects
128 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython GLUT Qt (in the OpenGLContext_qt project) Rendering common scenegraph objects geometry
129 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython GLUT Qt (in the OpenGLContext_qt project) Rendering common scenegraph objects geometry point-sets
130 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython GLUT Qt (in the OpenGLContext_qt project) Rendering common scenegraph objects geometry point-sets line-sets
131 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython GLUT Qt (in the OpenGLContext_qt project) Rendering common scenegraph objects geometry point-sets line-sets face-sets
132 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython GLUT Qt (in the OpenGLContext_qt project) Rendering common scenegraph objects geometry point-sets line-sets face-sets polygonal text
133 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython GLUT Qt (in the OpenGLContext_qt project) Rendering common scenegraph objects geometry point-sets line-sets face-sets polygonal text trimmed NURBs
134 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython GLUT Qt (in the OpenGLContext_qt project) Rendering common scenegraph objects geometry point-sets line-sets face-sets polygonal text trimmed NURBs basic particle systems
135 OpenGLContext 2.x (Feature set) Testing and learning environment for PyOpenGL and Python 2.x Shaders Vertex Buffer Objects Pixel Buffer Objects PyOpenGL Usage with Common GUI Libraries Pygame wxpython GLUT Qt (in the OpenGLContext_qt project) Rendering common scenegraph objects geometry point-sets line-sets face-sets polygonal text trimmed NURBs basic particle systems extruded shapes (via GLE)
136 OpenGLContext 2.x (Feature set)
137 OpenGLContext 2.x (Feature set) materials and textures
138 OpenGLContext 2.x (Feature set) materials and textures mip-mapping
139 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing
140 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL
141 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms
142 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices
143 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds
144 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds solid-colour
145 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds solid-colour spherical
146 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds solid-colour spherical image-cube
147 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds solid-colour spherical image-cube lights
148 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds solid-colour spherical image-cube lights
149 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds solid-colour spherical image-cube lights glblend-based (sorted) transparent-geometry rendering
150 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds solid-colour spherical image-cube lights glblend-based (sorted) transparent-geometry rendering Color-id-rendered mouse selection and interaction
151 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds solid-colour spherical image-cube lights glblend-based (sorted) transparent-geometry rendering Color-id-rendered mouse selection and interaction Frustum culling
152 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds solid-colour spherical image-cube lights glblend-based (sorted) transparent-geometry rendering Color-id-rendered mouse selection and interaction Frustum culling hierarchic axis-aligned bounding boxes
153 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds solid-colour spherical image-cube lights glblend-based (sorted) transparent-geometry rendering Color-id-rendered mouse selection and interaction Frustum culling hierarchic axis-aligned bounding boxes frustum extraction from the combined model-view matrix
154 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds solid-colour spherical image-cube lights glblend-based (sorted) transparent-geometry rendering Color-id-rendered mouse selection and interaction Frustum culling hierarchic axis-aligned bounding boxes frustum extraction from the combined model-view matrix glstencilbuffer-based shadow rendering (defunct)
155 OpenGLContext 2.x (Feature set) materials and textures mip-mapping multi-texturing loading from disk with PIL transforms incl. support for forward and reverse transf matrices backgrounds solid-colour spherical image-cube lights glblend-based (sorted) transparent-geometry rendering Color-id-rendered mouse selection and interaction Frustum culling hierarchic axis-aligned bounding boxes frustum extraction from the combined model-view matrix glstencilbuffer-based shadow rendering (defunct) Tessellating polygons
156 Examples of OpenGL programming (NeHe) NeHe Translations These tutorials are translations of the famous "NeHe" series of tutorials. These are low-level introductory tutorials which generally use the legacy OpenGL API. The linked original tutorials are very gentle and thorough.
157 Examples of OpenGL programming (NeHe) NeHe Translations These tutorials are translations of the famous "NeHe" series of tutorials. These are low-level introductory tutorials which generally use the legacy OpenGL API. The linked original tutorials are very gentle and thorough. 1. NeHe1
158 Examples of OpenGL programming (NeHe) NeHe Translations These tutorials are translations of the famous "NeHe" series of tutorials. These are low-level introductory tutorials which generally use the legacy OpenGL API. The linked original tutorials are very gentle and thorough. 1. NeHe1 2. NeHe2
159 Examples of OpenGL programming (NeHe) NeHe Translations These tutorials are translations of the famous "NeHe" series of tutorials. These are low-level introductory tutorials which generally use the legacy OpenGL API. The linked original tutorials are very gentle and thorough. 1. NeHe1 2. NeHe2 3. NeHe3
160 Examples of OpenGL programming (NeHe) NeHe Translations These tutorials are translations of the famous "NeHe" series of tutorials. These are low-level introductory tutorials which generally use the legacy OpenGL API. The linked original tutorials are very gentle and thorough. 1. NeHe1 2. NeHe2 3. NeHe3 4. NeHe4
161 Examples of OpenGL programming (NeHe) NeHe Translations These tutorials are translations of the famous "NeHe" series of tutorials. These are low-level introductory tutorials which generally use the legacy OpenGL API. The linked original tutorials are very gentle and thorough. 1. NeHe1 2. NeHe2 3. NeHe3 4. NeHe4 5. NeHe5
162
Today s Agenda. Basic design of a graphics system. Introduction to OpenGL
Today s Agenda Basic design of a graphics system Introduction to OpenGL Image Compositing Compositing one image over another is most common choice can think of each image drawn on a transparent plastic
More informationERKELEY DAVIS IRVINE LOS ANGELES RIVERSIDE SAN DIEGO SAN FRANCISCO EECS 104. Fundamentals of Computer Graphics. OpenGL
ERKELEY DAVIS IRVINE LOS ANGELES RIVERSIDE SAN DIEGO SAN FRANCISCO SANTA BARBARA SANTA CRUZ EECS 104 Fundamentals of Computer Graphics OpenGL Slides courtesy of Dave Shreine, Ed Angel and Vicki Shreiner
More information2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT
COMP27112 Computer Graphics and Image Processing 2: Introducing image synthesis Toby.Howard@manchester.ac.uk 1 Introduction In these notes we ll cover: Some orientation how did we get here? Graphics system
More informationComputer Graphics. Bing-Yu Chen National Taiwan University
Computer Graphics Bing-Yu Chen National Taiwan University Introduction to OpenGL General OpenGL Introduction An Example OpenGL Program Drawing with OpenGL Transformations Animation and Depth Buffering
More informationIntroduction. What s New in This Edition
Introduction Welcome to the fourth edition of the OpenGL SuperBible. For more than ten years, we have striven to provide the world s best introduction to not only OpenGL, but 3D graphics programming in
More information3D Graphics and OpenGl. First Steps
3D Graphics and OpenGl First Steps Rendering of 3D Graphics Objects defined in (virtual/mathematical) 3D space. Rendering of 3D Graphics Objects defined in (virtual/mathematical) 3D space. We see surfaces
More informationCurves: OpenGL Evaluators - Intro
Curves: OpenGL Evaluators - Intro Evaluators are used to describe polynomials, splines, curved surfaces of any degree Based on Bézier curves If want to use another curve form, programmer must provide code
More informationVR-programming tools (procedural) More VRML later in this course! (declarative)
Realtime 3D Computer Graphics & Virtual Reality OpenGL Introduction VR-programming Input and display devices are the main hardware interface to users Immersion embeds users through the generation of live-like
More informationAutomatic Creation of Define.xml for ADaM
Automatic Creation of Define.xml for ADaM Alessia Sacco, Statistical Programmer www.valos.it info@valos.it 1 Indice Define.xml Pinnacle 21 Community Valos ADaM Metadata 2 Define.xml Cos è: Case Report
More informationHE COMPLETE OPENGL PROGI FOR WINDOW WIND
HE COMPLETE OPENGL PROGI FOR WINDOW WIND WAITC GROUP PRESS. A Division of Sams Publishing Corte Madera CA Table of Contents FOREWORD xxii INTRODUCTION xxiii PART I: INTRODUCTION TO OPENGL 1 CHAPTER 1:
More informationLecture 4 of 41. Lab 1a: OpenGL Basics
Lab 1a: OpenGL Basics William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://snipurl.com/1y5gc Course web site: http://www.kddresearch.org/courses/cis636 Instructor
More informationOpenGL refresher. Advanced Computer Graphics 2012
Advanced Computer Graphics 2012 What you will see today Outline General OpenGL introduction Setting up: GLUT and GLEW Elementary rendering Transformations in OpenGL Texture mapping Programmable shading
More informationProgramming using OpenGL: A first Introduction
Programming using OpenGL: A first Introduction CMPT 361 Introduction to Computer Graphics Torsten Möller Machiraju/Zhang/Möller 1 Today Overview GL, GLU, GLUT, and GLUI First example OpenGL functions and
More informationRECITATION - 1. Ceng477 Fall
RECITATION - 1 Ceng477 Fall 2007-2008 2/ 53 Agenda General rules for the course General info on the libraries GLUT OpenGL GLUI Details about GLUT Functions Probably we will not cover this part 3/ 53 General
More informationPrecept 2 Aleksey Boyko February 18, 2011
Precept 2 Aleksey Boyko February 18, 2011 Getting started Initialization Drawing Transformations Cameras Animation Input Keyboard Mouse Joystick? Textures Lights Programmable pipeline elements (shaders)
More informationCHAPTER 1 Graphics Systems and Models 3
?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........
More informationGESTIONE DEL BACKGROUND. Programmazione Web 1
GESTIONE DEL BACKGROUND Programmazione Web 1 Background background-color opacity Immagini nel background background-image background-repeat background-posi:on background-a;achment Programmazione Web 2
More informationGrafica Computazionale: Lezione 30. Grafica Computazionale. Hiding complexity... ;) Introduction to OpenGL. lezione30 Introduction to OpenGL
Grafica Computazionale: Lezione 30 Grafica Computazionale lezione30 Introduction to OpenGL Informatica e Automazione, "Roma Tre" May 20, 2010 OpenGL Shading Language Introduction to OpenGL OpenGL (Open
More informationComputer Graphics: Programming, Problem Solving, and Visual Communication
Computer Graphics: Programming, Problem Solving, and Visual Communication Dr. Steve Cunningham Computer Science Department California State University Stanislaus Turlock, CA 95382 copyright 2002, Steve
More informationOpenGL/GLUT Intro. Week 1, Fri Jan 12
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner OpenGL/GLUT Intro Week 1, Fri Jan 12 http://www.ugrad.cs.ubc.ca/~cs314/vjan2007 News Labs start next week Reminder:
More informationComputer Graphics 1 Computer Graphics 1
Projects: an example Developed by Nate Robbins Shapes Tutorial What is OpenGL? Graphics rendering API high-quality color images composed of geometric and image primitives window system independent operating
More informationIntroduction to Computer Graphics with OpenGL/GLUT
Introduction to Computer Graphics with OpenGL/GLUT What is OpenGL? A software interface to graphics hardware Graphics rendering API (Low Level) High-quality color images composed of geometric and image
More informationCS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS SPRING 2016 DR. MICHAEL J. REALE
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS SPRING 2016 DR. MICHAEL J. REALE COMPUTER GRAPHICS DEFINITION AND AREAS Computer graphics creating and manipulating images using computers
More informationGUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON
Deferred Rendering in Killzone 2 Michal Valient Senior Programmer, Guerrilla Talk Outline Forward & Deferred Rendering Overview G-Buffer Layout Shader Creation Deferred Rendering in Detail Rendering Passes
More informationThe Application Stage. The Game Loop, Resource Management and Renderer Design
1 The Application Stage The Game Loop, Resource Management and Renderer Design Application Stage Responsibilities 2 Set up the rendering pipeline Resource Management 3D meshes Textures etc. Prepare data
More informationProgrammi di utilità
Programmi di utilità La classe SystemData per il calcolo dei tempi e della occupazione di memoria Per calcolare i tempi e la occupazione di memoria è necessario interagire con il sistema operativo, questo
More informationTo Do. Computer Graphics (Fall 2008) Course Outline. Course Outline. Methodology for Lecture. Demo: Surreal (HW 3)
Computer Graphics (Fall 2008) COMS 4160, Lecture 9: OpenGL 1 http://www.cs.columbia.edu/~cs4160 To Do Start thinking (now) about HW 3. Milestones are due soon. Course Course 3D Graphics Pipeline 3D Graphics
More informationOpenGL. Toolkits.
http://www.opengl.org OpenGL Open Graphics Library Graphics API Delivered with UNIX, Win9x/2000/Me/Nt/Xp, Mac OS Direct3D (DirectX) is only Windows Utilizes the window system and event handling of the
More informationCSC Graphics Programming. Budditha Hettige Department of Statistics and Computer Science
CSC 307 1.0 Graphics Programming Department of Statistics and Computer Science Graphics Programming 2 Common Uses for Computer Graphics Applications for real-time 3D graphics range from interactive games
More informationMW MOC SUPPORTING AND TROUBLESHOOTING WINDOWS 10
MW10-3 - MOC 10982 - SUPPORTING AND TROUBLESHOOTING WINDOWS 10 Categoria: Windows 10 INFORMAZIONI SUL CORSO Durata: Categoria: Qualifica Istruttore: Dedicato a: Produttore: 5 Giorni Windows 10 Microsoft
More informationCCSI 3161 Project Flight Simulator
1/11 CCSI 3161 Project Flight Simulator Objectives: To develop a significant OpenGL animation application. Due date: Dec 3 rd, Dec 1st, 11:59pm. No late submission will be accepted since the grades need
More informationIntroduction to OpenGL. CSCI 4229/5229 Computer Graphics Fall 2012
Introduction to OpenGL CSCI 4229/5229 Computer Graphics Fall 2012 OpenGL by Example Learn OpenGL by reading nehe.gamedev.net Excellent free tutorial Code available for many platforms and languages OpenGL:
More informationEsempio con Google Play tore Example with Google Play tore
Guida all installazione ed uso dell App VR Tour Camerata Picena Per installare l App occorre aprire lo Store del vostro smartphone (Play Store o App Store) e cercare l App con parola chiave Camerata Picena.
More informationTDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students)
TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students) Saturday, January 13 th, 2018, 08:30-12:30 Examiner Ulf Assarsson, tel. 031-772 1775 Permitted Technical Aids None, except
More informationExercise 1 Introduction to OpenGL
Exercise 1 Introduction to OpenGL What we are going to do OpenGL Glut Small Example using OpenGl and Glut Alexandra Junghans 2 What is OpenGL? OpenGL Two Parts most widely used and supported graphics API
More informationCS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012
CS450/550 Pipeline Architecture Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012 0 Objectives Learn the basic components of a graphics system Introduce the OpenGL pipeline
More informationCONTENTS... 1 OPENGL REFERENCE MANUAL...
Contents CONTENTS... 1 OPENGL REFERENCE MANUAL... 5 THE OFFICIAL REFERENCE DOCUMENT FOR OPENGL, RELEASE 1... 5 PREFACE... 6 WHAT YOU SHOULD KNOW BEFORE READING THIS MANUAL... 6 ACKNOWLEDGMENTS... 7 CHAPTER
More informationReal-Time Rendering (Echtzeitgraphik) Michael Wimmer
Real-Time Rendering (Echtzeitgraphik) Michael Wimmer wimmer@cg.tuwien.ac.at Walking down the graphics pipeline Application Geometry Rasterizer What for? Understanding the rendering pipeline is the key
More informationAPI Background. Prof. George Wolberg Dept. of Computer Science City College of New York
API Background Prof. George Wolberg Dept. of Computer Science City College of New York Objectives Graphics API history OpenGL API OpenGL function format Immediate Mode vs Retained Mode Examples The Programmer
More informationLectures OpenGL Introduction
Lectures OpenGL Introduction By Tom Duff Pixar Animation Studios Emeryville, California and George Ledin Jr Sonoma State University Rohnert Park, California 2004, Tom Duff and George Ledin Jr 1 What is
More informationCS451Real-time Rendering Pipeline
1 CS451Real-time Rendering Pipeline JYH-MING LIEN DEPARTMENT OF COMPUTER SCIENCE GEORGE MASON UNIVERSITY Based on Tomas Akenine-Möller s lecture note You say that you render a 3D 2 scene, but what does
More informationOverview. Java and OpenSceneGraph. Introduction. OpenSceneGraph. Introduction Scene graph structure
Overview Java and OpenSceneGraph Introduction Scene graph structure Node types Example Vectors, Matrices and Transformations Events Picking Introduction A scene graph system Used for Visual simulations,
More informationOpenGL Essentials Training
OpenGL Essentials Training 3-day session Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending and
More informationInformation Coding / Computer Graphics, ISY, LiTH. OpenGL! ! where it fits!! what it contains!! how you work with it 11(40)
11(40) Information Coding / Computer Graphics, ISY, LiTH OpenGL where it fits what it contains how you work with it 11(40) OpenGL The cross-platform graphics library Open = Open specification Runs everywhere
More information11. Quadrics in OpenGL
11. Quadrics in OpenGL GLU provides routines to model and render tessellated, polygonal approximations of spheres, cylinders, disks and parts of disks These quadric surfaces are described by the following
More informationLecture 2. Determinants. Ax = 0. a 11 x 1 + a 12 x a 1n x n = 0 a 21 x 1 + a 22 x a 2n x n = 0
A = a 11 a 12... a 1n a 21 a 22... a 2n. a n1 a n2... a nn x = x 1 x 2. x n Lecture 2 Math Review 2 Introduction to OpenGL Ax = 0 a 11 x 1 + a 12 x 2 +... + a 1n x n = 0 a 21 x 1 + a 22 x 2 +... + a 2n
More informationImage Processing. Geometry Processing. Reading: (Not really covered in our text. See Sects 18.1, 18.2.) Overview: Display
CMSC 427: Chapter 2 Graphics Libraries and OpenGL Reading: (Not really covered in our text. See Sects 18.1, 18.2.) Overview: Graphics Libraries OpenGL and its Structure Drawing Primitives in OpenGL GLUT
More informationComputer Graphics Course 2005
Computer Graphics Course 2005 Introduction to GLUT, GLU and OpenGL Administrative Stuff Teaching Assistant: Rony Goldenthal Reception Hour: Wed. 18:00 19:00 Room 31 (Ross 1) Questions: E-mail: cg@cs Newsgroups:
More informationOpenGL and GLUT based library for Image Processing (GLIP)
i OpenGL and GLUT based library for Image Processing (GLIP) Pre-Version 0.6 (Perversion) Antonio Marín-Hernández Universidad Veracruzana, México & LAAS CNRS, France February 2004 ii OpenGL is a trademark
More informationIstruzioni passo passo per creare qualsiasi CUSTOM AWARD con BBLogger How to create step by step any CUSTOM AWARD by BBLogger
Istruzioni passo passo per creare qualsiasi CUSTOM AWARD con BBLogger How to create step by step any CUSTOM AWARD by BBLogger Aprire l applicazione e con il mouse andare sul pulsante custom award e cliccarci
More informationViewport 2.0 API Porting Guide for Locators
Viewport 2.0 API Porting Guide for Locators Introduction This document analyzes the choices for porting plug-in locators (MPxLocatorNode) to Viewport 2.0 mostly based on the following factors. Portability:
More informationComputer Graphics, Chapt 08
Computer Graphics, Chapt 08 Creating an Image Components, parts of a scene to be displayed Trees, terrain Furniture, walls Store fronts and street scenes Atoms and molecules Stars and galaxies Describe
More informationLecture 2 2D transformations Introduction to OpenGL
Lecture 2 2D transformations Introduction to OpenGL OpenGL where it fits what it contains how you work with it OpenGL parts: GL = Graphics Library (core lib) GLU = GL Utilities (always present) GLX, AGL,
More informationGraphics Pipeline & APIs
Graphics Pipeline & APIs CPU Vertex Processing Rasterization Fragment Processing glclear (GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT); glpushmatrix (); gltranslatef (-0.15, -0.15, solidz); glmaterialfv(gl_front,
More informationCS Computer Graphics: Intro to OpenGL
CS 543 - Computer Graphics: Intro to OpenGL by Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) OpenGL Basics Last time: What is Computer Graphics? What is a graphics library What to expect
More informationCS Computer Graphics: Intro to OpenGL
CS 543 - Computer Graphics: Intro to OpenGL by Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) OpenGL Basics Last time: What is Computer Graphics? What is a graphics library What to expect
More informationChapter 9 Formattazione Input/Output
1 Chapter 9 Formattazione Input/Output 2 Flussi 9.2 Flussi Sequenze di caratteri organizzate in linee Ogni linea consiste di zero o più caratteri e finisce con il carattere newline Lo standard ANSI C deve
More informationSAFE DESIGNED IN ITALY CASSEFORTI PER HOTEL HOTEL SAFES
DESIGNED IN ITALY CASSEFORTI PER HOTEL HOTEL S : I MODELLI : MODELS TOP OPEN DRAWER Innovativa tastiera touch e display led integrato nella porta New touch keypad and stealthy LED display L apertura dall
More informationAn Interactive Introduction to OpenGL Programming
An Interactive Introduction to OpenGL Programming Course # 29 Dave Shreiner Ed Angel Vicki Shreiner Table of Contents Introduction...iv Prerequisites...iv Topics...iv Presentation Course Notes...vi An
More informationAPI for creating a display window and using keyboard/mouse interations. See RayWindow.cpp to see how these are used for Assignment3
OpenGL Introduction Introduction OpenGL OpenGL is an API for computer graphics. Hardware-independent Windowing or getting input is not included in the API Low-level Only knows about triangles (kind of,
More informationRendering Objects. Need to transform all geometry then
Intro to OpenGL Rendering Objects Object has internal geometry (Model) Object relative to other objects (World) Object relative to camera (View) Object relative to screen (Projection) Need to transform
More informationProgramming with OpenGL Part 1: Background
Programming with OpenGL Part 1: Background Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico 1 Objectives Development of the OpenGL API
More informationOpenGL: A Practical Introduction. (thanks, Mark Livingston!)
OpenGL: A Practical Introduction (thanks, Mark Livingston!) Outline What is OpenGL? Auxiliary libraries Basic code structure Rendering Practical hints Virtual world operations OpenGL Definitions Software
More informationFoundations of 3D Graphics Programming
Foundations of 3D Graphics Programming Jim X. Chen Edward J. Wegman Foundations of 3D Graphics Programming Using JOGL and Java3D With 139 Figures Jim X. Chen, PhD Computer Science Department George Mason
More informationOpenGL SUPERBIBLE. Fifth Edition. Comprehensive Tutorial and Reference. Richard S. Wright, Jr. Nicholas Haemel Graham Sellers Benjamin Lipchak
OpenGL SUPERBIBLE Fifth Edition Comprehensive Tutorial and Reference Richard S. Wright, Jr. Nicholas Haemel Graham Sellers Benjamin Lipchak AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San
More informationBlue colour text questions Black colour text sample answers Red colour text further explanation or references for the sample answers
Blue colour text questions Black colour text sample answers Red colour text further explanation or references for the sample answers Question 1. a) (5 marks) Explain the OpenGL synthetic camera model,
More informationEarly History of APIs. PHIGS and X. SGI and GL. Programming with OpenGL Part 1: Background. Objectives
Programming with OpenGL Part 1: Background Early History of APIs Objectives Development of the OpenGL API OpenGL Architecture - OpenGL as a state machine Functions - Types -Formats Simple program IFIPS
More informationComp 410/510 Computer Graphics Spring Programming with OpenGL Part 2: First Program
Comp 410/510 Computer Graphics Spring 2017 Programming with OpenGL Part 2: First Program Objectives Refine the first program Introduce a standard program structure - Initialization Program Structure Most
More informationDefinizione dei costru'ori
Costru'ori Definizione dei costru'ori Se per una classe A non scrivo nessun costru'ore, il sistema automa9camente crea il costru'ore A(); Se invece definisco almeno un costru'ore non void, ad es. A(int
More informationChapter Answers. Appendix A. Chapter 1. This appendix provides answers to all of the book s chapter review questions.
Appendix A Chapter Answers This appendix provides answers to all of the book s chapter review questions. Chapter 1 1. What was the original name for the first version of DirectX? B. Games SDK 2. Which
More informationComputer graphics MN1
Computer graphics MN1 http://www.opengl.org Todays lecture What is OpenGL? How do I use it? Rendering pipeline Points, vertices, lines,, polygons Matrices and transformations Lighting and shading Code
More informationGraphics Pipeline & APIs
3 2 4 Graphics Pipeline & APIs CPU Vertex Processing Rasterization Processing glclear (GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT); glpushmatrix (); gltranslatef (-0.15, -0.15, solidz); glmaterialfv(gl_front,
More informationDEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/
DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/2013-11-04 DEFERRED RENDERING? CONTENTS 1. The traditional approach: Forward rendering 2. Deferred rendering (DR) overview 3. Example uses of DR:
More informationGL_COLOR_BUFFER_BIT, GL_PROJECTION, GL_MODELVIEW
OpenGL Syntax Functions have prefix gl and initial capital letters for each word glclearcolor(), glenable(), glpushmatrix() glu for GLU functions glulookat(), gluperspective() constants begin with GL_,
More informationINFORMATICA INDUSTRIALE
INFORMATICA INDUSTRIALE Lezione 2 Prof. Christian Forlani forlani@disco.unimib.it Tutor: Stefano Brusamolino brusamolino@ira.disco.unimib.it Device Structure: Core» Oscillator» Reset» Architecture» CPU
More informationRasterization Overview
Rendering Overview The process of generating an image given a virtual camera objects light sources Various techniques rasterization (topic of this course) raytracing (topic of the course Advanced Computer
More informationMW MOC INSTALLING AND CONFIGURING WINDOWS 10
MW10-4 - MOC 20698 - INSTALLING AND CONFIGURING WINDOWS 10 Categoria: Windows 10 INFORMAZIONI SUL CORSO Durata: Categoria: Qualifica Istruttore: Dedicato a: Produttore: 5 Giorni Windows 10 Microsoft Certified
More informationSAFE. DESIGNED in italy CASSEFORTI PER HOTEL HOTEL SAFES
SAFE DESIGNED in italy CASSEFORTI PER HOTEL HOTEL SAFES SAFE TOP OPEN SAFE DRAWER Innovativo sistema touch e display led integrato nella porta attivabile con tast New touch keypad and stealthy LED display,
More informationChapter 1 Introduction
Graphics & Visualization Chapter 1 Introduction Graphics & Visualization: Principles & Algorithms Brief History Milestones in the history of computer graphics: 2 Brief History (2) CPU Vs GPU 3 Applications
More informationScene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development
Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development Chap. 5 Scene Management Overview Scene Management vs Rendering This chapter is about rendering
More informationComputer graphic -- Programming with OpenGL 2
Computer graphic -- Programming with OpenGL 2 OpenGL OpenGL (Open Graphics Library) a cross-language, multi-platform API for rendering 2D and 3D computer graphics. The API is typically used to interact
More informationOptimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June
Optimizing and Profiling Unity Games for Mobile Platforms Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June 1 Agenda Introduction ARM and the presenter Preliminary knowledge
More informationDirect Rendering of Trimmed NURBS Surfaces
Direct Rendering of Trimmed NURBS Surfaces Hardware Graphics Pipeline 2/ 81 Hardware Graphics Pipeline GPU Video Memory CPU Vertex Processor Raster Unit Fragment Processor Render Target Screen Extended
More informationEECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing
EECE 478 Rasterization & Scenes Rasterization Learning Objectives Be able to describe the complete graphics pipeline. Describe the process of rasterization for triangles and lines. Compositing Manipulate
More informationChapter 3. Texture mapping. Learning Goals: Assignment Lab 3: Implement a single program, which fulfills the requirements:
Chapter 3 Texture mapping Learning Goals: 1. To understand texture mapping mechanisms in VRT 2. To import external textures and to create new textures 3. To manipulate and interact with textures 4. To
More informationMany rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.
1 2 Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters. Crowd rendering in large environments presents a number of challenges,
More informationCSE4030 Introduction to Computer Graphics
CSE4030 Introduction to Computer Graphics Dongguk University Jeong-Mo Hong Timetable 00:00~00:10 Introduction (English) 00:10~00:50 Topic 1 (English) 00:50~00:60 Q&A (English, Korean) 01:00~01:40 Topic
More informationSome Resources. What won t I learn? What will I learn? Topics
CSC 706 Computer Graphics Course basics: Instructor Dr. Natacha Gueorguieva MW, 8:20 pm-10:00 pm Materials will be available at www.cs.csi.cuny.edu/~natacha 1 midterm, 2 projects, 1 presentation, homeworks,
More informationThe Rendering Pipeline (1)
The Rendering Pipeline (1) Alessandro Martinelli alessandro.martinelli@unipv.it 30 settembre 2014 The Rendering Pipeline (1) Rendering Architecture First Rendering Pipeline Second Pipeline: Illumination
More information04MAC03/03/01/001 RIMADIMA an INTERREG III B CADSES NP, An EU-funded project managed by the European Agency for Reconstruction
04MAC03/03/01/001 RIMADIMA an INTERREG III B CADSES NP, RIMADIMA Risk-, Disaster-Management & prevention of natural hazards in mountainous and/or forested regions WP-Nr.:4 Action-nr.: 4.4, 4.5 Journal
More informationCOMP3421 Computer Graphics
COMP3421 Computer Graphics Introduction Angela Finlayson Email: angf@cse.unsw.edu.au Computer Graphics Algorithms to automatically render images from models. Light Camera hi mum Objects model image Computer
More information3D computer graphics: geometric modeling of objects in the computer and rendering them
SE313: Computer Graphics and Visual Programming Computer Graphics Notes Gazihan Alankus, Spring 2012 Computer Graphics 3D computer graphics: geometric modeling of objects in the computer and rendering
More informationGrafica e non solo: Java FX
Grafica e non solo: Java FX Creazione di una Applicazione JavaFX public class JavaFXApplicationTEST extends Application { @Override public void start(stage primarystage) { Button btn = new Button(); btn.settext("say
More informationGrafica Computazionale
Grafica Computazionale lezione36 Informatica e Automazione, "Roma Tre" June 3, 2010 Grafica Computazionale: Lezione 33 Textures Introduction Steps in Texture Mapping A Sample Program Texturing algorithms
More informationOpen Scene Graph Lecture Note #1
Setup OSG Open Scene Graph Lecture Note #1 448430 Spring 2009 4/6/2009 Kyoung Shin Park Multimedia Engineering Dankook University Download OSG 2.6.0 http://dis.dankook.ac.kr/lectures/msd09/osg-2.6.0.zip
More informationCS Computer Graphics: OpenGL, Continued
CS 543 - Computer Graphics: OpenGL, Continued by Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) Last time. OpenGL set up Basic structure OpenGL skeleton Callback functions, etc. R.W.
More informationCS Computer Graphics: OpenGL, Continued
CS 543 - Computer Graphics: OpenGL, Continued by Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) Last time. OpenGL set up Basic structure OpenGL skeleton Callback functions, etc. R.W.
More informationGraphics and Interaction Rendering pipeline & object modelling
433-324 Graphics and Interaction Rendering pipeline & object modelling Department of Computer Science and Software Engineering The Lecture outline Introduction to Modelling Polygonal geometry The rendering
More informationComputergrafik. Matthias Zwicker. Herbst 2010
Computergrafik Matthias Zwicker Universität Bern Herbst 2010 Today Bump mapping Shadows Shadow mapping Shadow mapping in OpenGL Bump mapping Surface detail is often the result of small perturbations in
More informationLECTURE 02 OPENGL API
COMPUTER GRAPHICS LECTURE 02 OPENGL API Still from Pixar s Inside Out, 2015 IMRAN IHSAN ASSISTANT PROFESSOR WWW.IMRANIHSAN.COM EARLY HISTORY OF APIS IFIPS (1973) formed two committees to come up with a
More information