Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Cuiado los usuarios de XP con LmTools

Iniciado por Loover, 08 de Noviembre de 2002, 11:59:19 AM

« anterior - próximo »

Haddd

                                Entiendo tu razonamiento inicial, pero tener un programa externo para calcular lightmaps no me ha parecido buena idea. Respecto a lo de los lightmaps y las texturas, de momento quiero hacer algo simple, después ya veremos. Por cierto,¿tienes en LMtools la posibilidad de que la luz proyecte también un bitmap además de la luz en sí?                                

Lord Trancos

                               
CitarEntiendo tu razonamiento inicial, pero tener un programa externo para calcular lightmaps no me ha parecido buena idea. Respecto a lo de los lightmaps y las texturas, de momento quiero hacer algo simple, después ya veremos. Por cierto,¿tienes en LMtools la posibilidad de que la luz proyecte también un bitmap además de la luz en sí?

No te recomiendo que hagas "algo simple", sino q te limites a seguir el "standard" para crear lightmaps (proyeccion planar y a despilfarrar espacio de textura)... pero weno, tu mismo.

En cuanto a lo de q si las lmtoos tienen luces q proyecten imagenes (como un proyector de cine), la respuesta es q en principio nop, la unica forma seria usar la misma tecnica q se usa en los proyectores de cine "del mundo real", osea ponerle un "fotograma" delante de la luz (un cuadradito con una textura con canal alpha), aunque la verdad es q no lo he probado.... es una buena idea para probar :D                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

Haddd

                                ¿y cómo decides el tamaño de la textura? ¿basándote en el tamaño del triángulo?                                

Lord Trancos

                                Exacto. Para los lightmaps es un grave error forzar el tamaño. Es el triangulo quien te dice que tamaño quiere. Si no lo haces asi, despues no quedara bien, sobretodo si metes sombras.... (y los lightmaps sin sombras pierden mucho), ya q los lightmaps de los diferentes triangulos no encajaran bien. (y si no encajan y hay una sombra por en medio, canta mucho).

Mis reglas de oro para los lightmaps: :)

 - Los pixeles de todos los lightmaps (lumels) deben de tener el mismo tamaño en su representacion 3D; esto te permitira calcular el tamaño del lightmap necesario para un triangulo;

 - Nunca forzar el tamaño del lightmap... cada triangulo necesita un lightmap con un tamaño concreto.

 - No intentar aprovechar toda la superficie del lightmap mapeando el lightmap entero dentro del triangulo... el mapeado debe de ser planar.

 - Ajustar el mapeado con una rejilla 3D cuyas celdas tengan el tamaño de la representacion 3D del lumel.

 - Añadir un borde de 1 lumel a todos los lightmaps para evitar efectos desagradables del mapeado bilineal. (tambien hay q calcular la luz para dicho borde)

 - Filtrar los lightmaps. (Yo uso un 3x3 average, pero seguramente hay filtrados mejores).

Basicamente todas estas medidas son para evitar los efectos producidos por lightmaps q no encajan correctamente.

Una vez creados los lightmaps; los "optimizo", los "comparto" y los meto en texturas de 256x256 (todo esto lo hace LMPack).

Lo unico que hago al "optimizar" es simplemente reduzcir las dimensiones de los lightmaps que tienen todos sus pixels del mismo color.

Lo de compartir, simplemente es comparar los lightmaps entre si para ver que triangulos usan lightmaps iguales (por ejemplo, una pared formada por dos triangulos; ambos usan el mismo lightmap).

Y finalmente para lo de meter los lightmaps en una unica textura, aqui hay un tuto bastante bueno ;)

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

Si tienes cualquier otra duda, ya sabes ;)                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.






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.