Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Representación de Terrenos Digitales

Iniciado por JL10, 08 de Agosto de 2006, 09:30:50 PM

« anterior - próximo »

JL10

Estoy muy interesado en la programación sobre Representación de Terrenos Digitales (Terrain Rendering), podría ser mi gran afición. He consultado la amplia gama de artículos y paginas wed y estoy abrumado de tanta información buena y aprovechable. Pero me siento desconcertado y no sabría por dónde empezar. Por eso acudo a vosotros para que me ayudeis a canalizar toda esa información: LOD, paginado, frustum culling, mapeado de detalle, etc, etc. Qué algoritmos de cada técnica son eficaces y realmente cuáles de ellas hay que aplicar en cada caso.

Mis intenciones son poder llegar a representar lo más realista posible un escenario exterior de grandes extensiones partiendo de MDTs reales y de fotos aéreas o de imágenes satélite, todo ello dentro del ámbito de la simulación en tiempo real. (No pretendo hacer animación. Ya sé que hay un compromiso entre realismo y generación en tiempo real o útil del escenario).

He tomado como referente utópico las demos de FS-X y de X-plane. Esto es lo que me gustaría hacer pero con menos pretensiones. No deseo poner objetos inteligentes en el escenario, solamente desplazarme/volar en un tipo de vehículo o nave virtual. Se trata de un proyecto que tenía en mente desde hace tiempo y ahora lo he convertido en un reto personal sin plazo alguno.

Tengo mucha inquietud y tantas preguntas que no sé por dónde empezar.  Agradezco vuestra desinteresada ayuda, todos vuestros comentarios y consejos.
Gracias

Astat

Igual ya la conoces pero http://www.vterrain.org/ es una visita obligada para todo aquel que pretenda dibujar cualquier terreno.

Personalmente he usado geomipmapping para la malla y textura de detalle pre-iluminada, con estos resultados:





Lo que ves es parte de una isla de Krakatoa. Aunque no es la mejor tecnica, geomipmapping usa nivel de detalle y es sencilla de implementar. Puede que te sirva.

En cuanto a lo de usar textura de detalle, posiblemente no te sirva si buscas el maximo realismo.

JL10

Cita de: "Astat"Igual ya la conoces pero http://www.vterrain.org/ es una visita obligada ...
Gracias, .... realmente pienso que es la mejor para introducirse plenamente. Pero.. no tiene el enfoque didáctico que necesito. (Bueno.. es de una categoría y de un nivel muy académico).

CitarEn cuanto a lo de usar textura de detalle, posiblemente no te sirva si buscas el maximo realismo.
No te entiendo, ¿por qué me dices que posiblemente no me sirva?.
Gracias

Astat

CitarNo te entiendo, ¿por qué me dices que posiblemente no me sirva?.

Texturar un terreno usando textura de detalle es, como sabras, utilizar una unica textura base para todo el terreno, y una textura de ruido pequeña que tileamos encima. Queda mucho mejor que usar la textura grande solo... pero esta lejos de quedar "realista", que es lo que dices que buscas.

Para que quede mas realista, hechale un ojo a http://en.wikipedia.org/wiki/Texture_Splatting, mira los dos enlaces que ponen abajo. Basicamente es combiar varias texturas (pequeñas y tileables) usando un alphamap.

Aunque parece ser los tiros en cuanto a texturado de terrenos pasan por http://en.wikipedia.org/wiki/Megatexture. Desde luego, asi fijo que te queda muy muy muy realista  :shock:

Un saludo.[/b]

neophox

Cita de: "Astat"
CitarNo te entiendo, ¿por qué me dices que posiblemente no me sirva?.

Texturar un terreno usando textura de detalle es, como sabras, utilizar una unica textura base para todo el terreno, y una textura de ruido pequeña que tileamos encima. Queda mucho mejor que usar la textura grande solo... pero esta lejos de quedar "realista", que es lo que dices que buscas.

Entiendo por "realista" que JL quiere utilizar imagen real, textura sacada de imagen de satelite, cuya resulucion esta en unos 70cm (al menos la que nosotros usamos de mayor detalle en simuladores es asi). Ademas no disponemos de imagenes de esa resolucion para toda España, solo ciertas partes.
El combinarla con textura en detalle no queda mal, al menos para vuelos, es bastante creible a no ser que pases a baja altura.

Cita de: "Astat"
Para que quede mas realista, hechale un ojo a http://en.wikipedia.org/wiki/Texture_Splatting, mira los dos enlaces que ponen abajo. Basicamente es combiar varias texturas (pequeñas y tileables) usando un alphamap.

Aunque parece ser los tiros en cuanto a texturado de terrenos pasan por http://en.wikipedia.org/wiki/Megatexture. Desde luego, asi fijo que te queda muy muy muy realista  :shock:

Un saludo.[/b]

Las famosas megatexturas de Carmack estan muy bien para juegos como Quake Wars, pero una imagen de 32000x32000 pixels a resolucion de un metro por texel cubre 32x32km y creeme que eso volando es muy muy poco terreno. Actualmente trabajamos con terrenos de 320x320km, imagina que textura se necesitaria para resolucion de 1m por texel.

Por cierto que tengo ganas de que explique claramente como lo hace, espero que tras el lanzamiento del juego, yo me inclino a pensar en algo similar a los clipmaps como bien dice en el enlace de la wikipedia. Aunque si es asi no le veria la novedad, es algo que sgi ya implementaba en IRIS Performer 2.1 sobre Infinite Reality (de eso hace 10 años, hay un paper de Tanner del 98 que lo explica).
url=http://gboot.blogspot.com]GBoot Games Blog[/url]

