Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Agua, Fuego, Explosiones

Iniciado por Degiik, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

CordayUK

                                ey, no queda mal :sonriendo: mola.
lo unico malo que cuando lo miras de frente ves una de las "aspas" de la cruz de perfil y hace un poco raro.
Pienso que quedaria mucho mejor con un billboard, ademas de que seria mas rapido ya que solo tendrias una cara en vez de dos.
si le pudieras poner al final unas particulas negras despues de las rojas quedaria un efecto de humo muy chulo no? :ojo:

otra cosa que se podria mejorar para que no se viera tan "2D" es hacer las particulas un poquito mas transparentes o intentar quitarles ese bordeado.

pero por lo demas esan muy bien, felicidades!                                

Degiik

                                mmm... un par de cosas...

Haciendo que roten las aspas del fuego he conseguido mucho mejor resultado que el que tengo posteado. Bastante mejor no se ve tan claro que tan en cruz.

Otra cosica. Por ahora no me interesa humo, pues no es para una demo, sino para un juegecito, y puede que haya 3 o 4 fuegecitos, asi q si ahorro un poco en velocidad mejor. Pero a ke te refieres cuando dices " intenta quitarle ese bordeado ".

Mas cosas, y esta me preocupa de forma seria, si meto un objeto detras no creo ke me reacione bien, sobretodo si tengo metido el buffer de profundida, tonces, mejor ke no se vea?, pq si quiero que se vea tengo ke hacer blendding con ese objeto, y si lo ago, como se que objeto tengo detras? pq no voy hacer blending con todos los objetos... Espero que me entendais, y podais ayudar.

Gracias.

[ Este Mensaje fue editado por: Degiik el 2002-09-15 19:45 ]                                
egiik: h-O-5 hoja/ingestión 100mo Vida suspendida ( 1 día )

BeRSeRKeR

                                Con respecto al blending, renderiza las partículas siempre lo último (con el blending activado). De esta forma, el único problema que podrías tener es a la hora de realizar la mezcla entre partículas pero según el tipo de blending que utilices puede bastarte con desactivar la escritura en el zbuffer.

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

ethernet

                                Si el fuego esta detras de una pared no deberia verse pero si lo haces asi se vera a no ser q el alfa de la pared sea el adecuado pienso yo :ojo:
                               

BeRSeRKeR

                                No, no hay problema ya que aunque la escritura en el zbuffer está desactivada, no lo está el test de profundidad por lo que si hay una pared delante, las partículas no se renderizarían...o mejor dicho, se renderizarían pero no se verían :riendo:

Saludos

_________________
Visita:
La web de http://www.planetquake.com/digitalys">DiGiTALYS
La web del motor http://run.to/illusion3d">Illusion3D

[ Este Mensaje fue editado por: BeRSeRKeR el 2002-09-15 21:47 ]                                
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Lord Trancos

                                Hablando de particulas... ¿como haceis para cambiarles el color o el canal alpha...? ¿ Bloqueais el vertex buffer y modificais el color cada vez que animais las particulas ? ¿ O usais un material y en cada particula lo cambais (para evitar bloquear el vb) ? ¿O en lugar de usar un material usais el color ambiental ?

Es una cosa que siempre me he preguntado :sonriendo:
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

ethernet

                               
Berserker:

el test de profundid no se basa en el zbuffer? ahora si q me acaba de joder ... ;((
                               

Lord Trancos

                                Desactivar la escritura en el z-buffer no implica desactivar el z-buffer. Simplemente los poligonos que pintas a partir de la desactivacion no realizan ninguna actualizacion en el z-buffer, PERO estos poligonos si que son dibujados usando el z-buffer.
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

ethernet

                                ajam, ya tengo aclaraad la duda, en el caso q he puesto antes de la pared debo quedar el depth test activado pero desactivar la escritura en el zbuffer. Primero dibujo las paredes q son opacas y despues el sistema de particulas q no se dibujara, tiempo a lo tonto xD.
Pongo esto por si a alguno le surge la misma duda.
                               

CordayUK

                               
para hacer los billboards...
el codigo que prometi :sonriendo:

///

te copio el codigo que utilizo yo y mas abajo te lo explico un poco...


matrix matTranspose, matBBRot, matView;

matView = pCamera->GetViewMatrix ();

MatrixTranspose (&matView, &matTranspose); //in,out
MatrixIdentity (&matBBRot); //in

matBBRot._11 = matTranspose._11;
matBBRot._12 = matTranspose._12;
matBBRot._13 = matTranspose._13;
matBBRot._21 = matTranspose._21;
matBBRot._22 = matTranspose._22;
matBBRot._23 = matTranspose._23;
matBBRot._31 = matTranspose._31;
matBBRot._32 = matTranspose._32;
matBBRot._33 = matTranspose._33;

m_matWld = m_matRot * matBBRot * m_matLoc;


////

1. obtienes matview es la matriz-vista de tu camara, es decir, la que pasas al SetTransform(D3DTS_VIEW,..) en directx.

2. calculas la transpuesta de esta matriz (D3DX tiene funciones ya hechas para ello)

3. te creas una nueva matriz (por defecto yo siempre las inicializo a identidad, pero aqui no haria falta)
y fijas las 3 primeras filas y columnas igual que la matriz transpuesa que has calculado antes.
(si no habias inicializado la matriz a identidad, acuerdate de la ultima fila ha de ser 0,0,0,1)

4. la matriz final del billboard es la matriz de rotacion local del billboard * la matriz que acabamos de calcular
* la matriz de posicion local del billboard. (por defecto la matriz de rotacion del billboard no la usas porque
para que narices quieres rotar el billboard mas de la cuenta, no? pero para algunos efectos puedes utilizarla.
Lo normal es dejar esta matriz de rotacion local a 0x, 0y, 0z.

////

otra forma mucho mas sencilla de hacer el billboard es

1. coger la matriz-mundo de tu camara. (es la que usas para una vez invertida obtener la matriz vista)
2. cambiarle los tres primeros valores de la ultima fila a donde quieras colocar el billboard en el mundo.

y ya esta, asi de facil. esta nueva matriz es la matriz que tienes que aplicar a tu billboard.


si ves que no te funciona, un fallo tipico es mira a ver como tienes puesto el culling
(ya que puede ser que el billboard este mirando justo al reves a la camara y por eso no se dibuje)
asi que desactivalo y haz pruebas a ver.

salu2
                               

Degiik

                                Gracias, berserker, creo que las particulas al final es una simple idea, pero la mejor, como siempre.


CordayUK ahora toi en el curro, y hoy no se si revisare lo que me has pasado pues estoy muy cansado del fin de semana, de no tener nada, a tener un fuego normalito, en estos dias lo miro, y te digo algo... ...por cierto si puedo esta noche subire el de la cruz de llamas en movimiento, gana mucho con respecto al parado. Por cierto sube alguno tu... ...no se para verlo... si quieres te doy la pass de donde lo tengo yo pues es una pagina warra de iespaña que me hice para tal evento.

Gracias a todos los que ayudais.

[ Este Mensaje fue editado por: Degiik el 2002-09-16 16:17 ]                                
egiik: h-O-5 hoja/ingestión 100mo Vida suspendida ( 1 día )

Degiik

                                bueno ya en casa he subido el fuego mas actual que tengo http://www.iespana.es/Degiik//onfire.zip ¿que os parece? mmm ...otra cosa, viniendo para casa en tren dandole vueltas al billboard pense a que si consigo al angulo entre la camara y el fuego puedo hacer que las particulas roten lo necesario para tenerlas de frente... ...no se es algo que se me ocurrio, ¿ que os parece ?.

Gracias.

[ Este Mensaje fue editado por: Degiik el 2002-09-16 22:15 ]                                
egiik: h-O-5 hoja/ingestión 100mo Vida suspendida ( 1 día )

BeRSeRKeR

                                Hmm lo del ángulo...¿te refieres a que la partícula encare la cámara?...si es así, entonces, el código que te ha puesto Corday es lo que necesitas.

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

Mars Attacks

                                Puesssss aparte de darme un fallo al cerrarlo, me ha parecido bastante bueno (aunque se "ve" el cuadrado en el que aparecen las llamas, ¿no se puede cambiar eso para que no se vean los bordes del sistema tan cuadrados?).
                               

AgeR

                               
Citar
mmm ...otra cosa, viniendo para casa en tren dandole vueltas al billboard pense a que si consigo al angulo entre la camara y el fuego puedo hacer que las particulas roten lo necesario para tenerlas de frente... ...no se es algo que se me ocurrio, ¿ que os parece ?.

Vaya, eres de los mios, yo también suelo pasar mis viajes en tren pensando cosas que he de probar al llegar a casa. También se queda la gente mirándote como si fueras un bicho raro si sacas un papel y lo garabateas de arriba abajo buscando posibles soluciones? :riendo:

Offtopics a parte he probado la demo y la sensación es mucho más realista que la primera versión, pero sigue dando una sensación... muy 2D. Si el fuego es para antorchas y similares está bien ya que generalmente el fuego será de pequeño tamaño y no se notará esa "pixelación". :sonriendo:

Saludos :riendo:                                






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.