opengl
Download
Skip this Video
Download Presentation
OpenGL

Loading in 2 Seconds...

play fullscreen
1 / 16

OpenGL - PowerPoint PPT Presentation


  • 228 Views
  • Uploaded on

OpenGL. OpenGL SuperBible Second Edition http://www.inf.u-szeged.hu/oktatas/jegyzetek/KubaAttila/opengl/starthu.xml. Tematika OpenGL Primitívek létrehozása Transzformációk Megvilágítás … Előadás feldolgozása. Hasznos oldalak www.opengl.org reality.sgi.com/opengl/glut3

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' OpenGL' - rosie


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
opengl

OpenGL

OpenGL SuperBible Second Edition

http://www.inf.u-szeged.hu/oktatas/jegyzetek/KubaAttila/opengl/starthu.xml

bevezet s
Tematika

OpenGL

Primitívek létrehozása

Transzformációk

Megvilágítás

Előadás feldolgozása

Hasznos oldalak

www.opengl.org

reality.sgi.com/opengl/glut3

http://www.inf.u-szeged.hu/oktatas/jegyzetek/KubaAttila/opengl/starthu.xml

www.mesa3d.org

http://www.inf.u-szeged.hu/~tanacs/oktatas/szggraf04/szggraf04.html

Bevezetés
felt telek
Feltételek
  • Gyakorlat
    • 2 kötelező program beadása a zh írása előtt
      • Aki nem adja be a kötelező programot az nem írhat zh-t!
    • 2 ZH megírása
      • Első zh október 24-29 héten
      • Második zh december 6-10 héten
      • Az előre kiadott segédanyagokon illetve kézzel írott saját jegyzeten kívül más nem használható. Zh írása alatt hálózat hozzáférés nem lesz
      • Pót/javító zh nem lesz!!!
      • Követelmények pontosítása az előadáson
bevezet s1
OpenGL szabvány

Szoftveres felület a grafikus hardverhez

3D-s grafikus és modellező könyvtár

Portábilis

Nagyon gyors

Gyorsabb, mint egy ray tracer

SGI által tervezett és optimalizált algoritmusok

Hogyan működik az OpenGL

lépéseket kell megadni ahhoz, hogy megkapjuk az adott nézetet vagy megjelenést

200-nál több parancs és függvény

Grafikus primitívek, megvilágítás, árnyékolás, textúrázás, keveredés, átlátszóság, animálás, stb.

Nincs ablak kezelés

Nincs OpenGL file formátum

Bevezetés
bevezet s2
Általános megvalósítások

Szoftveres

Windows

GDI

Szöveg kiírás

2D-s vonal rajzolás

...

Mesa

Conformance teszt

Bevezetés

Application program

OSservices

I/Oservices

GDI

OpenGL

SoftwareRasterizer

Display/WindowingSystem

bevezet s3
Hardveres megvalósítások

Speciális hardver eszköz meghajtó

Minden OpenGL API fv. hívás a hardver meghajtóhoz megy

Néha az OpenGL funkció szoftveresen van megvalósítva a meghajtó programban

Más funkciók pedig egyenesen a hardvert használják

Bevezetés

Application program

OSservices

I/Oservices

GDI

OpenGL

HardverDriver

Display/WindowingSystem

opengl pipeline
OpenGL alkalmazás fv. hívások

Parancs puffer (pipeline)

Vertex adat

Textúra adat

...

Transzformáció és megvilágítás

Az objektumok geometriáját leíró pontok újraszámítása

Raszterizálás

Színes kép készül

OpenGL pipeline

OpenGLAPI Calls

OpenGLCommandBuffer

Flush

Transformand Lighting

Rasterization

Framebuffer

opengl llapot masina
Minden parancs azonnali hatással van az aktuális renderelési állapotra (automata)

Flag-ek

A köd be van kapcsolva?

Engedélyezett a megvilágítás?

Numerikus értékek

Függvények segítségével állíthatóak és lekérdezhetőek

OpenGL állapot ‘masina’
f ggv ny elnevez si szab lyok
Függvény elnevezési szabályok
  • <Lib prefix><Root command><Optional arg. count><Optional arg. type>

