Grafica Computazionale

Size: px
Start display at page:

Download "Grafica Computazionale"

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 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 information

ERKELEY 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 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 information

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

2: 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 information

Computer Graphics. Bing-Yu Chen National Taiwan University

Computer 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 information

Introduction. What s New in This Edition

Introduction. 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 information

3D Graphics and OpenGl. First Steps

3D 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 information

Curves: OpenGL Evaluators - Intro

Curves: 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 information

VR-programming tools (procedural) More VRML later in this course! (declarative)

VR-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 information

Automatic Creation of Define.xml for ADaM

Automatic 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 information

HE COMPLETE OPENGL PROGI FOR WINDOW WIND

HE 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 information

Lecture 4 of 41. Lab 1a: OpenGL Basics

Lecture 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 information

OpenGL refresher. Advanced Computer Graphics 2012

OpenGL 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 information

Programming using OpenGL: A first Introduction

Programming 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 information

RECITATION - 1. Ceng477 Fall

RECITATION - 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 information

Precept 2 Aleksey Boyko February 18, 2011

Precept 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 information

CHAPTER 1 Graphics Systems and Models 3

CHAPTER 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 information

GESTIONE DEL BACKGROUND. Programmazione Web 1

GESTIONE 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 information

Grafica Computazionale: Lezione 30. Grafica Computazionale. Hiding complexity... ;) Introduction to OpenGL. lezione30 Introduction to OpenGL

Grafica 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 information

Computer Graphics: Programming, Problem Solving, and Visual Communication

Computer 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 information

OpenGL/GLUT Intro. Week 1, Fri Jan 12

OpenGL/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 information

Computer Graphics 1 Computer Graphics 1

Computer 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 information

Introduction to Computer Graphics with OpenGL/GLUT

Introduction 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 information

CS 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 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 information

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON

GUERRILLA 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 information

The Application Stage. The Game Loop, Resource Management and Renderer Design

The 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 information

Programmi di utilità

Programmi 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 information

To Do. Computer Graphics (Fall 2008) Course Outline. Course Outline. Methodology for Lecture. Demo: Surreal (HW 3)

To 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 information

OpenGL. Toolkits.

OpenGL. 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 information

CSC Graphics Programming. Budditha Hettige Department of Statistics and Computer Science

CSC 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 information

MW MOC SUPPORTING AND TROUBLESHOOTING WINDOWS 10

MW 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 information

CCSI 3161 Project Flight Simulator

CCSI 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 information

Introduction to OpenGL. CSCI 4229/5229 Computer Graphics Fall 2012

Introduction 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 information

Esempio con Google Play tore Example with Google Play tore

Esempio 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 information

TDA362/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) 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 information

Exercise 1 Introduction to OpenGL

Exercise 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 information

CS450/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 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 information

CONTENTS... 1 OPENGL REFERENCE MANUAL...

CONTENTS... 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 information

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Real-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 information

API 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 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 information

Lectures OpenGL Introduction

Lectures 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 information

CS451Real-time Rendering Pipeline

CS451Real-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 information

Overview. Java and OpenSceneGraph. Introduction. OpenSceneGraph. Introduction Scene graph structure

Overview. 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 information

OpenGL Essentials Training

OpenGL 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 information

Information Coding / Computer Graphics, ISY, LiTH. OpenGL! ! where it fits!! what it contains!! how you work with it 11(40)

Information 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 information

11. Quadrics in OpenGL

11. 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 information

Lecture 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

Lecture 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 information

Image Processing. Geometry Processing. Reading: (Not really covered in our text. See Sects 18.1, 18.2.) Overview: Display

Image 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 information

Computer Graphics Course 2005

Computer 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 information

OpenGL and GLUT based library for Image Processing (GLIP)

OpenGL 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 information

Istruzioni 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 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 information

Viewport 2.0 API Porting Guide for Locators

Viewport 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 information

Computer Graphics, Chapt 08

Computer 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 information

Lecture 2 2D transformations Introduction to OpenGL

Lecture 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 information

Graphics Pipeline & APIs

Graphics 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 information

CS Computer Graphics: Intro to OpenGL

CS 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 information

CS Computer Graphics: Intro to OpenGL

CS 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 information

Chapter 9 Formattazione Input/Output

Chapter 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 information

SAFE DESIGNED IN ITALY CASSEFORTI PER HOTEL HOTEL SAFES

SAFE 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 information

An Interactive Introduction to OpenGL Programming

An 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 information

API for creating a display window and using keyboard/mouse interations. See RayWindow.cpp to see how these are used for Assignment3

API 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 information

Rendering Objects. Need to transform all geometry then

Rendering 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 information

Programming with OpenGL Part 1: Background

Programming 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 information

OpenGL: A Practical Introduction. (thanks, Mark Livingston!)

OpenGL: 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 information

Foundations of 3D Graphics Programming

Foundations 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 information

OpenGL 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 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 information

Blue 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 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 information

Early History of APIs. PHIGS and X. SGI and GL. Programming with OpenGL Part 1: Background. Objectives

Early 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 information

Comp 410/510 Computer Graphics Spring Programming with OpenGL Part 2: First Program

Comp 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 information

Definizione dei costru'ori

Definizione 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 information

Chapter Answers. Appendix A. Chapter 1. This appendix provides answers to all of the book s chapter review questions.

Chapter 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 information

Computer graphics MN1

Computer 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 information

Graphics Pipeline & APIs

Graphics 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 information

DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/

DEFERRED 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 information

GL_COLOR_BUFFER_BIT, GL_PROJECTION, GL_MODELVIEW

GL_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 information

INFORMATICA INDUSTRIALE

INFORMATICA 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 information

Rasterization Overview

Rasterization 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 information

MW MOC INSTALLING AND CONFIGURING WINDOWS 10

MW 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 information

SAFE. DESIGNED in italy CASSEFORTI PER HOTEL HOTEL SAFES

SAFE. 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 information

Chapter 1 Introduction

Chapter 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 information

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

Scene 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 information

Computer graphic -- Programming with OpenGL 2

Computer 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 information

Optimizing 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 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 information

Direct Rendering of Trimmed NURBS Surfaces

Direct 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 information

EECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing

EECE 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 information

Chapter 3. Texture mapping. Learning Goals: Assignment Lab 3: Implement a single program, which fulfills the requirements:

Chapter 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 information

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.

Many 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 information

CSE4030 Introduction to Computer Graphics

CSE4030 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 information

Some Resources. What won t I learn? What will I learn? Topics

Some 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 information

The Rendering Pipeline (1)

The 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 information

04MAC03/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, 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 information

COMP3421 Computer Graphics

COMP3421 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 information

3D computer graphics: geometric modeling of objects in the computer and rendering them

3D 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 information

Grafica e non solo: Java FX

Grafica 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 information

Grafica Computazionale

Grafica 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 information

Open Scene Graph Lecture Note #1

Open 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 information

CS Computer Graphics: OpenGL, Continued

CS 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 information

CS Computer Graphics: OpenGL, Continued

CS 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 information

Graphics and Interaction Rendering pipeline & object modelling

Graphics 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 information

Computergrafik. Matthias Zwicker. Herbst 2010

Computergrafik. 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 information

LECTURE 02 OPENGL API

LECTURE 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