neophox

Cita de: "JL10"Por eso acudo a vosotros para que me ayudeis a canalizar toda esa información: LOD, paginado, frustum culling, mapeado de detalle, etc, etc. Qué algoritmos de cada técnica son eficaces y realmente cuáles de ellas hay que aplicar en cada caso.

Sobre el LOD en la web que te ha dado Astat creo que tienes bastante informacion. No recuerdo si incluye los geometry clipmaps, si no es asi, te aconsejo que te mires el paper (los papers en realidad, tiene 2, uno con aceleracion por hw de casi toda la tecnica y otro no, si no tienes hw de ultima generacion, en concreto geforce de la serie 7 que soporten vertex texture fetch mejor la opcion por soft que igualmente es muy rapida).
De todas las tecnicas que he visto la de geometry clipmaps es la que mas calidad tiene sin lugar a dudas, bajate la demo "jugable" de la web de Hoppe (ahora que lo pienso no se si hay demo sin aceleracion hw, luego si no tienes una geforce 7 puede que no te funcione, de todas formas creo que tiene un video) y los papers que alli esta toda la info. Se basa en los clipmaps de textura que te comente en el post anterior de Tanner.
En GPU Gems 2  esta el paper con aceleracion HW un poquito ampliado (no mucho) ademas ese capitulo creo que se puede bajar gratis de la web de nvidia.
Es un metodo que practicamente no adolece del popping que puedes encontrar en otros (hay que fijarse muy mucho para verlo y aun asi es muy dificil). Ademas el concepto en si es tremendamente simple y sencillo de entender. La implementacion tiene sus "trucos", cuando lo lees todo parece sencillo pero al codificar te das cuenta de todo lo que el paper no cuenta :), no te estropeare la diversion si te decides por este :D.

Mañana te contare un poquito sobre la paginacion, hoy no tengo tiempo para mas :(.

Cita de: "JL10"
He tomado como referente utópico las demos de FS-X y de X-plane. Esto es lo que me gustaría hacer pero con menos pretensiones.

Con un par ;)
Ahora en serio, creo FS-X va a ser un referente en cuanto a calidad visual (y no utiliza geometry clipmaps, creo que mas que nada para compatibilidad con hw mas "normalito"). El trailer que han sacado es muy bueno pese a que no enseñe mucho del juego :D.


Saludos.
url=http://gboot.blogspot.com]GBoot Games Blog[/url]

Astat

CitarActualmente trabajamos con terrenos de 320x320km, imagina que textura se necesitaria para resolucion de 1m por texel.

Con 'trabajamos' te refieres a que estas haciendo con otros algo con un terreno de esas caracteristicas? Si es asi, seguro que a JL10 (y a mi mismo!) le interesa que hables un poco mas de ello, oye  :wink:

JL10

Cita de: "Astat"...... y textura de detalle pre-iluminada.....

Astat, qué quieres decir con "pre-iluminada", ¿Algún tratamiento previo a su uso?. ¿Y qué se pretende con ello?.
Gracias

Astat

CitarAstat, qué quieres decir con "pre-iluminada", ¿Algún tratamiento previo a su uso?. ¿Y qué se pretende con ello?.

PreIluminado me refiero a que tiene ya la capa de sombras en la propia textura. Lo que se pretente con esto, evidentemente, es ahorrarte calculos.
Lo malo de esto, es que la iluminacion de la escena es estatica, osea, que no puede cambiar.

Hay bastante programas que te calculan ellos la capa de sombras a partir de una elevacion. Por ejemplo, hechale un ojo a http://www.toymaker.info/html/texgen.html

Astat

Acabo de ver que han puesto como Imagen Del Dia en gamedev, un ejemplo de terreno con texture splatting: http://members.gamedev.net/cthomas/default.htm

AK47

Aparte que en flipcode o en gamedev te explican como hacerlo ;)
El metodo que uso yo es simplememente, por cada pixel del heightmap, lanzar un rayo en dirección inversa a la luz direccional de la escena y ver si colisiona con otro de los pixeles. Si colisiona con otro pixel es que está en sombra.
Es uno de los metodos explicados en una de esas webs tan conocidas.

neophox

Cita de: "Astat"
Con 'trabajamos' te refieres a que estas haciendo con otros algo con un terreno de esas caracteristicas? Si es asi, seguro que a JL10 (y a mi mismo!) le interesa que hables un poco mas de ello, oye  :wink:

Me referia a mi trabajo dentro de simulacion. Aunque no se hasta que punto podre hablar de ello. De todas formas la informacion disponible en internet es muy amplia. Google es tu amigo ;)
url=http://gboot.blogspot.com]GBoot Games Blog[/url]

neophox

Cita de: "Astat"
PreIluminado me refiero a que tiene ya la capa de sombras en la propia textura. Lo que se pretente con esto, evidentemente, es ahorrarte calculos.
Lo malo de esto, es que la iluminacion de la escena es estatica, osea, que no puede cambiar.

Una forma de precalcular las sombras y luego poder cambiar la posicion de la fuente de luz son los esfericos armonicos, creo que DirectX facilita bastante el calculo de los mismos (aunque no lo he comprobado).
url=http://gboot.blogspot.com]GBoot Games Blog[/url]






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.