Bueno otra de lightmaps jejeje. Ahora lo que estoy trabajando es con lightmaps dinamicos (Sin generación de sombras). Estoy usando opengl y mi dudilla es que a la hora de renderizar la escena con el lightmap dinamico, si tengo ya lightmap estatico y la textura de cada objeto pues tengo ya ocupadas las 2 extensiones de multitextura que suelen soportar la mayoría de las tarjetas. No es plan de intentar buscar una tercera multitextura :P asi que lo unico que me quedaba era usar blending :( y hacer 2 pasadas. De hecho 1 con multitextura + textura y otra con multitextura + textura lghtmap dinamico. Hay alguna manera de hacerlo mas rapidillo? :P
Y segunda pregunta que opinais entre hacer los lightmaps al estilo clasico de tener la lista de UV de cada poligono e ir actualizando las coord de textura en cada movimiento de la luz o por el contrario usar texture projection trabajando con la matriz de textura? :P
Un saludo
CitarBueno otra de lightmaps jejeje. Ahora lo que estoy trabajando es con lightmaps dinamicos (Sin generación de sombras). Estoy usando opengl y mi dudilla es que a la hora de renderizar la escena con el lightmap dinamico, si tengo ya lightmap estatico y la textura de cada objeto pues tengo ya ocupadas las 2 extensiones de multitextura que suelen soportar la mayoría de las tarjetas. No es plan de intentar buscar una tercera multitextura :P asi que lo unico que me quedaba era usar blending :( y hacer 2 pasadas. De hecho 1 con multitextura + textura y otra con multitextura + textura lghtmap dinamico. Hay alguna manera de hacerlo mas rapidillo? :P
Yo hago esto...
1pass
2pass <"faked" lightmaps dinamicos>
3pass <"normal">
^_^;; no se siquiera como hacerlo en 2 pasadas... si se te ocurre como montarlo ya me diras como lo haces.
Citar
Y segunda pregunta que opinais entre hacer los lightmaps al estilo clasico de tener la lista de UV de cada poligono e ir actualizando las coord de textura en cada movimiento de la luz o por el contrario usar texture projection trabajando con la matriz de textura? :P
Yo uso texture projection, lo de "lockear" el vertex buffer pa modificar las UVs no me parecio buena idea.
Yo uso una técnica diferente. Lo que hago es modificar la textura del lightmap. Como ya están asociadas sus U,V y sé la posición que ocupan, mi único trabajo es actualizar una textura de 512x512 en los triángulos que se están utilizando y listos.
Podrias explicar mejor tu tecnica haddd ?
lord: se da alguien q aun espera el cotw de lightmaps xDD
saludos
Mira primero calculas los pasos normales para tener tu lightmap. Entonces al final tienes:
Que cada triángulo de tu escena tiene las coordenadas de su trocito de lightmap
Una o varias texturas que son los lightmap
Pues una vez que tienes esto, sólo tienes que calcular de nuevo la luz, porque ya qué posición del lightmap tiene asignada. Esto hace que calcular las luces dinámicamente reduzca mucho su tiempo.
creo q hadd esta hablando de dinamic lightmaps reales y yo de "faked" dinamic lightmaps.
ethe: sorry pero ult toi muy ocupado (apenas se me ve pol foro), con la ult. version de las lmtools (quiero acabarla ya!). cuando tenga eso te juro por snoopy q te envio el code ese.
ok lord ya paro de meter presion xD
thx hadd
cuando os referias a faked os referias a tener una textura precalculada ?
usais planar mapping ?
cuando tienes una malla grande como sabes q q poligonos debes aplicar un lightmap ? me refiero ligthmaps dinamicos
saludos
Citarcuando os referias a faked os referias a tener una textura precalculada ?
usais planar mapping ?
cuando tienes una malla grande como sabes q q poligonos debes aplicar un lightmap ? me refiero ligthmaps dinamicos
saludos
1.- Sipe. El tipico "circulo de luz".
2.- Yo sip.
3.- Necesitas tener el espacio particionado. Yo por ejemplo uso un octree. Cuando quiero saber a q poligonos puede afectar un lightmap dinamico, hago un comprobacion para ver con que nodos del octree colisiona una esfera q representa a la zona iluminada por la luz.
aja, thx lord, suponia q se haria usando alguna tecnica de ese tipo
saludos
Ahora una cosa q se me ocurre con el planner mapping. Imaginate q estas en un pasillo dos paredes, techo y suelo. Si nos ponemos a calcular sobre q plano debemos proyectar suponiendo q las normales de los poligonos son iguales sobre donde se proyecta ? q criterio se aplica ?
saludos
CitarAhora una cosa q se me ocurre con el planner mapping. Imaginate q estas en un pasillo dos paredes, techo y suelo. Si nos ponemos a calcular sobre q plano debemos proyectar suponiendo q las normales de los poligonos son iguales sobre donde se proyecta ? q criterio se aplica ?
saludos
:o Las normales de los poligonos son iguales ????? Eso es imposible; los poligonos no podrian formar un pasillo.
Para determinar sobre que plano se aplica el mapeado yo me baso en el componente mas grande de la normal.
function vectLargestComponent(const _v: P_Vec): TXYZ;
var _abs : single;
begin
_abs := Abs(_v^[X]);
Result := vectX;
if _abs < Abs(_v^[Y]) then begin _abs := Abs(_v^[Y]); Result := vectY; end;
if _abs < Abs(_v^[Z]) then Result := vectZ;
end;
Me referia q las normales fueran iguales en modulo ;DDD. Viendo tu codigo veo q si son iguales primero pilla el de la componente X despues el de la Y y por ultimo el de la Z, supongo q te habra salido asi y no lo has hecho por algo especial no?
saludos
CitarMe referia q las normales fueran iguales en modulo ;DDD. Viendo tu codigo veo q si son iguales primero pilla el de la componente X despues el de la Y y por ultimo el de la Z, supongo q te habra salido asi y no lo has hecho por algo especial no?
saludos
todas las normales son iguales en modulo :P
vale, vale,... ya se q te refieres a las componentes ... pues el codigo venia asin; como creo q ya comente el codigo del plannar maping lo saque de un ejemplo q encontre. pero weno, si las 3 compos son iguales da igual el plano q eligas...
pd- sigo pensando q es jodido formar un pasillo con poligonos cuyas normales tengan sus 3 componentes del mismo modulo :P
Lord Tronco, ¿puedes pasarte un poco por el thread de Mi Amigo Mac y decirme qué te sugiere el problema que allí me acaece? El de las luces "bajo" la pared. Asias miles.
pa q ? si ya lo has arreglao :P
nah, es que eres tan rápido que lo has solucionado incluso antes de decírmelo :D