Paso 8: La construcción: dibujo de un cubo
Mecánica de crear un cubo en OpenGL (cubo en este caso):
OpenGL tiene los siguientes tipos primitivos
Fuente: www.glprogramming.com,
Fuente imagen:
Su una web bastante buena referencia.
No dejes que esto asustar a usted, solamente utilizaremos GL_QUADS para nuestro cubo super.
En los juegos y la mayoría de las aplicaciones, estas primitivas se utilizan raramente directamente, en cambio, los modelos de 3 software CAD de terceros como Autodesk Maya, Blender, 3DS Max son importados y en su lugar (Imagínense construir un carácter de polietileno 1000 por código). Esta lista describe a estándar de OpenGL para primitivas.
1) paso 1: Dile OpenGL lo que estás a punto de hacer. Use glBegin(GL_QUADS); para especificar el punto inicial de su construcción y glEnd(); para el punto final de la construcción.
En la primera línea (1) , GL_COLOR_MATERIAL serán requeridos más adelante pero no es necesario ahora,
la segunda línea (1) GL_CULL_FACE si activado evita que las superficies que no son visibles desde el dibujo. Esto es bueno ya que reduce la carga de la CPU y mejora el rendimiento de aplicaciones.
la tercera línea (2) marca el inicio para la prestación de nuestro cubo. considere el siguiente fragmento de
INICIO
glVertex3f (1.0f, 1.0f, 1.0f);
SORTEO
Esto dibujaría un vértice (punto) para el QUAD. pero no necesitamos, por lo que sacamos otros tres vértices para completar una cara
INICIO
glVertex3f (1.0f, 1.0f, 1.0f);
glVertex3f (- 1.0f, 1.0f, 1.0f);
glVertex3f (-1.0f, 1.0f, 1.0f);
glVertex3f (1.0f, 1.0f, 1.0f);
SORTEO
Ahora esto nos daría una superficie plana. Pero no hay color, así que vamos a añadir algún color.
Asociamos un color único y cada vértice por defecto, colores de cada vértice se mezclan muy bien con los demás.
INICIO
glColor3f (0.583f, 0.771f, 0.014f);
glVertex3f (1.0f, 1.0f, 1.0f);
glColor3f (0.609f, 0.115f, 0.436f);
glVertex3f (- 1.0f, 1.0f, 1.0f);
glColor3f (0.327f, 0.483f, 0.844f);
glVertex3f (-1.0f, 1.0f, 1.0f);
glColor3f (0.822f, 0.569f, 0.201f);
glVertex3f (1.0f, 1.0f, 1.0f);
SORTEO
Abajo está el código completo para el cubo
El código es muy largo, pero sólo tienes que escribir esta vez en su aplicación.
A continuación llame al cube() en los métodos de drawScene():
Y ejecutar el código y obtendrás el siguiente resultado:
¿Qué es esto ¡ ¿hay algo mal con nuestro código? Jajaja
Verás que el código está bien, que la cosa es que el cubo está en el centro de la X, Y y Z ejes y así es nuestra cámara o el viewport(s) por lo que podemos ver un zoom a la vista de nuestro cubo.
En el siguiente paso, nosotros manipulando el cubo.