Entradas

Mostrando entradas de febrero, 2018

Multiples Objetos

Proceso 1 - Lo primero que hizo fue crear el método "drawOcta" (draw Octahedron) el  cual al ser invocado, dentro del loop de dibujo, crea  un octaedro  en el canvas de WebGL. La creaciòn de este método nos permite pintar multiples veces la figura. 2 -  Se modifico el método  " drawOcta" de forma que fuera recursivo. Con el fin de lograr que cada octaedro después de pintarse a si mismo, pinte dos octaedros debajo suyo los cuales además  giren con respecto a el. Para se hizo lo siguiente:  Se agregó el parámetro "maxDepth" el cual disminuye en 1 en cada llamada, lo que permite definir  la profundidad de la recursion. Después de pintarse a si mismo se llama "drawOcta" dos veces Cada objeto  le pasa su transformación a los siguientes llamados recursivos de "drawOcta", de modo que los hijos del objeto se basan en esa transformación para hacer su propia transformación (Rotación+Translación)

Elemento Sencillo Interactivo

Imagen
Se quiere que la posición del octaedro creado anteriormente en Ejemplo WebGL  cambie de posicion cuando se de click en el canvas de HTML5 Para lograrlo se debe hacer lo siguiente 1 - Transformación de coordenadas Para cambiar la posición de un elemento en cada click, primero debemos  decidir como transformar las coordenadas del canvas HTML al sistema de coordenadas que maneja  WebGL. Sistema de coordenadas del Canvas de HTML X y Y empiezan en la esquina superior izquierda,  X aumenta hacia la derecha y Y aumenta hacia abajo Sistema de coordenadas canvas WebGL El sistema de coordenadas corresponde al de un plano cartesiano convencional La transformación que usaremos sera la siguiente: T(x)=  10 * ( (x / ancho del canvas HTML) - 0.5) T(y) = 10 * ( (y / alto del canvas HTML)  - 0.5) Esta transformación sirve para cualquier tamaño  de canvas, sin embargo para explicar con facilidad  como se l...

Ejemplo Basico WebGL

Imagen
A continuación se encuentran los pasos realizados para poder dibujar un octaedro en WebGL similar al de la imagen 1 - Triangulo Basico 2D Inicialmente pintamos un triangulo en 2d para evidenciar el funcionamiento básico de WebGL. Como estamos trabajando en dos dimensiones, en el arreglo de vertices, los dos primeros valores, corresponden a X y Y y los siguientes 3 valores corresponden a el color del vertice usando (R, G, B). Debido a esto el offset para los vertices sera de 0 bytes, y el offset para los colores sera de 8 bytes (2 * Numero de Bytes en un Float de 32 bits). 2 - Triangulo 2D Girando Para cambiar la dirección de un objeto Vector, podemos multiplicar el vector por una o mas matrices de rotación En este caso, para obtener la animación del objeto girando, multiplicaremos los vértices del objeto por las siguientes matrices. mWorld: Representa la rotación del  objeto en el espacio tridimensional. mView: Representa el cambio de posición del observado...