Nuevo video de iL-engine

agosto 29, 2009

Hola

He puesto un nuevo vídeo sobre la nueva versión del iL-engine. Lo podéis ver en la siguiente dirección:

http://ilengine.wikidot.com/videos

Un saludo


Actualización de la wiki 09-06-2009

junio 9, 2009
  • Artículo sobre Ambient Volume
  • Artículo sobre Deferred Shading
  • Artículo sobre criptografia mediante AES
  • Artículo sobre números aleatorios

Página: http://ilengine.wikidot.com


Actualización de la wiki 19-01-2009

enero 19, 2009
  • Artículo de programación con strings más completo
  • Artículo de programación con vectores más completo
  • Artículo de programación con listas
  • Artículo de programación con xmlParser (Parser XML para C++)

Página: http://ilengine.wikidot.com


Actualización de la Wiki 30-12-2008

diciembre 30, 2008
  • Artículo de programación con strings
  • Artículo de programación con vectores

Página: http://ilengine.wikidot.com


Me muevo a una wiki

diciembre 25, 2008

Hola

Hace ya unos cuantos días que no actualizo el blog, y no es que lo tenga abandonado sino que no es el tipo de pagina web que yo quería para poder publicar conocimiento.

El tema está en que un blog es algo para leer día a día perdiendo de una manera simbólica el índice de las cosas que se han hecho y perdiendo el norte de todo lo que se ha publicado.

Por eso mismo, he decidido moverme hacia una página en forma de wiki para poder publicar allí todo lo que estaba publicando aquí y más de manera más ordenada y fácil de consultar.

Por lo tanto pido a todos aquellos que leíais la información que posteaba aquí que actualicéis vuestros links porque a partir de ahora pondré todo el conocimiento en la nueva wiki.

Un saludo y gracias

Nueva pagina: http://ilengine.wikidot.com


Como remplazar caracteres en una string()

diciembre 17, 2008

Hola

Siguiendo con las funciones interesantes y útiles de las STL y sus objetos. Imaginaros que necesitáis substituir unos caracteres por otros en una cadena.

Pues bien, utilizando una string como contenedor de la cadena es relativamente sencillo hacerlo.

std::replace(str.begin(),str.end(), '*','-');

Lo que hacemos es utilizar una función estándar de las STD para indicar que queremos substituir los asteriscos (*) de la cadena por guiones (). Evidentemente necesitamos indicar de donde a donde irá ese cambio, es decir, unos límites. En el ejemplo que he puesto, y normalmente el más usado en la mayoría de los casos, es todo el tamaño de la cadena, desde su inicio hasta su fin.

Un saludo


Sistema de encriptación AES

diciembre 15, 2008

Hola

Hoy os traigo algo que aunque no sea directamente relacionado con el mundo 3D, sí que lo está con el mundo de la programación y nos puede ser de utilidad.

Estoy hablando de del sistema de encriptación de datos AES en formato C++, listo para ser agregado a nuestros proyectos, sin ningún tipo de licencia y totalmente libre.

En la siguiente web podéis encontrar los dos ficheros, el *.h y el *.cpp para poder usar este sistema en vuestro proyecto para lo que queráis.

Link: AQUI

Un saludo


Ecuación de Phong + 1

diciembre 8, 2008

Hola

Después de una semana un poco movida sin haber podido postear por falta de tiempo, hoy vengo para explicar la evolución de la ecuación de Phong en nuestros engines.

La ecuación de Phong es muy simple, básicamente es una suma de tres componentes:

Resultado = Ambiente + Diffusa + Specular

¿Dónde está el problema? El problema reside en que esa es la forma más simple de calcular la iluminación en un píxel, y a medida que vamos añadiendo ‘capacidades’ a la ecuación, esta va evolucionando para dar como resultado algo nada intuitivo.

Actualmente me encuentro haciendo la ecuación de la nueva versión del engine y os puedo comentar varias cosas:

– En esta ecuación no se representa en ningún momento alguna componente de auto iluminación, por lo tanto, ya tenemos una componente que en esa ecuación no está reflejada.
– En la ecuación de iluminación del Half-Life 2, la Ambiente y la Diffusa no se suman, sino que se operan entre sí para formar una componente Diffusa nueva a la cual se le sumara la componente Specular.
– La ecuación de Phong con una sola luz nos proporciona oscuridad casi absoluta en esas caras o píxeles que no estén mirando a la luz, cargándose por completo la sensación de iluminación global de la escena. Por lo tanto a veces se opta por poner un 30% de Ambiente y un 70% de Diffusa para que los píxeles no tiendan a negro absoluto.
– En ningún momento hemos hablado de la componente de lightmap, por lo tanto ya tenemos otra componente oculta y que deberemos tratar para obtener buenos resultados.
– Etc.

Como podéis observar, la ecuación de Phong está bien para empezar, pero poco a poco vamos añadiendo mas información necesaria y nos da como resultado una ecuación que distaba mucho de la teoría.

Este podría ser un ejemplo:

Resultado = ((Ambiente <-> Diffusa) * LightMap) + Specular + Self-Ilumination

Un saludo


Render HDR y niebla

noviembre 27, 2008

Hola

Hoy aunque breve, me gustaría hablar sobre una idea que me ha sobresaltado mientras pensaba en esto del HDR. Y aparte voy a probar de paso esto del particionado de la noticia.

Lee el resto de esta entrada »


Otra manera de hacer HDR (2)

noviembre 26, 2008

Hola

Continuando con los experimentos de HDR, os quería mostrar lo que hablaba el otro día sobre esos ‘dos rangos’ en los que se dividía la luz.

hdr

Bien, en la imagen, podéis ver píxeles con color en el rango LDR [0.0f – 1.0f] y pixeles HDR que son de color rojo (son así porque he puesto un if en le shader para distinguirlos). La manera de interpretar esta imagen es la siguiente:

– Todos los píxeles que no son rojos, son píxeles que tienen rango LDR pero no tienen nada de HDR.
– Todos los píxeles ROJOS son píxeles que aparte de tener LDR tienen HDR.

Por lo tanto, solo el rango HDR será el que pasara a los filtros de glow y demás. Todos los otros píxeles se quedaran igual.

También comente de que si hacíamos dos salidas de píxeles, una en un render target, y otra en otro render target, es posible que perdiésemos el Anti Aliasing por hardware, y así es como es, lo perdemos, pero que no cunda el pánico, pues existen unos filtros de detección de bordes que nos permitirán aplicar un blur sobre esos píxeles y hacer nosotros mismos el Anti Aliasing.

Un saludo