Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Creando Agua

Iniciado por AgeR, 30 de Agosto de 2004, 05:13:27 PM

« anterior - próximo »

AgeR

 A ver, veréis, quiero hacer una clase para controlar una "masa" de agua.
Vamos básicamente sería un plano y tal con sus vértices, su textura, su movimiento y bla bla bla.

El caso es que quiero que refleje los objetos de su entorno, y ahí es donde veo el problema. No estoy muy puesto en temas algo avanzados como en este caso así que recurro a vosotros.

Como he estado trasteando con el stencil, se me había ocurrido hacerlo usando los stencil mirrors (o como se llame en realidad). Pero claro, por cada triángulo del agua habría que crear un plano-espejo de esos no? Ya que el agua se está moviendo.

Otra solucion que se me ocurre podría ser renderizar a textura y aplicarsela a la malla de agua... o con algún shader o algo, la verdad es que no tengo ni idea de por donde empezar.

Venga, ideas ideas! Si puede ser sin shaders mejor, y si puede ser una tecnica decentemente rapida mejor que mejor  :lol:  

DraKKaR

 Creo que la clave está en si quieres que refleje en realidad el entorno o que pareza que lo refleje. Yo he implementado reflejos con la técnica supersencilladelamuerte del cubemap textures, que es la misma que implementa el motor del Unreal2/UT2003/UT2004. En sencilla y da un buen efecto de reflexión. Lo malo es que no es una reflexión real, sino precalculada. El Blast lo usa para la nave "protagonista".
Si no quieres calentarte mucho la cabeza y quieres algo rápido usa eso. La otra posibilidad es hacer reflexiones reales. Eso se puede hacer completamente sin shaders, pero vas a tener que hacer bastantes renders cada fotograma para que te quede bien.  

Zaelsius

 Hay una demo en la página de NVIDIA que usa la técnica que comenta Drakkar, es decir, una malla con un cube-map que se actualiza cada frame(tambien se puede optar por actualizar cada x frames).  La demo se llama "Small pond", y puedes bajarla desde aquí.

Le aplicas alguna función a los vértices de la malla para perturbarla y listo. Esto es recomendable hacerlo en un vertex shader/program si hay muchos vértices(necesario para conseguir un buen efecto).

(Si usas DirectX, en los primeros SDK's de DirectX 9.0 habia un ejemplo de una tetera y una avión, es esa misma técnica).

Edit: enlazo imagen de la demo ->

Edit: corrijo, creo que en la demo de NVIDIA el cube-map no se actualiza, acabo de ver la foto y he recordado que el fondo era estático... aunque se hacia de noche y tal... total que no me acuerdo. En fin bájala y échale un vistazo.

AgeR

 Vaya cierto, sería bastante sencillo con un cubemap. Y yo aquí calentándome la cabeza con mil formas de hacerlo.

Gracias a ambos, voy a ver si hago algo XD






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.