Foros - Stratos

Proyectos => Jad Engine => Mensaje iniciado por: BeRSeRKeR en 21 de Septiembre de 2005, 02:35:56 PM

Título: Avances En El Motor/visor...
Publicado por: BeRSeRKeR en 21 de Septiembre de 2005, 02:35:56 PM
 Bueno pues aquí estamos otra vez para informar de los avances del motor y del visor.

Lo más importante es que se han implementado tres tipos de niebla y los decals.

Niebla
En esta imagen podéis ver un ejemplo de niebla de tipo "exponential square" (click para ver tamaño original).

(http://img291.imageshack.us/img291/1576/asylum03expfog1nt.th.jpg)

Y en esta otra un ejemplo de niebla de tipo "layered" (click para ver tamaño original).

(http://img291.imageshack.us/img291/6019/asylum04layeredfog7ho.th.jpg)

Decals

Los decals son planos que se superponen a las superficies para dar detalle extra como pueda ser sangre, barro, musgo, carteles, etc. En otras palabras, y tal como se traduce la palabra decal, son como calcomanías :P. Por ejemplo, en la siguiente imagen podéis ver los decals que se han utilizado para añadir manchas de sangre al suelo (click para ver tamaño original).

(http://img291.imageshack.us/img291/7799/asylum01normal5ah.th.jpg)

Ahora la versión wireframe para que podáis ver los quads que forman los decals (click para ver tamaño original).

(http://img291.imageshack.us/img291/9999/asylum02wiredecals4lr.th.jpg)

Los decals no tienen por qué ser un quad. Pueden ser un patch de Bèzier moldeado para distorsionar la textura aplicada al decal.

Lo siguiente

Lo siguiente que se hará será algo similar a los decals pero no exactamente lo mismo. Implementaremos los detail maps que como su nombre indica se utilizan para añadir detalle a las texturas y de paso disimular la repetición de las mismas. El funcionamiento será como en el caso del mapa de tipo Blend en MAX. Una textura base, el detail map y una máscara que indica qué partes de la textura de detalle se verán.

Otra cosa que habría que implementar es otro tipo de niebla, la volumétrica. La niebla de tipo layered queda muy bien y a simple vista pudiera parecer que se trata de un volumen de niebla, pero lo cierto es que afecta a toda la escena. Así que habrá que implementar volúmenes de niebla. En principio se me ocurrió una técnica con la que se podría utilizar cualquier volumen convexo pero al final no funcionó como se esperaba, así que habrá que buscar otros métodos.

¡Eso es todo por ahora!.
Título: Avances En El Motor/visor...
Publicado por: Mars Attacks en 21 de Septiembre de 2005, 02:46:52 PM
 Como siempre, me quito el sombrero ante vosotros. Chapeau.
Título: Avances En El Motor/visor...
Publicado por: ajmendoza en 21 de Septiembre de 2005, 03:13:13 PM
  (ole)  
Título: Avances En El Motor/visor...
Publicado por: [Vil] en 21 de Septiembre de 2005, 03:18:15 PM
 Muy chulo, sin salir de la linea. Tengo una dudilla, lo de los "decals" no es un poligono puesto encima pa dar detalle? ya sea un quad o una malla compleja... pero que supone "implementarlo" y no que el grafista los ponga a mano desde el modelador. ¿es para colocar la sangre en tiempo real? (como hace doom3 y muchos otros antes)

Bueno... seguid adelante, q esto va genial
Título: Avances En El Motor/visor...
Publicado por: BeRSeRKeR en 21 de Septiembre de 2005, 03:58:04 PM
 
Cita de: "[Vil"]Tengo una dudilla, lo de los "decals" no es un poligono puesto encima pa dar detalle? ya sea un quad o una malla compleja... pero que supone "implementarlo" y no que el grafista los ponga a mano desde el modelador. ¿es para colocar la sangre en tiempo real? (como hace doom3 y muchos otros antes)
En realidad el grafista simplemente tiene que poner el plano que forma el decal y la textura y marcar el objeto como "decal". Después ya el motor hace lo que tenga que hacer con ellos. Pero principalmente se encarga de activar el depth_bias (para evitar el z-fighting) y el alpha blending. También se asigna una prioridad de render superior al resto para que al ordenar por dicha prioridad, se rendericen después de los objetos opacos.

Lo de marcar el objeto como "decal" se hace a través de una de las múltiples herramientas que se han desarrollado para MAX (siempre con MAXScript :P). Aunque bien es cierto que lo ideal es que en lugar de crear los materiales a partir de los de MAX, es crear un script de material que permite especificar muchas más cosas que con los materiales de MAX, que no tienen todas las opciones que soporta el motor. Para eso se ha desarrollado un nuevo tipo de material (nuevamente con MAXScript) a través del cual puedes especificar el script a utilizar. Evidentemente, tal como están las cosas ahora mismo, es más cómodo utilizar los materiales de MAX a pelo ya que no te obligan a escribir el script, pero en cuanto el editor de materiales esté desarrollado, eso no será ningún problema, con la ventaja de poder disponer de la potencia del sistema de scripts.

Saludos.
Título: Avances En El Motor/visor...
Publicado por: zupervaca en 21 de Septiembre de 2005, 05:01:06 PM
 ¿pero los decal no eran para producir esos efectos en tiempo de ejecucion? yo creo que lo mejor es asociar a la textura un shader que haga ese efecto y asi evitar cambios en el codigo fuente del motor, pero bueno yo nunca los he implementado
Título: Avances En El Motor/visor...
Publicado por: BeRSeRKeR en 21 de Septiembre de 2005, 05:18:47 PM
 Efectivamente también se utilizan para proyectar este tipo de cosas sobre la geometría de forma dinámica. La gran diferencia estriba en que los decals dinámicos deben ser recortados "programáticamente" mientras que éstos los recorta el grafista. Pero vamos que a la hora del render, excepto el tema de proyectar y recortar, lo demás es lo mismo. De hecho Doom3 utiliza esta misma técnica que nosotros utilizamos para poner los chorretones de sangre y los carteles a través del editor de niveles. Ponen un quad o un patch de Bèzier sobre la superficie y le ponen un material marcado como "decal". Personalmente me resulta más sencilla (para el grafista) esta técnica que la de detail mapping ya que no hay que andar utilizando dos o incluso tres canales de coordenadas de textura. Con ésta sólo necesitas un canal. Pero vamos, que también implementaremos el detail mapping.

Saludos.
Título: Avances En El Motor/visor...
Publicado por: [Vil] en 21 de Septiembre de 2005, 05:41:57 PM
 gracias por la respuesta, todo comprendido  (ole)  
Título: Avances En El Motor/visor...
Publicado por: zupervaca en 21 de Septiembre de 2005, 06:22:33 PM
 cuando tengais algo implementado de beziers por hard podiais poner un ejemplo ya que nunca he encontrado ningun tutorial ni nada para directx

saludos
Título: Avances En El Motor/visor...
Publicado por: BeRSeRKeR en 21 de Septiembre de 2005, 06:48:00 PM
Cita de: "zupervaca"cuando tengais algo implementado de beziers por hard podiais poner un ejemplo ya que nunca he encontrado ningun tutorial ni nada para directx

saludos
He mencionado los patches pero en realidad el motor no soporta patches. Lo que quería decir era que en MAX se puede utilizar un patch para eso. Fíjate que incluso en Doom3 han descartado las superficies curvas. En el editor se siguen utilizando para hacer curvas pero al compilar el mapa, directamente se tesela en una cierta medida y listo. No es como en quake3 que uno mismo era el que tenía que teselarlas.

Saludos.
Título: Avances En El Motor/visor...
Publicado por: en 21 de Septiembre de 2005, 07:54:33 PM
 Tiene buena pinta.
Citar
Los decals no tienen por qué ser un quad. Pueden ser un patch de Bèzier moldeado para distorsionar la textura aplicada al decal.
...si eso sirviera para que la sangre tenga los reflejos de las luces propios de los líquidos y se extienda por el suelo (en lugar de una calcomanía) sería la ostia.

La niebla quizás deberíais haberla probado en un pasillo largo o un lugar abierto para poder apreciarla mejor pero está bien. Por cierto... ¿habéis probado alguna vez niebla negra para escenas nocturnas?

Una sugerencia: Me gusta un tipo de niebla (que recuerdo haber visto en algunos juegos) que se va desplazando por el viento e incluso se puede apreciar las partículas y que molaría ver en el motor, aunque quizás hacer eso dependa mas del programador que del motor en sí, no se.
Título: Avances En El Motor/visor...
Publicado por: Ray en 21 de Septiembre de 2005, 07:55:30 PM
 ...siempre se me olvida.  :rolleyes:  
Título: Avances En El Motor/visor...
Publicado por: BeRSeRKeR en 21 de Septiembre de 2005, 08:25:53 PM
 
Cita de: "Ray"
Citar
Los decals no tienen por qué ser un quad. Pueden ser un patch de Bèzier moldeado para distorsionar la textura aplicada al decal.
...si eso sirviera para que la sangre tenga los reflejos de las luces propios de los líquidos y se extienda por el suelo (en lugar de una calcomanía) sería la ostia.
Bueno, lo de que se extienda la sangre se puede hacer un apaño simplemente expandiendo y/o deformando el patch pero de ahí a recrear una simulación físicamente correcta ya... :lol:
Cita de: "Ray"La niebla quizás deberíais haberla probado en un pasillo largo o un lugar abierto para poder apreciarla mejor pero está bien. Por cierto... ¿habéis probado alguna vez niebla negra para escenas nocturnas?
La verdad es que no hemos probado mucho la niebla porque tampoco tenemos muchas escenas donde elegir. (ole)
Cita de: "Ray"Una sugerencia: Me gusta un tipo de niebla (que recuerdo haber visto en algunos juegos) que se va desplazando por el viento e incluso se puede apreciar las partículas y que molaría ver en el motor, aunque quizás hacer eso dependa mas del programador que del motor en sí, no se.
Para simular las partículas se podría echar mano de un noise animado. Eso podría dar el pego. Pero no se si te refieres a eso...

Saludos.
Título: Avances En El Motor/visor...
Publicado por: en 21 de Septiembre de 2005, 09:09:07 PM
 
Citar
Bueno, lo de que se extienda la sangre se puede hacer un apaño simplemente expandiendo y/o deformando el patch pero de ahí a recrear una simulación físicamente correcta ya...

Si, la verdad es que sería complicado simular sangre realista.

Otro problema que surge es cuando disparás a los bichos y salpicas sangre a las paredes o al suelo durante un rato, al final hay que hacerlas desaparecer lentamente o algo porque si se acumulan muchas puede bajar el rendimiento, imagino que tendréis que tener en cuenta eso.

Citar
La verdad es que no hemos probado mucho la niebla porque tampoco tenemos muchas escenas donde elegir

Ok, el eterno problema de los programadores.  Y lo de la niebla negra ya lo contaré cuando llegue el momento.

Citar
Para simular las partículas se podría echar mano de un noise animado. Eso podría dar el pego. Pero no se si te refieres a eso...

Ojala me acordase del juego,  recuerdo que era bastante realista, no se, pero quizas eran solo unos puñeteros sprites de un tono blanco/gris semitransparentes que iban pululando por ahí (deberían ser bastantes).

No se si eran "noises animados" porque de terminología ando fatal. :ph34r:

Título: Avances En El Motor/visor...
Publicado por: Ray en 21 de Septiembre de 2005, 09:10:10 PM
 ....y de memoria peor.  :rolleyes:  
Título: Avances En El Motor/visor...
Publicado por: Hastur en 21 de Septiembre de 2005, 09:26:24 PM
 No se si te refieres a esto, es de un mod del Quake 1 llamado Tenebrae  :P  
Título: Avances En El Motor/visor...
Publicado por: [Vil] en 21 de Septiembre de 2005, 09:42:25 PM
 Yo creo que se refiere a nieblas como las del silent hill ¿2,3,4? uno de ellos... tambien vie una vez una demo con código de ese tipo de niebla, y se hacia con sprites moviendose a distintas velocidades delante de la camara, que al superponerse daban sensacion de grumos
Título: Avances En El Motor/visor...
Publicado por: Ray en 21 de Septiembre de 2005, 10:04:48 PM
 
Cita de: "Hastur"No se si te refieres a esto, es de un mod del Quake 1 llamado Tenebrae  :P
Pues no se si será lo mismo, la verdad es que al no estar en movimiento no se ve si  eso es niebla o luz, que ya de paso aprovecho para comentarle a Berserker que le vendria muy bien a la escena unos rayos entrando por la ventana, o un volumen de luz, y que de paso se vean las motitas de polvo como se iluminan cuando pasan por él (la verdad es que por pedir....).  :D

A ver si le pregunto a mi hermano que creo que lo vi en un juego suyo. (es que yo ultimamente ya no juego mucho)
Título: Avances En El Motor/visor...
Publicado por: Hastur en 21 de Septiembre de 2005, 10:32:52 PM
 Hace mucho tiempo que probe el mod ese y no sabria decirte si se movia, pero juraria que si, y aunque en esa imagen no se vea demasiado bien lo que si recuerdo es que el volumen de luz y sombra tenia la forma de la ventana (o lo que fuese) de arriba.
Título: Avances En El Motor/visor...
Publicado por: Ray en 21 de Septiembre de 2005, 10:46:29 PM
 
Cita de: "[Vil"]Yo creo que se refiere a nieblas como las del silent hill ¿2,3,4? uno de ellos...
Si :)  concretamente el 2

Pero no se notaban demasiado, resultaba ser una niebla uniforme, quizas por la cantidad de ellos y que estarían en diferentes posiciones 3D sumándose y camuflándose unos con otros.
Título: Avances En El Motor/visor...
Publicado por: BeRSeRKeR en 21 de Septiembre de 2005, 11:59:37 PM
Cita de: "Hastur"Hace mucho tiempo que probe el mod ese y no sabria decirte si se movia, pero juraria que si, y aunque en esa imagen no se vea demasiado bien lo que si recuerdo es que el volumen de luz y sombra tenia la forma de la ventana (o lo que fuese) de arriba.
Eso debe ser un light shaft, el cual es un efecto que tenemos implementado a medias. Precisamente nos falta que el shaft proyecte la sombra de los objetos que traspasa.

Saludos.
Título: Avances En El Motor/visor...
Publicado por: Mars Attacks en 22 de Septiembre de 2005, 12:07:04 AM
 Para lo de la sangre, ¿no bastaría con una "textura animada" de derramamiento de sangre aplicada en un decal? Así solucionarías por una parte lo del efecto y por otro evitas los múltiples decals, sólo necesitas uno (o uno de base para dejar la mancha expandiéndose y otros que sólo simulen impactos).

Lalala.
Título: Avances En El Motor/visor...
Publicado por: BeRSeRKeR en 22 de Septiembre de 2005, 02:17:09 AM
 Sí, supongo que lo de la textura animada podría ser una solución para; por ejemplo, hacer que la sangre se deslice por una pared o el suelo. La otra opción es desplazar (o estirar, dependiendo del caso) el propio decal y aplicar algún tipo de deformación a la textura. Aunque hacer eso de forma dinámica se me antoja complicado porque no se tiene el suficiente control. Por ejemplo, imaginad que la sangre se estampa en una zona que no es plana...¿en qué plano deslizas el decal?... :D

La verdad es que son tantos los detalles que se pueden implementar que parece que ésto nunca se va a acabar (y realmente nunca se acaba). Pero bueno, en principio nos centraremos en lo importante, que por ahora es terminar la versión 2.0. :)

Cita de: "Ray"de paso aprovecho para comentarle a Berserker que le vendria muy bien a la escena unos rayos entrando por la ventana, o un volumen de luz, y que de paso se vean las motitas de polvo como se iluminan cuando pasan por él (la verdad es que por pedir....).  :D
Lo cierto es que ese efecto está ya casi al alcance de nuestra mano con los light shafts. Se trata de enfocar un light shaft hacia la ventana. A ese shaft se le mete un noise animado y listo. Pero como he dicho antes, los light shafts no están totalmente funcionales. La cosa sería algo así:

(http://img302.imageshack.us/img302/2038/maxshafts6hi.th.jpg)
(Click para ver tamaño original)

¡Ojo, esta imagen está renderizada con MAX!... :P

Saludos.