Usted está en: Inicio / Programa de Matemáticas / El producto punto y el efecto de volumen 3D

STORIES

En esta entrada veremos cómo esta simple operación vectorial se convierte en una muy útil herramienta a la hora de crear el efecto de volumen en objetos 3D.

Primero veamos unos conceptos básicos acerca de los gráficos generados por computador.

Un modelo 3D, también conocido como modelo poligonal, es un conjunto de puntos o vértices, aristas y caras en el espacio euclideo.

Imagen_1

Imagen 1.

De esta manera, los vértices son puntos con coordenadas x,y,z. La unión entre dos vértices es una arista y las caras son las superficies internas definidas por un camino cerrado de 3 aristas.

A su vez, cada cara tiene asignado un vector orto-normal al plano interno de la cara, que por el momento, solo llamaremos la Normal.

Imagen_2Imagen 2.

Recordemos que todo lo que vemos en los monitores son pixeles, en este caso el programa 3D le asigna a todos los pixeles la normal de la cara en la que ellos se encuentren. Adicional a esto cada pixel puede representar un color, el cual utiliza un formato llamado RGB (Red, Green, Blue); bajo este formato podemos representar una amplia gama de colores, donde cada entrada puede pertenecer a [0, 1]. Es decir que el negro en RGB es R=0, G=0, B=0, el blanco es R=1, G=1, B=1 y cualquier otra combinación genera todos los colores que conocemos.

Por el momento, estas son todas las estructuras necesarias para hacer modelos 3D por computadora tan increíbles como este.

Imagen_3Imagen 3.

Veamos ahora cómo con estas estructuras, y con la ayuda del producto punto, podemos engañar al ojo humano y darle la ilusión de que algo visto en la superficie plana de un monitor, aparente tener volumen.

Para este ejercicio usaremos una simple esfera.  A continuación podemos observar su representación poligonal más básica.

Imagen_4Imagen 4.

Sí, aunque en este momento no parezca, esta es una esfera con coordenadas x = y = z = 0, a la cual solo le hemos dicho que sea de color rojo es decir R=1, G=0, B=0.

Ahora debemos crear una luz en el escenario y para ello solo nos interesa definir en qué posición del espacio se encuentra, así que digamos que sus coordenadas son x=10, y=10, z=0.

Pero, ¿cómo podemos hacer que nuestra esfera “reaccione” a la nueva luz? Aquí es donde comienza a entrar en acción la Normal. Ya que cada punto en la esfera tiene asociado una normal fijémonos en los siguientes puntos y sus respectivas normales.

Imagen_5Imagen 5.

Pues bien, recordemos que el producto punto entre dos vectores normalizados también nos indica qué tan “paralelos” son en un rango de [-1, 1] en donde:

Imagen_6Imagen 6.

-1 son paralelos pero su dirección es opuesta

Imagen_7Imagen 7.

0 son ortogonales

Imagen_8Imagen 8.

1 son paralelos y su dirección es la misma

En ese orden de ideas si definimos una posición para nuestra luz, la podemos usar para tener un vector dirección que nos indique desde dónde viene la luz y así hacer el producto punto entre la Normal y la dirección.

Imagen_9Imagen 9.

De esta manera, podemos tener una función para el color de la superficie:

Imagen

Aplicando esta sencilla función a cada punto de la superficie obtenemos la iluminación deseada.

Imagen_10Imagen 10.

Veamos ahora la misma función aplicada sobre un objeto 3D un poco más complejo.

Imagen_11Imagen 11.

Evidentemente, esta es solo la punta del iceberg en cuanto a la creación de los efectos sobre la superficie de modelos 3D. Actualmente es un campo de investigación cuyo objetivo es crear efectos tan realistas que el ojo humano no sepa distinguir entre realidad y 3D, todo esto usando álgebra lineal, cálculo vectorial, ecuaciones diferenciales y física de la luz solo por nombrar algunos campos de conocimiento. Para una muestra, a continuación se puede ver un video sobre el futuro de los gráficos para juegos.

https://www.youtube.com/watch?v=fBR4cT-0sKY

[Imagen 1] URL: http://what-when-how.com/digital-sculpting-with-mudbox/a-3d-primer-introduction-to-mudbox-digital-sculpting-with-mudbox/

[Imagen 2] URL: http://help.autodesk.com/cloudhelp/2015/ENU/AutoCAD-Core/images/GUID-D3063913-D3CC-43CD-B8FC-C8750B4A4144.png

[Imagen 3] URL: https://www.thegnomonworkshop.com/tutorials/creating-hyper-realistic-characters-in-zbrush

 

Autor:

Juan Camilo Acosta

Estudiante de Matemáticas

Fundación Universitaria Konrad Lorenz

Publicado por Luisa María Fernández O El día 02/08/2017 Enlace permanente Comentarios (0)

Comentarios