Categoría: Uncategorized

Programando un motor 3D desde cero - Brakeza3D

Billboards

Buenas a todos!. En el último artículo aprendimos la importancia del winding-order en el procesado de los triángulos de nuestra escena. Hoy vamos a resolver otra de las necesidades más habituales en un motor 3D: Los billboards. Los billboards, no son más que elementos 2D incrustados en nuestro mundo 3D. En la práctica, sirven para…
Leer más

Winding order y Backface-Culling

Buenas a todos nuevamente!. En el artículo anterior descubrimos las bases en las que se apoya el sistema de iluminación de un engine 3D. Hoy me gustaría hablar de algo que hemos pasado por alto hasta ahora: el orden de enrollamiento de los vértices de un triángulo (winding). Realmente es un concepto muy sencillo: El…
Leer más

Hágase la luz!

Bienvenidos de nuevo! En el último artículo, os presenté el Frustum View, su utilidad y forma de implementarlo. Para esta ocasión, he pensado en algo mas vistoso y sencillo! La luz!. La mayoría de engines 3D existentes, disponen de algún tipo de iluminación que suele resumir el trabajo a unos pequeños ajustes en tiempo de…
Leer más

Frustum

Hoy vamos a presentar el Frustum!. Es un concepto que encontrareis en cualquier engine 3D y representa el espacio en el mundo al alcance del campo de visión de nuestra cámara. Desde el punto de vista geométrico, el frustum equivale a una pirámide truncada. El objetivo habitual del frustum view, es descartar toda la geometría…
Leer más

Roadmap y documentación

Bienvenidos de nuevo!.  Me alegra encontrar algún email preguntando si sigo vivo, jeje!. He invertido una gran cantidad de horas terminar de parsear  elementos de mapas de Quake (Id Tech 1), optimización y evolucionar el sistema de colisiones y respuestas. Retomemos el trabajo!. En el último artículo, os presenté el mapeado de texturas, lo que…
Leer más

Mapeado de Texturas

Hoy vamos a hablar de texturas. Con todo lo visto en artículos anteriores, estaríamos preparados para llegar, desde el concepto de píxel, hasta el de modelo 3D proyectado en pantalla, de color sólido o con degradados, pudiendo mover y/o rotar este modelo en el espacio. Grandes avances para tan poca teoría!. En el último artículo,…
Leer más

Rasterización del triángulo

Bienvenidos de nuevo. En el artículo anterior en lugar de avanzar en nuestro engine, preferí hacer una pausa para destacar la importancia del uso de matrices, ya que es el estándar que encontraremos por todos lados para rotar vértices. Hoy vamos a continuar hacia nuestro objetivo, detallando el trabajo necesario para rellenar nuestros triángulos, ya…
Leer más

Matrices al rescate

Aquí estámos nuevamente. He retrasado este último artículo por falta de tiempo, ya que he estado trabajando en parsers de mapas WAD del doom y mapas BSP del Quake original, toda una aventura de la que he conseguido por fin salir con vida. Si alguno está interesado en que escriba sobre alguno de estos dos…
Leer más

Creando nuestra primera cámara

Con lo aprendido en los artículos anteriores, seríamos capaces de llevar la geometría de un objeto (compuesto por vértices) a la pantalla de nuestro ordenador, mediante una malla de triángulos formada por líneas rectas, además, podríamos mover y rotar dicha geometría en el espacio. Grandes avances para tan poca teoría pensarán algunos!!. De todas formas,…
Leer más

Creando nuestra primera malla

Con lo tratado en el articulo anterior, hemos visto como mover y rotar vértices en el espacio. Si aplicamos estas técnicas al conjunto de vértices de un objeto, estamos moviendo y/o rotando ese objeto. Genial!. Para obtener un mínimo de realismo, vamos a dotar a nuestros vértices en el espacio de una malla que los…
Leer más