OpenGL Game
08.09.2002
Kamera, procházení scénou
Výpočet FPS
Jednoduché načítání objektů ze souboru *.txt
Načítání textur ze souboru *.bmp
Kamera, procházení scénou
Rotace kamery pomocí myši
glGenLists()
wglUseFontBitmaps()
glPushAttrib()
glPopAttrib()
glListBase()
glCallLists()
glDeleteLists()
glColor3f()
glEnable(GL_BLEND)
glDisable(GL_BLEND)
glBlendFunc(GL_ONE, GL_ONE)
glTranslatef()
glRasterPos2f()
glPrint()
gluLookAt()
glNewList()
glEndList()
glEnable(GL_TEXTURE_2D)
glBindTexture()
glBegin(GL_TRIANGLE_FAN)
glEnd()
glTexCoord2f()
glPushMatrix()
glPopMatrix()
glTranslatef()
glRotatef()
08.09.2002
Sky Box - vytváření oblohy a krajiny
Načtení skyboxu ze souboru skybox.txt a jeho vykreslení
glGenLists()
wglUseFontBitmaps()
glPushAttrib()
glPopAttrib()
glListBase()
glCallLists()
glDeleteLists()
glColor3f()
glEnable(GL_BLEND)
glDisable(GL_BLEND)
glBlendFunc(GL_ONE, GL_ONE)
glTranslatef()
glRasterPos2f()
glPrint()
gluLookAt()
glNewList()
glEndList()
glEnable(GL_TEXTURE_2D)
glBindTexture()
glBegin(GL_TRIANGLE_FAN)
glEnd()
glTexCoord2f()
glPushMatrix()
glPopMatrix()
glTranslatef()
glRotatef()
08.09.2002
Sky Box 2 - vytváření oblohy a krajiny
Trochu zdokonalený předchozý příklad
glEnable(GL_DEPTH_TEST)
glDisable(GL_DEPTH_TEST)
glGenLists()
wglUseFontBitmaps()
glPushAttrib()
glPopAttrib()
glListBase()
glCallLists()
glDeleteLists()
glColor3f()
glEnable(GL_BLEND)
glDisable(GL_BLEND)
glBlendFunc(GL_ONE, GL_ONE)
glTranslatef()
glRasterPos2f()
glPrint()
gluLookAt()
glNewList()
glEndList()
glEnable(GL_TEXTURE_2D)
glBindTexture()
glBegin(GL_TRIANGLE_FAN)
glEnd()
glTexCoord2f()
glPushMatrix()
glPopMatrix()
glTranslatef()
glRotatef()
08.09.2002
Načítání skeletální animace MilkShape (*.ms3d)
Load skeletální animace MilkShape(*.ms3d)
Vykreslení animovaného modelu MilkShape
Rotace kloubů modelu pomocí Quaternionů
Načítání textur ze souboru (*.tga)
Nová kamera, transformace a rotace pomocí glTranslatef(), glRotatef()
Světlo pohybující se s kamerou
glIsEnabled( GL_TEXTURE_2D )
glMaterialfv()
glEnable( GL_TEXTURE_2D )
glDisable( GL_TEXTURE_2D )
glBegin( GL_TRIANGLES )
glEnd()
glTexCoord2f()
glNormal3fv()
glVertex3fv()
glRotatef()
glTranslatef()
auxDIBImageLoad()
glGenTextures()
glBindTexture()
glTexImage2D()
glTexParameteri()
glLightfv()
glEnable(GL_LIGHTING)
glDisable(GL_LIGHTING)
glEnable(GL_LIGHT0)
08.09.2002
Načítání souborů 3DStudioMax (*.3ds)
Load 3DStudioMax souborů (*.3ds)
Vykreslení 3DS modelu
Načítání textur ze souboru (*.jpg)
glEnable( GL_TEXTURE_2D );
glDisable( GL_TEXTURE_2D );
glColor3ub();
glBindTexture();
glBegin( GL_TRIANGLES );
glBegin( GL_LINE_LOOP );
glEnd();
glNormal3f(); glTexCoord2f();
glVertex3f();
glGenTextures();
glTexParameteri();
glTexImage2D();
glPushMatrix();
glPopMatrix();
glTranslatef();
glEnable( GL_COLOR_MATERIAL );
08.09.2002
Přehrávání muziky pomocí knihovny FMOD
Přehrává "sample.mp3" pomocí knihovny FMOD
FSOUND_Init();
FSOUND_Sample_Free();
FSOUND_Close();
FSOUND_Sample_Load();
FSOUND_Sample_SetLoopMode();
FSOUND_PlaySound();
FSOUND_SetPaused();
FSOUND_GetPaused();
FSOUND_StopSound();
FSOUND_SetVolume();
08.09.2002
Bitmap fonty
Vykresluje BMP fonty
glDisable(GL_LIGHTING);
glEnable(GL_LIGHTING);
glColor3f();
glGenLists();
glDeleteLists();
glBindTexture();
glNewList();
glBegin();
glEnd();
glTexCoord2f();
glVertex2i();
glTranslated();
glEnable(GL_BLEND);
glDisable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE);
glDisable(GL_DEPTH_TEST);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glPopMatrix();
glLoadIdentity();
glOrtho();
glListBase();
glScalef();
glCallLists();
08.09.2002
Quake III BSP
Načítání a vykreslování Quake III BSP levelů.
Vytváření světel pomocí multitextur a lightmap.
Stručný popis BSP stromů a BSP optimalizace scény.
glVertexPointer(3, GL_FLOAT, ..., ...);
glTexCoordPointer(2, GL_FLOAT, ..., ...);
glClientActiveTextureARB(GL_TEXTURE0_ARB);
glClientActiveTextureARB(GL_TEXTURE1_ARB);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glActiveTextureARB(GL_TEXTURE0_ARB);
glActiveTextureARB(GL_TEXTURE1_ARB); glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, ...);
glDrawArrays(GL_TRIANGLE_FAN, ..., ...);
glGetFloatv( GL_PROJECTION_MATRIX, ... );
glGetFloatv( GL_MODELVIEW_MATRIX, ... );
glGenTextures(1, ...);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, i_width, i_height, GL_RGB, GL_UNSIGNED_BYTE, pby_image_bits);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
08.09.2002
Detekce kolizí kamery s BSP scénou
Předchozý příklad QuakeIII BSP doplněný o detekce kolizí.
01.12.2005
První jednoduchý skript
První díl tutorialu, jak napsat vlastní skriptovací jazyk
16.12.2005
Druhý jednoduchý skript
Druhý díl tutorialu, jak napsat vlastní skriptovací jazyk. Do předešlého skriptu přidáme string data.
21.03.2006
Proměnné kriptu.
Třetí díl tutorialu, jak napsat vlastní skriptovací jazyk. Do předešlého skriptu přidáme proměnné.
25.03.2006
Zadání hodnot skriptu příkazem z konzole, nebo načtěním hodnot ze souboru.
Čtvrtý díl tutorialu, jak napsat vlastní skriptovací jazyk.
09.05.2006
Linux game.
Načítání konfiguračních souborů pomocí skriptovacího jazyka Lua.
lua_State
lua_open
luaopen_base
luaopen_io
luaopen_string
luaopen_math
lua_close
luaL_loadfile
lua_pcall
va_list
va_start
va_end
lua_tostring
lua_tonumber
lua_toboolean
lua_getglobal
lua_isnumber
lua_isboolean
lua_isstring
lua_pushstring
lua_pop
lua_gettable
lua_istable
08.06.2006
Mapování kláves.
Vytvoření a užívání keymapy klávesnice v game enginu.
22.06.2006
Descent, first person a spectate kamera.
14.11.2006
Test kolize paprsku (polopřímky) s koulí
21.11.2006
Volání fukcí herního enginu z Lua skriptu.
23.11.2006
Volání Lua skript funkce z herního enginu.
17.08.2007
Algoritmus triangulace vertexů.
Triangulační algoritmus trianguluje pole vertexů a vytváří konvexní polyhedron
home