Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Degiik en 01 de Enero de 1970, 01:00:00 AM

Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                Buenas, necesito ayuda sobre como crear el efecto de agua, fuego y explosiones, la verda es que no tengo ni idea y no se por donde empezar, estoy descolocado, así que acudo al foro.

Gracias.                                
Título: Agua, Fuego, Explosiones
Publicado por: BeRSeRKeR en 01 de Enero de 1970, 01:00:00 AM
                                Ahí van unas pistas...

Fuego: sistemas de partículas.

Explosiones: pues también sistemas de partículas pero en esta ocasión depende de qué tipo de explosión. Si te refieres a un cuerpo saltando en pedazos, pues podrías tener una serie de despojos :riendo: (vease cabeza, brazos, piernas, intestinos, etc) que seguirían la física de un sistema de partículas. Además puedes añadir partículas que simulen la sangre.

Agua: pues una malla poligonal más o menos densa con un movimiento que simule oleaje (todo depende del agua que quieras...si está revuelta o en calma). Además, después tienes que tener en cuenta una cosa. ¿Utilizarás los efectos que te ofrecen las GPU de última generación o prefieres mirar hacia atrás?. En este último caso la solución para dar un toque de "realismo" al agua es meter una textura a esa malla (mírate por ejemplo las de quake3) y aplicarle algún tipo de turbulencias y scroll a nivel de coordenadas de textura. Además cabe la posibilidad de añadirle un faked environment mapping para simular la reflexión del entorno (simular muy malamente, aunque da su resultado). Si, por el contrario, miras hacia adelante (o al presente :sonriendo:) pues tenemos que puedes alcanzar un realismo mucho mayor. Por ejemplo utilizar cube environment mapping para reflejar el entorno del agua, bump mapping para resaltar las depresiones del agua e incluso podrías crear un efecto de refracción para distorsionar los objetos que hubiesen dentro del agua. Evidentemente esto depende de donde vayas a aplicar estos efectos. Si es una demo podrías hacerlo pero en el caso de un juego, en estos momentos, se me antoja un poco exagerado. Con menos cosas se puede obtener un buen resultado visual sin afectar demasiado la velocidad del juego...

Saludos
                               
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                Ooopss, se me olvido decir que soy un rook, por lo que mucha terminologia que empleas me suena a chino, supongo que es un poco dificil, explicar cosas como las que pido. Así pues si alguien me puede facilitar alguna URL que hable sobre cualquiera de los temas se lo agradecera muchisimo. Así vendria al foro con dudas mas directas.

Gracias.                                
Título: Agua, Fuego, Explosiones
Publicado por: NeLo en 01 de Enero de 1970, 01:00:00 AM
                                Google

Quizás haya algo en GameDev o flipCode.

Si no encuentras nada dilo, e intentaré buscar en mi directorio de favoritos, pero vamos, GameDev es buen sitio para empezar a buscar.

Saludos.

_________________
"I have never let my schooling interfere with my education."
Mark Twain

[ Este Mensaje fue editado por: NeLo el 2002-09-06 22:14 ]                                
Título: Agua, Fuego, Explosiones
Publicado por: Emotion en 01 de Enero de 1970, 01:00:00 AM
                                tambien hay otros sitios como http://www.gametutorials.com, romka.demonews.com, nehe.gamedev.net, y alguna pagina mas que ahora mismo no recuerdo... onde hay muchas cosas de agua, fuego, sistemas de particulas en general, animacion por huesos, efectos visuales, y mas cosas, eso si... esta en perfecto inglispitinglis, asi que no se como andas con el idioma, pero vamos, que es sencillito y los sitios merecen la pena

espero que esto te pueda servir de ayuda...

