Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Una pregunta sobre lightmaps

Iniciado por Drácula, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

Drácula

                                Voy a empezar a implementar los lightmaps y tengo una pregunta:

Imaginamos una habitación formada por 4 paredes y el suelo y el techo. Hasta aquí el lightmap es sencillo porque sería una textura de luz por cada rectángulo.
Poer ahora ponemos en el centro una pirámide.¿Cómo tengo que tratar la piramide para crear un lightmap? Al ser caras triangulares..¡me sobrará un cacho de espacio de textura en el lightmap que no utilizaré!

Es decir, está claro crear una textura de lightmap para un rectángulo, pero no se me ocurre que hacer en los casos en los que sea un solo triángulo, puesto que desperdicio mucho espacio de textura!

¿alguien conoce el tema?
Espero que entendais el problema                                
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

Lord Trancos

                                Yo estuve intentando implementarlos hace tiempo. Meti la gamba al usar SIEMPRE texturas de tamaño potencia de 2, pq las sombras salian hechas unos churros xDDD

Pero weno, al grano. Supongo que es "normal" perder esa parte de la textura. Intentar aprovecharla (como te imaginaras) es muy dificil. Y si se te ocurre (como a mi) la descabellada idea de intentar usar toda la textura de forma q ocupe todo el triangulo, tb te saldra un churro.

Hablando de sombras.... ¿alguien sabe que tecnica usan los del Doom III para hacer esos peazo efectos de iluminacion?
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

BeRSeRKeR

                                Con respecto a lo de los lightmaps, lo que hace por ejemplo quake3 es almacenar los lightmaps en texturas de 128x128...y los agrupa de forma coherente para posteriormente realizar el mínimo número de cambios de estados de render y de textura y menos bloqueos en el buffer de vértices...

En el generador de lightmaps que hice hace ya algún tiempo creaba una textura para cada lightmap lo cual evidentemente es una auténtica barbaridad pero vamos lo hice con fines didácticos :sonriendo:

Y con respecto a la iluminación del doom3 pues evidentemente no se puede asegurar nada pero tiene toda la pinta de utilizar per-pixel lighting junto con bump y specular mapping y también parece hacer un uso intensivo de projective textures y tal vez shadow volumes o quien sabe si shadow maps para las sombras dinámicas...aunque se supone que todo es dinámico en doom3 :sonriendo:

Saludos...
                               
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Lord Trancos

                                Jejeje ¿ 1 textura por lightmap ? :riendo:

Por ese motivo hice yo mis texturas potencias de 2, pq despues era muy facil agruparlas. Primero cogia todas las de 8x8 y las agrupaba en texturas de 16x16, despues cogia las de 16x16 y las agrupaba en texturas de 32x32... y asi hasta 256x256. Pero como ya he dicho fue un cagada, pq las sombras salian muy chungas.

He estado buscando algun ejemplo o alguna imagen, y he encontrado esta. Se puede ver como las sombras de la "lampara" del techo estan un poco chungas (los diferentes lightmaps no cuadran). Aunque tenia ejemplos donde se veia mucho mas exagerado... ^_^;;


http://www.geocities.com/dxlab/lightmap2.jpg

Sobre el metodo del Quake, yo encontre un tutorial q debe de usar una tecnica muy parecida y q es lo que algun dia aplicare a mis lightmaps para corregir la chapuza que hice. Espero que te sirva Dracula :ojo:

http://www.blackpawn.com/texts/lightmaps/default.html

De nuevo insisto. Dracula no te obsesiones con no perder espacio en las texturas de los lightmaps. Dos consejos q yo hubiese agradecido: Alinea siempre los lightmaps a los ejes del universo, y usa para cada ligthmap el tamaño que cada poligono necesite.

:ojo:

_________________
SaludoteZ de Lord Trancos!
www.dxlab.tk - programación de DirectX con Delphi.


[ Este Mensaje fue editado por: Lord Trancos el 2002-06-03 00:25 ]                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

BeRSeRKeR

                                Pues si, si alguna vez has visto un bloque de lightmaps de quake3 tienen más o menos esa estructura...y bueno ya digo que si utilicé una textura para cada lightmap es porque simplemente era para probar a generar lightmaps y no me quería complicar la vida :ojo:

