OpenGL Game

08.09.2002

Kamera, procházení scénou

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

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

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)

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)

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

 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

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ů.

Algoritmus triangulace vertexů
Triangulační algoritmus trianguluje pole vertexů a vytváří konvexní polyhedron

home


Valid XHTML 1.0 Transitional