un saludo                                
Título: Agua, Fuego, Explosiones
Publicado por: Nekorash en 01 de Enero de 1970, 01:00:00 AM
                                Hombre, yo también soy un novato, pero creo que te puedo ayudar. Para conseguir el efecto del fuego necesitas una paleta de degradados de rojo (por ejemplo). Dibujas la llama, y haces un filtrado bilineal, que consiste en hacer que cada pixel tome el valor promedio de los pixels adyacentes (los pixels de arriba, abajo, izquierda y derecha). Con esto, si tienes una paleta degradada contínua, el color de los pixels se difumina y queda muy chulo. Ejemplo:

Pixel=(Pixel_arriba + Pixel_abajo + Pixel_izquierda + Pixel_derecha) / 4

Puedes meter a la vez un blur motion (creo que se llama asi), dividiendo en vez de entre 4, entre 4.005 De esta manera la imagen se difumina y se esfuma. Queda realmente bien.

Para el agua puedes hacer lo mismo, pero con una paleta de azules (aunque no queda tan bien...)

Si me he equivocado, me corrijan. Un saludo mu gordo.

Nekorash                                
Título: Agua, Fuego, Explosiones
Publicado por: BeRSeRKeR en 01 de Enero de 1970, 01:00:00 AM
                                No te has equivocado pero me parece un poco lento si se trata de hacer el efecto de fuego de las antorchas (por ejemplo) en un juego ya que habría que bloquear la textura y actualizar los pixels...todo eso cada frame.

Otra solución, además de la de los sistemas de partículas, sería lo que hacen muchos juegos; crean dos polígonos en cruz y le meten como textura una secuencia de imágenes que simula el fuego...

De todas formas, no sé ahora mismo (ya que no soy un experto en el tema), pero es posible que llegue un momento en que, el método del que hablas, se pueda realizar con un pixel shader, con el consiguiente aumento de velocidad...

Saludos
                               
Título: Agua, Fuego, Explosiones
Publicado por: ethernet en 01 de Enero de 1970, 01:00:00 AM
                                berserker estas demasiado flipado con shaders ;-PPPP

Para el efecto agua estaria bien usar un heigthtmap q fuera calculado con perlin noise o con la suma de varias funciones trigonometricas de distinta frecuencia y distinta fase (parecido  a perlin noise).
Yo hice un efecto agua con perlin noise ->
http://www.multimania.com/minasdenatla/tmp/icl.exe
(compilado con intel c++) por si quieres verlo

Saludos                                
Título: Agua, Fuego, Explosiones
Publicado por: NeLo en 01 de Enero de 1970, 01:00:00 AM
                                ethernet los shaders son el futuro. Es más, son el presente xD.

Con los lenguajes de alto nivel ya no hay excusa para no exprimir una GPU al máximo.

He leido muy amenudo aquí a gente que se hace sus propias rutinas en asm porque gana velocidad... ¿Y después está mal usar Cg o cualquier otro lenguaje para ganar varios FPS y crear efectos espeluznantes?
                               
Título: Agua, Fuego, Explosiones
Publicado por: NeLo en 01 de Enero de 1970, 01:00:00 AM
                                Por cierto ethernet, muy bonita la demo del agua :riendo:
                               
Título: Agua, Fuego, Explosiones
Publicado por: ethernet en 01 de Enero de 1970, 01:00:00 AM
                                Estoy deacuerdo contigo y no estoy en contra de los shaders ni de ninguna cosa q aporte nuevas cosas. Con lo q no estoy deacuerdo es empezar la casa por el tejado, creo q primero hay q aprender cosa basicas y despues ya le meteras cañaa shaders y cosas de ese tipo.
El comentario para berserker era una coña ;)) ;*                                
Título: Agua, Fuego, Explosiones
Publicado por: CordayUK en 01 de Enero de 1970, 01:00:00 AM
                                Un sistema de fuego que he visto hace poco y esta bastante chulo, en el "FreekStyle" de EA Sports para la play2 lo podeis ver en accion :sonriendo: utilizan un sistema de particulas pero con unas texturas que simulan una llama mas o menos, cambiando el color desde el origen hasta el final con rojo, amarillo y negro. El truco esta en jugar mucho con el alpha de la textura para que a medida que la la textura va "subiendo" se va haciendo transparente, cuando tienes esta misma textura repetida muchas veces con diferentes tamanaos y rotando parece un fuego real... la tecnica en si es sencilla pero hay que jugar mucho con la textura y los vertex color.                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                Buenas!