Color

gl

3

f

glColor3f(…)

opengl utility toolkit glut
Kezdetekben AUX

Kiegészítő library

Kiváltotta a GLUT

Ablakok kezelése

Eseménykezelés (pl. joystick támogatás, pop-up menük)

OpenGL függvénykészlet további kiegészítése (pl. 3D-s primitívek)

OpenGL-től független fejlesztés

Első program#include <windows.h>#include <gl\glut.h>void RenderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glFlush();}void SetupRC(void) { glClearColor(0.0f, 0.0f, 1.0f, 1.0f);}void main (void) { glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutCreateWindow(”Simple”); glutDisplayFunc(RenderScene); SetupRC(); glutMainLoop(); }

OpenGL utility toolkit (GLUT)

http://www.opengl.org

linux makefile redhat 7 3
Linux Makefile (RedHat 7.3)
  • # Makefile for OpenGL examplesAPPS = simpleOBJ = $(APPS).oSRC = $(APPS).cCFLAGS = $(C_OPTS) -I/usr/includeLIBS = -L/usr/X11R6/lib -lX11 -lXi -lXmu -lglut -lGL -lGLU -lm -lpthread application:$(APPS)clean: rm -f $(APPS) *.raw *.o core a.outrealclean: clean rm -f *~ *.bak *.BAK.SUFFIXES: c o.c.o: $(CC) -c $(CFLAGS) $<$(APPS): $(OBJ) $(CC) -o $(APPS) $(CFLAGS) $(OBJ) $(LIBS)depend: makedepend -- $(CFLAGS) $(SRC)
opengl haszn lata
Programozási könyvtár

opengl32.dll

glu32.dll

opengl32.lib

glu32.lib

gl.h, glu.h

Példa#include <windows.h> ?!#include <gl/gl.h>#include <gl/glu.h>

Adattípusok

GLbyte

GLshort

GLint, GLsizei

GLfloat, GLclampf

GLdouble, GLclampd

GLubyte, GLboolean

GLushort

GLuint, GLenum, GLbitfield

OpenGL használata
f ggv nyek az els programban
glutInitDisplayMode(unsigned int mode)

Inicializálja a megjelenítési módot

mode

GLUT_SINGLE

GLUT_DOUBLE

GLUT_RGB, GLUT_RGBA

GLUT_DEPTH

GLUT_STENCIL

GLUT_ACCUM

GLUT_APLHA

glutDisplayFunc(void *(f)(void))

Beállítja a callback fv.-t az aktuális ablakon

Átméretezés

Előtérbe kerülés

glutPostRedisplay

glFlush és glutSwapBuffers nem hívódik meg automatikusan ezután

Függvények az első programban
f ggv nyek az els programban1
void glutMainLoop(void)

Elindítja a GLUT eseménykezelő ciklusát

Nem tér vissza csak a program befejezése után

void glClear(GLbitfield mask);

Az adott puffereket törli

A puffer egy tárolási terület a kép információ számára

Mask

GL_COLOR_BUFFER_BIT

GL_DEPTH_BUFFER_BIT

GL_STENCIL_BUFFER_BIT

GL_ACCUM_BUFFER_BIT

Függvények az első programban
f ggv nyek az els programban2
void glFlush(void)

Az OpenGL parancs sort és puffereket üríti

A várakozó parancsok végrehajtódnak

void glClearColor(GLclamf r,GLclampf g, GLclampf b, GLclampf a)

Beállítja a kitöltési értéket, amit a red, green, blue és alpha (szín) pufferek törlésekor használ majd

Az értékek [0.0f, 1.0f] között lehetnek

Függvények az első programban
te skanna
#include <windows.h>#include <gl\glut.h>void RenderScene(void) { glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0f, 0.0f, 0.0f);glutWireTeapot(0.5f); glFlush();}void SetupRC(void) { glClearColor(0.0f, 0.0f, 1.0f, 1.0f);}void main (void) { glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutCreateWindow(”Teapot”); glutDisplayFunc(RenderScene); SetupRC(); glutMainLoop(); }Teáskanna
ad