opengl
En las dos primeras secciones (coordenadas oculares ytransformaciones) se intentará dar una idea de cómo trabaja ogl con el espacio 3D, a alto nivel. En las siguientes, se hablará más del código necesario para conseguir los resultados deseados. Se termina con un ejemplo en el que se aplica todo lo aprendido.
4.1 Coordenadas oculares
Las coordenadas oculares se sitúan en el punto de vista del observador, sin importar las transformaciones que tenganlugar. Por tanto, estas coordenadas representan un sistema virtual de coordenadas fijo usado como marco de referencia común. En la ilustración 4.1 se pueden apreciar dos perspectivas de este sistema de coordenadas.
Ilustración 4 . 1
Cuando se dibuja en 3D con ogl, se utiliza el sistema de coordenadas cartesiano. En ausencia de cualquier transformación, el sistema en uso será idéntico alsistema de coordenadas oculares.
4.2 Transformaciones
Las transformaciones son las que hacen posible la proyección de coordenadas 3D sobre superficies 2D. También son las encargadas de mover, rotar y escalar objetos. En realidad, estas transformaciones no se aplican a los modelos en sí, si no al sistema de coordenadas, de forma que si se quiere rotar un objeto, no lo se le rota, sinoque se rota el eje sobre el que se sitúa.
4.2.1 El modelador
En esta sección se recogen las transformaciones del observador y del modelado puesto que, como se verá en el apartado 4.2.1.3, constituyen, al fin y al cabo, la misma transformación.
4.2.1.1 Transformaciones del observador
La transformación del observador es la primera que se aplica a la escena, y se usa para determinar el puntomás ventajoso de la escena. Por defecto, el punto de vista está en el origen (0,0,0) mirando en dirección negativa del eje z. La transformación del observador permite colocar y apuntar la cámara donde y hacia donde se quiera. Todas las transformaciones posteriores tienen lugar basadas en el nuevo sistema de coordenadas modificado.
4.2.1.2 Transformaciones del modelo
Estas transformaciones seusan para situar, rotar y escalar los objetos de la escena. La apariencia final de los objetos depende en gran medida del orden con el que se hayan aplicado las transformaciones. Por ejemplo, en la ilustración 4.2 podemos ver la diferencia entre aplicar primero un rotación y luego una translación, y hacer esto mismo invirtiendo el orden.
Ilustración 4 . 2
En el caso (a), primero seaplica una rotación, rotando así el sistema de coordenadas propio del objeto. Luego, al aplicar la translación sobre el eje x, como éste esta rotado, la figura ya no se desplaza sobre el eje x del sistema de coordenadas oculares, si no sobre el suyo propio. En el segundo caso, (b), primero se hace la translación sobre el eje x, así que la figura se mueve hacia la derecha, también en el sistema decoordenadas oculares, ya que ambos sistemas coinciden. Luego se hace la rotación, pero el objeto gira sobre si mismo, ya que aún esta centrado en su propio sistema de coordenadas.
4.2.2 Transformaciones de la proyección
La transformación de proyección se aplica a la orientación final del modelador. Esta proyección define el volumen de visualización y establece los planos de trabajo. A efectosprácticos, esta translación especifica cómo se traslada una escena finalizada a la imagen final de la pantalla.
Los dos tipos de proyección más utilizados son la ortográfica y la perspectiva, que veremos más adelante.
4.2.3 Transformaciones de la vista
En el momento en que se ha terminado todo el proceso de transformaciones, solo queda un último paso: proyectar lo que hemos dibujado...
Regístrate para leer el documento completo.