Primero disculparme, he tenido un par de movidas y no he podido estar por el foro. Tambien agradecer a todos los que os habeis pasado para ayudarme y habeis dejado un post. Me sacais mucha ventaja utilizando tecnicismos que se me escapan, así que os pediria que me dierais direcciones directas a tutoriales, articulos ( sobre agua, fuego, explosiones ) para un rook como yo. algunas direciones que me habeis pasado son muy genericas y no encuentro lo que busco. Necesito que me encamineis a algún sitio donde poder y tirando de el hilo hasta que me aclare. Yo por supuesto pongo las ganas y horas que hagan falta para analizar lo que me digais para mirar.

Os agradezco la atencion a todos. :sonriendo:


[ Este Mensaje fue editado por: Degiik el 2002-09-12 20:29 ]                                
Título: Agua, Fuego, Explosiones
Publicado por: CordayUK en 01 de Enero de 1970, 01:00:00 AM
                                el efecto de fuego y explosiones se consigue normalmente utilizando un sistema de particulas. Lo mas sencillo es tener un array de "billboards" que se va reciclando constantemente. Cada uno de estos billboards cuando los creas tienen valores mas o menos aleatorios como vida, velocidad, etc... pero todos nacen en un mismo sitio, y mueren al cabo de un rato. Imaginate unos fuegos artificiales... Bueno pues simplemente jugando con los diferentes parametros puedes hacer desde unos fuegos artificiales, hasta una fuente de agua, o un humo, o una explosion, o fuego, etc... la tecnica es la misma. solo cambian los parametros y las texturas de los billboards. Un billboard es simplemente un cuadrado con textura que siempre mira a la camara. Imaginate por ejemplo el sol, que siempre mira hacia ti, nunca puedes rodearlo.

lo primero seria crearte un sistema de particulas sencillito y luego ir poniendole mas cosas para hacer efectos mas logrados.
estos son algunos links:

este esta bueno para hacerte tu propio sistemade particulas...
http://nehe.gamedev.net/projects/particle/particle.asp

mas avanzados...
http://www.cs.unc.edu/~davemc/Particle/
http://www.mysticgd.com/misc/AdvancedParti...icleSystems.pdf

lo del efecto de agua es algo mas complicado, basicamente es una malla que vas moviendo simulando ondas, despues ya le pones mas cosas para que parezca agua :sonriendo:

aqui tienes otros links a efectos de agua, fuego, etc..
http://www.gamedev.net/reference/list.asp?...p?categoryid=72

espero te sirva, suerte! :sonriendo:
                               
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                mmm, bien creo que empiezo a captar la idea, fantastico!!! voy a meterme a ello ahora mismo. Ire poniendo los avaces que haga y las dudas.

De todas formas si alguien mas quiere dejar direciones de interes o realizar comentarios, perfecto :ojo:.

Gracias.                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                Bueno, creo ke me quedo bastante bien, podeis descargarlo aquí --http://www.iespana.es/Degiik/fuego.zip -- , tambien teniendo en cuenta, que lo quiero para un juego no para una demo, y que no quiero perder mucho rendimiento. Bueno ya valorareis vosotros :ojo:. Ahora mi problemas es cuando quiero con una camara dar una vuelta, se ve el plumero 2D,. ¿Como lo soluciono ?.

¿Y otra cosa, como encamino las explosiones?

Solo una apreciacion mas... ...me dejireon que tb se podia hacer el fuego como si se tratara de 2D con un sprite animado del mismo... ...que opinais?

Gracias a todos.

[ Este Mensaje fue editado por: Degiik el 2002-09-15 12:47 ]

( Arreglado el link je iva mal :ojo: )