Y bueno yo no me complicaría la vida con los lightmaps...porque ciertamente a las alturas en las que estamos eso se acabó...aunque bueno si uno quiere seguir mirando hacia atrás entonces los lightmaps son una gran cosa :riendo:

Saludos....
                               
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Drácula

                                ¿Crees que se acabó lo de los Lightmaps Berserker? Yo creo que se mantendrán, añadidos con luces dinámicas por proyección. Pero pareces estar muy seguro...¿puedes argumentar porqué?                                
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

BeRSeRKeR

                                Por lo que he visto y leído sobre doom3, éste no utiliza lightmaps para nada, es más, los niveles se cargan directamente en el juego sin ningún tipo de compilación...sólo sufren un proceso de "BSPizacion" (supongo que para cada sector del mapa)
lo cual es algo bastante rápido...

Saludos
                               
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Lord Trancos

                                ¿Sabes que tipo de division espacial usan? ¿Portales con BSPs en las celdas tal vez?
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

BeRSeRKeR

                                Pues eso es lo que han dejado entreveer en las entrevistas que he podido leer a los componentes de id...

Saludos
                               
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Loover

                                Los lightmaps estan muertos, debido que a partir de ahora todo será dinámico (mirar el doom 3)... pero solo en cuanto a proyectos de gran envergadura. Para mi motor, que no tiene tan grandes pretensiones (ojala supiera como hacer iluminación "per-pixel") me vienen al pelo; dan un gran realismo. Lo dificil es hacer el programa de raytrace que los calcula dado un mapa y las luces... Finalmente decidí utilizar un mapa ya compilado por algún programa de raytrace. Y ahora cargo los bsp del quake 3, en los que sacar la información referente a los polígonos y sus lightmaps asociados es relativamente fácil.
En cuanto a la optimización de los mapas del doom 3 he oido que no utilizará octrees ni bsp (me refiero a bsp de los que se generan al compilar el mapa, no los dinámicos), debido a que estos solo sirven para mapas estáticos. Irá por portales, y las zonas visibles se calcularán en tiempo real.
Los que lo van a celebrar de verdad todo esto (luz, optimización y demás características dinámicas) son los mappers, porque ahora compilar un mapa les tardará unos 5 minutos frente a las 10 horas o más que tardaba por ejemplo en un mapa del quake 3.
Por otro lado no quiero ni imaginar cuanto tiempo tendré que esperar para ver el Doom 3 rulando en un ordenador a más de 70 fps.

[ Este Mensaje fue editado por: Loover el 2002-06-03 17:03 ]                                
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

Drácula

                                Gracias por la información. Me habeis convencido para no perder tiempo en lightmaps.                                
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

BeRSeRKeR

                                Bueno aquí hay que aclarar que aunque todo apunte a lo que ya se ha dicho de que todo sea dinámico (incluida la iluminación), en nuestro proyecto aún estamos utilizando lightmaps...aunque estamos con la idea de que esto cambie ya que lo que sí pretendemos es para los objetos dinámicos (personajes por ejemplo) hacer algo parecido a lo que hace doom3 y aprovechar así las aceleradoras de última generación y claro si esto lo hacemos así...ver los modelos renderizados con toda esa calidad (bump & specular mapping) y ver el nivel con lightmaps...pues como que no :riendo:

Y ciertamente viendo que nuestro proyecto no verá la luz hasta dentro de bastante tiempo (tal vez más que doom3) pues creo que vale la pena dar el salto...otra cosa bien distinta es el esfuerzo que hay que hacer para adaptarse a esta nueva tecnología...pero creo que merece la pena a parte de ser necesario...

Por otra parte me gustaría comentar algo. Mucha gente, con la salida del video de doom3 ya ha puesto el grito en el cielo por los requerimientos que parece exigirá..pero yo digo una cosa...hasta este momento no conozco ningún juego que aproveche al máximo ni una GF1..así que eso de que el hardware gráfico avanza tanto porque los juegos de hoy día así lo exige me parece que no tiene ningún fundamento. Así que creo que ya era hora de que alguien (mira tú por donde tenía que ser el Sr. Carmack) se dignase a justificar el gasto que la gente hace en hardware de última generación...aunque es cierto que doom3 va a dejar a las GF1, 2 e incluso 3 pequeñas para doom3 :riendo: pero bueno de aquí a que salga el juego, creo que los precios estarán bastante bien...

Saludos
                               
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.