Documentos de Académico
Documentos de Profesional
Documentos de Cultura
programación de
videojuegos
David Erosa García
Luis Rodero Morales
ascii@talika.eii.us.es tf2@talika.eii.us.es
Programación 3D
PONER ALGO
Fundamentos de OpenGL
Inicializar SDL y OpenGL
• Para poder usar OpenGL con SDL, hay que pasar alguno de lo siguientes
FLAGS a la llamada a SDL_SetVideoMode(...):
• SDL_OPENGL
• SDL_OPENGLBLIT
3
Fundamentos de OpenGL
Inicialización de OpenGL 1
• Iluminación.
• Función de Z-Buffer.
• Carga de texturas.
• Modelo de sombreado.
• ...
4
Fundamentos de OpenGL
Inicialización de OpenGL 2
5
Fundamentos de OpenGL
Redimensionado
6
Fundamentos de OpenGL
TODO
7
Fundamentos de OpenGL
Modo Directo
• GL_POINTS
• GL_QUADS, GL_QUAD_STRIP
• GL_POLYGON
8
Fundamentos de OpenGL
GL_POINTS
• El uso es el siguiente:
glBegin ( GL_POINTS );
9
Fundamentos de OpenGL
GL_LINES
• El uso es el siguiente:
glEnd ();
10
Fundamentos de OpenGL
GL_LINE_STRIP - GL_LINE_LOOP
11
Fundamentos de OpenGL
GL_TRIANGLES
• Hay que tener cuidado con el sentido de creación de los vértices, pues el
sentido incorrecto puede provocar que no se visualice.
glBegin ( GL_TRIANGLES );
glEnd ();
12
Fundamentos de OpenGL
GL_TRIANGLE_STRIP
V4
3
V2
V3
2
1
V0 V1
13
Fundamentos de OpenGL
GL_TRIANGLE_STRIP
glBegin (GL_TRIANGLE_FAN);
{
x = 4 + 2.0 * sin (angulo);
}
glEnd ();
14
Fundamentos de OpenGL
GL_QUADS - GL_QUADS_STRIP
V1 V2 V5
V0 V3 V4
15
Fundamentos de OpenGL
GL_POLYGON
16
Fundamentos de OpenGL
Transformaciones
• ang es el ángulo a rotar alrededor del eje dado por el vector [x, y, z].
17
Fundamentos de OpenGL
Listas de visualización 1
18
Fundamentos de OpenGL
Listas de visualización 2
• Con modo:
• GL_COMPILE
• GL_COMPILE_AND_EXECUTE
19
Fundamentos de OpenGL
Listas de visualización 3
20
Fundamentos de OpenGL
Iluminación 1
21
Fundamentos de OpenGL
Iluminación 2
• Una vez que tenemos iluminación ambiental, hay que dar propiedades
a los materiales.
22
Fundamentos de OpenGL
Texturas (1)
glEnable ( GL_TEXTURE_2D )
23
Fundamentos de OpenGL
Texturas (2)
24
Fundamentos de OpenGL
Texturas (3)
1,0
v1
v3
v2
v1
v3
v2
0,0 0,1
25
Fundamentos de OpenGL
Texturas (4)
• Como cada vértice tendrá sus propias coordenadas de textura, habrá que
llamar a glTexCoord2f cada vez que definamos un vértice con glVertex*.
26
Fundamentos de OpenGL
Niebla
27
Aplicaciones
Introducción
• También podemos crear una cámara genérica, que tome todas sus
características como parámetros, y podamos moverla libremente por el
espacio.
28
Aplicaciones
Modelos 3D (1)
29
Aplicaciones
Modelos 3D (2)
• “Uf, por ahí hay gente que dibuja los modelos en el código, no es coña”
(Luis).
30
Aplicaciones
Modelos 3D (3)
• Para guardar vértices, usaremos una estructura vertex con los siguientes
campos:
• u, v : coordenadas de textura
31
Aplicaciones
Modelos 3D (4)
32
Aplicaciones
Modelos 3D (5)
33
Aplicaciones
Mapping en 3D (1)
34
Aplicaciones
Mapping en 3D (2)
35
Bibliografía
• Internet
• API's
• Gamedev http://www.gamedev.net
• Flipcode http://www.flipcode.com
• GameTutorials http://www.gametutorials.com
• UGP http://www.ultimategameprogramming.com
36
Bibliografía
• Inteligencia Artificial
• AIDepot http://www.aidepot.com
• GameAI http://www.gameai.com
• Generation5 http://www.generation5.org
• Gráficos
• NeHe http://nehe.gamedev.net
• Cone3D http://cone3d.gamedev.net
• Varios:
37
Bibliografía
• Libros
• ...
38
EOD && EOC
• Agradecimientos:
• Al UT2004.
• A nosotros mismos.
• A AsCII.
39
P.D.
40