[ Este Mensaje fue editado por: Degiik el 2002-09-15 13:04 ]                                
Título: Agua, Fuego, Explosiones
Publicado por: NeLo en 01 de Enero de 1970, 01:00:00 AM
                                No me funciona la descarga.

Citar
Ahora mi problemas es cuando quiero con una camara dar una vuelta, se ve el plumero 2D

No he visto la demo, pero, ¿puede ser que te refieras al billboarding?

Las explosiones con un sistema de partículas puede quedar muy bonito. Y claro, la malla debe reventar en mil pedazos xDDD
                               
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                Perdon, pero copie mal el link, ya lo puse arriba bien, pero lo vuelvo a poner aki http://www.iespana.es/Degiik/fuego.zip . El programa se cierra con ALT+F4 ,me daba palo programar el ESC. xDDDDDDD

Gracias.

[ Este Mensaje fue editado por: Degiik el 2002-09-15 13:22 ]                                
Título: Agua, Fuego, Explosiones
Publicado por: AgeR en 01 de Enero de 1970, 01:00:00 AM
                                He visto la demo, y no está mal (has probado con algo mas de detalle?)
Para que no dé la sensación 2D, la forma más usual (creo) es hacer que las normales siempre apunten a la camara. No he tocado el tema pero creo que en eso consiste el billboarding (en el sdk de las directx tienes un ejemplo).
                               
Título: Agua, Fuego, Explosiones
Publicado por: NeLo en 01 de Enero de 1970, 01:00:00 AM
                                Un fuego muy bonito :sonriendo:

Ahora te falta usar billboarding, que consiste en orientar los polígonos para que miren a la cámara. Para ello debes hacer que la normal del polígono apunte directamente a la cámara.
                               
Título: Agua, Fuego, Explosiones
Publicado por: NeLo en 01 de Enero de 1970, 01:00:00 AM
                                Joer! Si que escribo lento... xDD
                               
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                Podeis especificar un poco mas lo del "billboarding", no el concepto, sino como conseguirlo, o alguna URL donde hablen.

Gracias :riendo:

[ Este Mensaje fue editado por: Degiik el 2002-09-15 14:10 ]                                
Título: Agua, Fuego, Explosiones
Publicado por: Emotion en 01 de Enero de 1970, 01:00:00 AM
                                offtopic:

(para Nelo) que bueno tio! :sonriendo: de donde has sacado al muñequito este tan majo? :sonriendo:

un saludo                                
Título: Agua, Fuego, Explosiones
Publicado por: CordayUK en 01 de Enero de 1970, 01:00:00 AM
                                este es un tutorial sobre billboars.

http://www.lighthouse3d.com/opengl/billboa...php3?billCheat2

existen varias tecnicas, la primera que te viene a la cabeza es coger los vectores de la camara (lookat, right, up) y crear una matriz de rotacion para "corregir" tu modelo de forma que apunte a la camara.

el lunes te paso codigo "listo para usar" porque hoy no lo tengo a mano :sonriendo: pero de momento vete mirandote el tutorial que te explica una manera mas rapida :sonriendo:

salu2
                               
Título: Agua, Fuego, Explosiones
Publicado por: ethernet en 01 de Enero de 1970, 01:00:00 AM
                                offtopic: para emotion y nelo. si empezamos a meter dibujitos y demas ya q el foro va lento de por si, los de 56k nos tendremos q conformar con leer el html a pelo                                
Título: Agua, Fuego, Explosiones
Publicado por: NeLo en 01 de Enero de 1970, 01:00:00 AM
                                Offtopic:
Emotion puedes mirar el enlace del Emoticon para saberlo.
ethernet este es el foro más rápido que he visto jamás. Y además, no soy el único con una imagen en la firma, y da igual que sea un emoticon que 6 linias de texto (apróx. xD).

