Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Parallax Mapping On Focus

Iniciado por BeRSeRKeR, 11 de Julio de 2004, 10:54:22 PM

« anterior - próximo »

BeRSeRKeR

 Bueno, como tenía algo de mono de programación 3D y durante estos últimos días no tengo mi ordenata para trabajar, decidí bajar el RenderMonkey y probar algunas cosillas. Lo primero que se me ha venido a la mente ha sido la técnica de "parallax mapping" que tan popular ha hecho el nuevo UnrealEngine3. Aunque todo hay que decirlo, el primer paper que describía la técnica apareció en 2001, creo.

Así que he buscado en la red y sin duda la mejor información la he encontrado en este hilo del foro de OpenGL.org.

Bueno, ahí van las imágenes. Arriba tenéis la imagen sin parallax mapping aplicado (sólo normal mapping) y abajo la misma pero con parallax mapping y normal mapping:



-------------------------
La textura de madera la saqué de la web de Humus.

Y he aquí el wire:



Como podéis observar, en la imagen con parallax mapping se consigue dotar al modelo de una apariencia de relieve mayor que con el normal mapping a secas. Sin duda, añadir self-shadowing le daría una sensación de profundidad aún mayor.

El caso es que la técnica es tan sencilla que me sorprendió que nadie antes la hubiera utilizado en algún juego (aunque el hecho de que en Doom3 algunos modelos, además del normal-map haya un height-map, me tiene mosca :)) . El problema principal de esta técnica es que para height-maps donde la altura de un punto a otro varía brúscamente, se producen algunos defectos. Esta técnica funciona muy bien con height-maps con cambios graduales de altura. A ver si alguien propone alguna solución a este problema.

Bueno, pues ya está, ya he saciado un poco las ansias de programar. :lol:

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

seryu

 con la densidad de verrtices qe tiene esa tetera, podria hacer el relieve de verdad y dejarse de coñas.

x cierto, te distorsiona mucho el parallax? yo las pruebas qe hice, cuando son planos muy inclinados, o cuando se supone qe tiene qe hacer oclusion, qeda mal.

BeRSeRKeR

 
Cita de: "seryu"con la densidad de verrtices qe tiene esa tetera, podria hacer el relieve de verdad y dejarse de coñas.
Hombre el resultado habría sido igual utilizando un plano con 2 triángulos pero bueno, esa es la tetera que viene con RenderMonkey. :)

Cita de: "seryu"x cierto, te distorsiona mucho el parallax? yo las pruebas qe hice, cuando son planos muy inclinados, o cuando se supone qe tiene qe hacer oclusion, qeda mal.
Supongo que te refieres al inconveniente que tiene esta técnica que es lo que he mencionado antes:

CitarEl problema principal de esta técnica es que para height-maps donde la altura de un punto a otro varía brúscamente, se producen algunos defectos. Esta técnica funciona muy bien con height-maps con cambios graduales de altura.

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

seryu

 sí, no lo lei, es el inconveniente de estar leyendo y escribiendo desde la cama  :rolleyes:  

donald

 ehm...

donde habré leído yo que con directx 9 se podía hacer ya displacement mapping en tiemp real?

Es posible esto ya? es decir, verdadero relieve falso, sin esos problemas que mencionais, y sin que se vean los quebrados del contorno en baja que se nota con el normal mapping en el contorno?

He visto en la Micro capturas de F.E.A.R ..y parecían no notarse esos contronos polygonales... dicen hacer uso avanzado de las directx 9...Es eso displacement mapping? (al menos, en un programa de render, genera volumen "real" a partir de un mapa en grises...si no recuerdo mal, no se ve el truco por ningún lado..)

Cuando llegue eso será mucho mejor..

Yo creo que con las técnicas que llevo vistas, no queda mal si el modelo de baja no es demasiado ..."bajo"


Me paso por aquí de cuando en cuando (1 vez cada 3 o 4 meses) ...así que si no respondo a algo no es por antipático. ;) Posteo, y me acuerdo del foro tres meses después... ;)    :-S

Haddd

 Con DX9 ya aparece la opción de Displacement Mapping, pero hay 2 variantes del mismo me parece, y ATI utiliza su famoso TruForm para generar vértices. Pero tienes que saber qué vértice te va a generar el truform para poder asignarle correctamente el pto de la textura de displacemente, o sea, un caos.

Displacemente mapping realmente resuelve estos problemas y otros. Poque puedes hacer adaptative tesselation, que hace que algo que esté lejos sólo muestre un par de polígonos ¡por hardware!

En fin, no elocubremos. Por ahora, bumpy y parallax. Pero todo esto morirá pronto!! (ole)  

DraKKaR

 A mí me preocupa el nuevo displacement mapping de la nueva generación de tarjetas. En teoría, por lo que sé, el displacement mapping se logra gracias a la nueva característica "vertex texture lookups". Esto nos permite modificar la posición de un vértice según el valor de un texel de una textura. Si esto es así: ¿para que nos sirve todo esto? En teoría hoy por hoy no se puede generar geometría por hardware, solo podemos modificar los vértices ya creados. ¿Qué tipo de displacement mapping es este?

Por otro lado es cierto que ATI tiene su TruForm, pero no tiene nada que ver con displacement mapping, lo único que hace es "redondear" geometría añadiendo polígonos, pero sin poder generar esta geometría en base a una textura. Además, no se donde leí que ATI pasaba ya del TruForm...

Esto es extraño, porque recuerdo cuando salieron las FX5xxx y las ATI 9xxx , donde decían que se podía hacer displacement mapping "del bueno", incluso vimos imagenes en el que se usaba... esas imagenes eran en tiempo real?¿eran montajes hechos desde editores 3D?¿Soportaba la anterior generación de tarjetas disp mapping del bueno?¿Lo soportan las nuevas?¿Tendremos que esperar a tener disp. mapping del bueno a tener tarjetas con generadores de vertices por hardware?

Helius

 Pongo aquí una demo sobre offset mapping que acabo de terminar usando la misma textura que berserker  :)

Al fin resolví mis problemas con el tangent space!!  :D  
Geardome Devlog
Tutoriales sobre DirectX 9, Nintendo DS y PSP.

egf

 donald el displacement mapping genera poligonos de verdad, que tiene que ser renderizados por la tarjeta, no es un metodo que sirbe para juegos.

a la maquina le cuesta lo mismo mover un modelo en lowpoly con displacement mapping, que el modelo en alta ( o a lo mejor mas, por que encima tiene que calcular el displacement mapping)


bya bya  :P



egf

 me a pìcao e gusanillo y e buscado cosas en internet :

http://www.beyond3d.com/interviews/sweeney...3/index.php?p=2

hablan del  virtual displacement mapping  :blink:


(editao ahora mismo)

more more

http://www.delphi3d.net/articles/viewartic...bumpmapping.htm  (uoh)  

BeRSeRKeR

 
Cita de: "Helius"usando la misma textura que berserker  :)
Buscando documentación sobre RenderMan he llegado a la conclusión de que el origen de esa textura es el de un shader que programó Larry Gritz que precisamente generaba esa textura. :lol:

Cita de: "Helius"Al fin resolví mis problemas con el tangent space!!  :D
Great!. (ole)

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.