Modelo de Iluminación Phong en 2D

El modelo de iluminación Phong, o modelo de reflexión Phong, o simplemente Phong Lighting es un modelo empírico de iluminación local de puntos sobre una superficie (1973). Este describe el comportamiento de la reflexión de la luz sobre una superficie expresada como una combinación de un término ambiental, término difuso (reflexión difusa) y un término especular (reflexión especular).

Modelo de Iluminación Phong. Extraído de Wikipedia

La mayoría de los sistemas gráficos aplican este modelo para la iluminación de modelos geométricos o volumétricos. Sin embargo, éstos requieren modelos 3D para su cálculo. Entonces, ¿es posible realizar dicho modelo en un sistema de despliegue con primitivas de despliegue 2D? Seguir leyendo

Anuncios
Publicado en Algoritmos, Código | Etiquetado , , , | 6 comentarios

Editores de Shaders en la Web

Gracias a la implementación de WebGL en los browser actuales junto al elemento Canvas de HTML5 + CSS3 + SVG, es posible construir aplicaciones, herramientas o juegos de alto impacto para la Web. Una de éstas aplicaciones en la Web son los editores. Actualmente, existen diversos editores en línea, máquinas virtuales, sandbox para el testing de aplicaciones/lenguajes en particular, etc. Particularmente, en el área de Informática Gráfica los editores de programas en la GPU (shaders) son de alto interés porque no requieren desarrollar todo el entorno para ser utilizados. Empleando OpenGL para la Web, es decir, WebGL, se emplea el lenguaje de shader ESSL  o GLSL ES. Dicho lenguaje, está formado por el programa de vértices (vertex shader) y el programa de fragmentos (fragment o pixel shader), los cuales para ser ejecutados con WebGL requieren varias líneas de código. En este post, veremos algunos editores que son herramientas muy útiles y nos permitirán ahorrar varias líneas y empezar a trabajar directamente con los shaders. Seguir leyendo

Publicado en Código, Herramientas | Etiquetado , , , | Deja un comentario

Babylon.js

Es bien conocido que WebGL requiere de muchas líneas de código para el despliegue de primitivas 3D dentro de una escena. Numerosos tutoriales existen en la Web, libros, artículos, entre otros que explican paso a paso y con mucho detalle el uso de los buffers y shaders requeridos en WebGL. Sin embargo, para muchos programadores éste lenguaje es complejo en términos de ser muy “bajo nivel” e implicar un conocimiento técnico sólido del pipeline gráfico. Por ello, han surgido diversas bibliotecas que sirven de engine/API/bliblioteca para crear contenido 3D interactivo en la Web utilizando HTML5/SVG/WebGL. Entre las más conocidas están Three.js, C3DL, O3D, PhiloGL, CopperLicht, SpiderGL y Babylon.js. En este post hablaremos un poco sobre Babylon.js.

babylonjs

Website de BabylonJS

Seguir leyendo

Publicado en Bibliotecas, Herramientas | Etiquetado , , | 1 Comentario

Reportaje: Videojuegos con calidad venezolana

A finales de Septiembre, el diario El Nacional presentó un artículo en su revista dominical Todo En Domingo escrito por Carola Ettegui titulado como este post: Videojuegos con calidad venezolana.

Videojuegos Seguir leyendo

Publicado en Games, Noticias, Opinión | Etiquetado , , , , | Deja un comentario

En construcción …

Después de un largo tiempo sin posts (vacaciones), pronto se activará nuevamente el blog 🙂

Publicado en Noticias | Deja un comentario

Mipmapping en OpenGL

El término mipmap fue introducido por Lance Williams en su paper Pyramidal Parametrics presentado en la conferencia SIGGRAPH en el año 1998. Mip viene del latin multim im parvo que significa “muchas cosas en un pequeño lugar”. La técnica de mipmapping es empleada para empacar diversos tamaños de imágenes en memoria y evitar artefactos causados por los cambios de la distancia entre el observador y un objeto texturizado. comparison

Imagen con iluminación y con textura (Extraído del OpenGL Programming Book aka “red book”)

Seguir leyendo

Publicado en Código, Ideas | Etiquetado , , | Deja un comentario

Perfiles en OpenGL (Core vs. Compatibility)

Desde la versión 3.0 de OpenGL se introduce el deprecation model (modelo de desaprobación fuerte). Su origen se debe a la necesidad de tener un mecanismo para simplificar las futuras versiones del API y poder de forma gradual quitar funciones de la especificación de OpenGL. Así, es posible marcar funcionalidades como deprecated que significa que dicha funcionalidad será removida de las versiones futuras de OpenGL. Un claro ejemplo se puede observar en el modo de rendering inmediato empleando glBegin/glEnd que fue marcado como deprecated en la versión 3.0 y removido en la versión 3.1.

Opengl_logo

Seguir leyendo

Publicado en Código | Etiquetado , , , , | Deja un comentario