_________________
(http://freespace.virgin.net/filthe.beats/images/smilies/3/rocket.gif)
"Un puñado de arena es una antología del universo."
Albert Einstein

[ Este Mensaje fue editado por: NeLo el 2002-09-15 16:12 ]                                
Título: Agua, Fuego, Explosiones
Publicado por: ethernet en 01 de Enero de 1970, 01:00:00 AM
                                offtopic Nelo:
-tu foto son 4Kb ademas cuando pones una foto a otro host tiene q sacar otra conxion mas (sin tener en cuenta DNS etc)

-mi firma 140 bytes y se baja con el contenido html q genera el php

elige si tuvieras 56k :)
                               
Título: Agua, Fuego, Explosiones
Publicado por: Emotion en 01 de Enero de 1970, 01:00:00 AM
                                para Nelo:

gracias, eso hice y ya encontre la pagina, los de Counter-Strike estan muy chulos :sonriendo:

para ethernet:

no te preocupes, mi interes en esos emoticones no era para ponerlos como firma, simplemente me llamaron la atencion... y lo cierto es que tu tienes 56k y yo ADSL de 256 y aun asi a veces va muy pero que muy lento, asi que no problem = no emoticons :sonriendo:

un saludo                                
Título: Agua, Fuego, Explosiones
Publicado por: NeLo en 01 de Enero de 1970, 01:00:00 AM
                                Esta bien, por votación popular, os vais a quedar sin el mejor Emoticon que jamás ha visto este foro.
                               
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                Bueno... ...dejemos un poco los offtopic... he puesto una version nueva del fuego en http://www.iespana.es/Degiik//index.htm link-> donwload fuego2, he metido una cruz para dar volumen como he leido por agun lado. Es mas rapido billboard? lei tb que en vez de poner en cruz que hiciera un asterisco, y que lo hiciera rotar?

Espero vuestros consejos a un novato.
Gracias.

[ Este Mensaje fue editado por: Degiik el 2002-09-15 17:46 ]                                
Título: Agua, Fuego, Explosiones
Publicado por: CordayUK en 01 de Enero de 1970, 01:00:00 AM
                                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!                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                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 ]                                
Título: Agua, Fuego, Explosiones
Publicado por: BeRSeRKeR en 01 de Enero de 1970, 01:00:00 AM
                                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
                               
Título: Agua, Fuego, Explosiones
Publicado por: ethernet en 01 de Enero de 1970, 01:00:00 AM
                                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:
                               
Título: Agua, Fuego, Explosiones
Publicado por: BeRSeRKeR en 01 de Enero de 1970, 01:00:00 AM
                                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 DiGiTALYS
La web del motor Illusion3D

[ Este Mensaje fue editado por: BeRSeRKeR el 2002-09-15 21:47 ]                                
Título: Agua, Fuego, Explosiones
Publicado por: Lord Trancos en 01 de Enero de 1970, 01:00:00 AM
                                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:
                               
Título: Agua, Fuego, Explosiones
Publicado por: ethernet en 01 de Enero de 1970, 01:00:00 AM
                               
Berserker:

el test de profundid no se basa en el zbuffer? ahora si q me acaba de joder ... ;((
                               
Título: Agua, Fuego, Explosiones
Publicado por: Lord Trancos en 01 de Enero de 1970, 01:00:00 AM
                                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.
                               
Título: Agua, Fuego, Explosiones
Publicado por: ethernet en 01 de Enero de 1970, 01:00:00 AM
                                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.
                               
Título: Agua, Fuego, Explosiones
Publicado por: CordayUK en 01 de Enero de 1970, 01:00:00 AM
                               
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
                               
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                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 ]                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                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 ]                                
Título: Agua, Fuego, Explosiones
Publicado por: BeRSeRKeR en 01 de Enero de 1970, 01:00:00 AM
                                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
                               
Título: Agua, Fuego, Explosiones
Publicado por: Mars Attacks en 01 de Enero de 1970, 01:00:00 AM
                                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?).
                               
Título: Agua, Fuego, Explosiones
Publicado por: AgeR en 01 de Enero de 1970, 01:00:00 AM
                               
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:                                
Título: Agua, Fuego, Explosiones
Publicado por: Tei en 01 de Enero de 1970, 01:00:00 AM
                                fuego: un buen motor de particulas lo hace, simplemente emite particulas redondas con color fuego que se mezclen con alpha y que asciendan con el movimiento del fuego y algo de aleatoriedad. Añadir un poquitin de humo, o algun efecto esporadico de chispas es el remate final para antorchas.

agua: no tiene porque tener olas, pero algun texturado multicapa, o efectos geniales como los de warcraft 3 la hacen hermosa. Se le puede dar un movimiento sinoidal simple al estilo de quake que es algo barato de hacer.

humo: como el fuego, pero colores grises y mas lento.

en realidad todo es tener un buen motor de particulas.

para explosiones o rebites de balas, viene bien que tu motor de particulas sepa hacer chispas, o mejor aun, real beams..... los real beams (porticulas que van de vector V a vector W) se pueden usar para electricidad al estilo de RTCW...bueno, yo lo he echo, no es que me haya quedado muy bien, aunque a la gente le guste.(que mierda de teclado el que estoy usando, madre... y encima lag)                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                Lo primero, Gracias a todos por escribir en el post. Hasta el fin de semana no puedo, provar mucho, pero lo haré.

CordayUK puedes especificar un poco mas el punto 4. No lo entiendo.

Mars Attacks, sorry pero estoy acostumbrado a salir de mis programas con ALT+F4, es una mala costumbre lo se. Si sales con ALT+TAB hay problemas con el raton... ...sorry.

AgeR me satiface el saber que hay alguien mas que da vueltas a las cosas en el tren :riendo:, es mu fuente de inspiracion, de echo vivo en frente de una estacion. xDDDD.

Tei agradezco tu pos tb, pero quizas fui mu ambicioso con el fuego, agua, y explosiones. Ahora me estoy centrando en el Fuego. Y despues continuare con lo demas. Ya revisare tu post en tonces.

Voy a ver si cambio la textura, que parece que falla, y quitarle esa sensacion de cuadriculacion.

Thks All.





[ Este Mensaje fue editado por: Degiik el 2002-09-17 22:59 ]                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 1970, 01:00:00 AM
                                Lo primero, Gracias a todos por escribir en el post. Hasta el fin de semana no puedo, provar mucho, pero lo haré.

CordayUK puedes especificar un poco mas el punto 4. No lo entiendo.

Mars Attacks, sorry pero estoy acostumbrado a salir de mis programas con ALT+F4, es una mala costumbre lo se. Si sales con ALT+TAB hay problemas con el raton... ...sorry.

AgeR me satiface el saber que hay alguien mas que da vueltas a las cosas en el tren , es mu fuente de inspiracion, de echo vivo en frente de una estacion. xDDDD.

Tei agradezco tu pos tb, pero quizas fui mu ambicioso con el fuego, agua, y explosiones. Ahora me estoy centrando en el Fuego. Y despues continuare con lo demas. Ya revisare tu post en tonces.

Voy a ver si cambio la textura, que parece que falla, y quitarle esa sensacion de cuadriculacion.

Thks All.                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 05 de Noviembre de 2002, 01:06:54 PM
                                Buenas  :jaja: , vuelvo a estar aki, he tenido unos malos meses y no he podido continuar con el fuego que estaba desarrollando con particulas... ...con la ayuda de los usuarios del foro consegui buenos trabajos, ahora pretendo reanudarlo.

Lo primero que haré será unir dos post sobre el mismo tema, pues algun 'garrulo' que circulaba por estos parajes 'peto' algunos post ( weno el tema se revolvio por el webmaster :)


Citarotra forma (creo que es la forma fácil de la que hablaba CordayUK)

D3DXMATRIX viewMtx, worldMtx;
g_pD3DDev->GetTransform(D3DTS_VIEW, &viewMtx);
D3DXMatrixInverse(&worldMtx, NULL, &viewMtx);
worldMtx._41 = billboardPos.x;
worldMtx._42 = billboardPos.y;
worldMtx._43 = billboardPos.z;
g_pD3DDev->SetTransform(D3DTS_WORLD, &worldMtx);
RenderBillboard();

Si utilizas un pure device, entonces no es recomendable el método GetTransform ya que lo más seguro es que no te devuelva lo que esperas. Así que te aconsejo que mantengas tus matrices de vista y de proyección (por ejemplo) por tí mismo...

Saludos


Citar

m_matWld = m_matRot * matBBRot * m_matLoc;
m_matWld -> matriz final de transformacion del objeto. es la que tenemos que aplicar al billboard.

m_matRot -> es la matriz de rotacion del billboard (no hace falta que la pongas, si quieres ignorala)

estas matrices pueden ser D3DXMatrix o tu propio tipo matriz.

no se si me explicado bien... :/ si eso dime a ver que parte no pillas...

salu2
m_matBBRot -> es la matriz que "corrige" la rotacion del billboard.

m_matLoc -> es la matriz que coloca el billboard en el mundo

es decir, la matriz final del billboard se compone de dos cosas, la rotacion y la localizacion. La localizacion dice donde esta el billboard, y la rotacion hacia donde mira.




Con estos ultimos mensajes que recibi, voy a continar a ver si obtengo los billboards, gracias a todos y en especial a CordayUK y BeRSeRKeR  :P                                
Título: ueeeeeeee!!!!
Publicado por: Degiik en 12 de Noviembre de 2002, 08:05:54 PM
                                Por fin!!!
ufffff !!!

No me aclare con el ultimo post que me dejaron, asi que despues de pelearme por la web, y des buscar y probar muchas 'teorias' al final entendi y aplique una xD

http://www.lighthouse3d.com/opengl/billboarding/

aqui esta de donde obtube la solucion a mis problema :) .

Gracias a todos por echrame un cable, y abusando un poco mas... ...¿como lo encamino ahora para hacer explosiones ? ya tengo un fuego creible, pero no tengo ni idea de como generar un explosion, os pido auda de nuevo, :D                                
Título: Agua, Fuego, Explosiones
Publicado por: Whoiam en 14 de Noviembre de 2002, 12:23:03 AM
                                Hola, he leido todos los mensajes de este asuntillo del fuego que te llevas entre manos, he visto las otras versiones del fuego, que tenias puesto el link, y son geniales :D ¿ Dices que ahora tienes otro mejor con Billboard ?o como se llame jejeje. ¿ Puedes subirlo a la red para bajarlo y verlo ?. Ojala algun día pueda hacer yo algo así.

Salu2.                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 15 de Noviembre de 2002, 07:21:46 PM
                                Weno, he subido lo ultimo que tengo del fuego, utilizando billboard, hay dos versiones, dos exe, a ver que fuego pensais que que es mejor... http://www.iespana.es/Degiik//OnFire.zip

POr otro lado hay una cosa que me trae mosca  :-?  he puesto una parede detras del fuego, y no se si soy yo o que, pero como si el el fuego que justo cae detras de la parte del fuego se viera bastante mas iluminado... weno ya direis algo.

Por otro lado... ...alguien me introduce ¿ como seria el tema Explosiones ?

Gracias.                                
Título: Agua, Fuego, Explosiones
Publicado por: Whoiam en 17 de Noviembre de 2002, 05:35:16 PM
                                He tio, fantastico, mola mucho los dos exe que tenias  8)  8)  8)

Solo que cuesta un poco configuararlo... ...pero te lo has currado jejejeje  :P  :P  :P  :P

Siento no poder ayudarte en lo de las explosiones, no tengo ni idea de como hacerlo, a ver si alguien te ayuda  :X9:  :X9:  :X9:                                
Título: Agua, Fuego, Explosiones
Publicado por: Mars Attacks en 17 de Noviembre de 2002, 06:52:22 PM
                                Nosotros tenemos pensado hacerlo con tres planos cruzados (como los planos de las tres dimensiones) y una textura de explosión. Expandiendo este curioso impostor se simularía la explosión. Sin embargo, no me acaba de convencer. Si alguien tiene una propuesta mejor, soy todo oídos.                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 18 de Noviembre de 2002, 06:39:51 PM
                                mmm me parece un buena solucion, pero como tu dices no me parece la mas optima... alguien nos echa un cable ? como seria una explosion ?                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 27 de Noviembre de 2002, 10:01:54 AM
                                Nadie puede ayudarme con las explosiones ? como serian ? mas o menos o alguna URL que hable del tema.                                
Título: Agua, Fuego, Explosiones
Publicado por: Lord Trancos en 27 de Noviembre de 2002, 05:10:20 PM
                                Depende de como la quieras... mucho juegos usan simplemente un billboard con una textura animada de una explosion                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 28 de Noviembre de 2002, 02:45:40 PM
                                One Question...

...dejando de banda un poco las explosiones... aunque se podria incluir tambien el tema... mmmm

Si yo tengo una particula utilizando billboarding, siempre la tendre de cara.

Y si quiero rotarla en algun sentido ¿ como seria el tema ?

Thanks.                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 18 de Diciembre de 2002, 10:53:40 AM
                                mmm... ...nadie me puede ayudar con la pregunta anterior ???                                
Título: Agua, Fuego, Explosiones
Publicado por: Mars Attacks en 18 de Diciembre de 2002, 12:29:17 PM
                                Puesss... ahora mismo no se me ocurre para qué vas a querer rotarlas, pero si pones un ejemplo igual me aventuro a lanzar alguna propuesta :)                                
Título: Agua, Fuego, Explosiones
Publicado por: BeRSeRKeR en 18 de Diciembre de 2002, 02:22:06 PM
                                Si me fijé bien, en Doom3, algunas partículas hacen un roll (rotan en el eje Z), además de estar encarando a la cámara...y bueno, hacer esto es simplemente añadir a la concatenación de matrices una matriz de rotación en el eje Z....no creo que sea problema...

Saludos.                                
Título: Agua, Fuego, Explosiones
Publicado por: Mars Attacks en 18 de Diciembre de 2002, 02:54:21 PM
                                Bueno, te refieres a que rotan en los otros ejes que no son paralelos al de la cámara. Puessss... a ver... sacas el plano perpendicular al de la cámara y lo rotas sobre el eje de la cámara. De hecho, si es un billboard ya tendrás el plano perpendicular, y sólo tendrás que rotarlo sobre el eje de la cámara (en directx no sé, en opengl transladarías y rotarías el conjunto plano-eje hasta que coincidiera con el origen, rotarías y volverías a transladar a la posición inicial).                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 18 de Diciembre de 2002, 03:25:40 PM
                                Berserker, tienes razon, el doom 3 lo utiliza, de esa el humillo de las armas es mas espectacular, mas real. ¿ Puedes ser un poco mas explicito de como conseguir ese efecto ?                                
Título: Agua, Fuego, Explosiones
Publicado por: Degiik en 01 de Enero de 2003, 05:50:40 PM
                                Berserker help !!!! pliz
te he visto activo en el foro... ...me puedes explicar como conseguir ese giro de las particulas ?

gracias. :)                                
Título: Agua, Fuego, Explosiones
Publicado por: BeRSeRKeR en 01 de Enero de 2003, 06:12:10 PM
                                Te remito al code que te puso CordayUK

Citar
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;

Si te fijas, en la concatenación final hay un m_matRot que es la rotación local de la partícula (por ejemplo la rotación en Z que quieres hacer). Es posible que en OpenGL el orden de la concatenación cambie pero no estoy seguro...

De todas formas, leete la explicación que te dió CordayUK sobre el code de arriba. Creo que está en la página 3 de este thread...

Saludos y feliz año