G60 G60
Páginas: [1] 2   Ir Abajo
  Imprimir  
Autor Tema: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...  (Leído 18136 veces)
0 Usuarios y 1 Visitante están viendo este tema.
10 Diciembre, 2013, 16:40:37
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4361


If it ain't broke don't fix it


WWW
En línea
Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

Este es otro de mis experimentos que por ahora se puede catalogar como que no lleva a ninguna parte y no hace mas que hacerme los dientes largos...

Se me ha ocurrido la barbaridad de coger uno de los rasters del MDT25, convertirlo a un normal map, meterlo dentro de un polígono y extenderlo por toda la celda a la que pertenece dicho raster.
PERO, como siempre hay un problema. El normal map tiene que estar vinculado a un material (textura), como es obvio, de modo que la textura de este polígono tapará todas las demás texturas que hay en la malla (sea la por defecto o la fotorreal, da igual). El principal problema es que los shaders de X-Plane mapean el normal en función del alpha (transparencia) del material utilizado, y cuanto mas alpha afecte al material, mas se desvanece el mapeado normal.
Pues buscando y rebuscando (no voy a decir las horas que me pasé) he visto que la solución está en programar un nuevo shader o manipular uno existente. Encontré cantidad de ejemplos prácticos, en webs referentes al desarrollo de videojuegos pero no me sirve ninguno ya que todos hacían referencia al Direct3D. No vi absolutamente nada acerca de OpenGL ni de GLSL (el lenguaje de programación de los shaders de OGL). También tengo que decir que no tengo ni p**a idea del tema en cuestión, pero creo que por ahí van los tiros. Si realmente el OpenGL en la versión que utiliza X-Plane soporta el mapeado normal en shaders transparentes, la solución sería modificar los actuales shaders que trae por defecto.
Pero el hecho de implementar el normal mapping sobre transparencias tendría una contrapartida, ya que muchos aeropuertos custom tienen ortofotos con alpha y con normals mapeados. Para tal y como está X-Plane ahora esto es perfecto, pues no hay que preocuparse de nada a la hora de crear los normals partiendo de las ortofotos, pues el alpha ya "se los come". De lo contrario, el normal mapping se extendería mas alla de donde la textura está "cortada", hasta el mismo borde.
Entonces se me ocurre que si es posible habilitar lo dicho anteriormente, poner a disposición de la geometría (ya sean obj, pol, etc...) un comando para evitar o habilitar que el normal pueda mapearse por encima de un material transparente, o en caso de que el material tenga transparencias. Del mismo modo que existen comandos para que no se procese el alpha de una textura, o que cierta geometría no proyecte sombra, o demás parámetros así por el estilo, ya existentes actualmente.

Vale, pues creo que es hora de enviarle un mail a Ben. El problema, es que soy un total ignorante en esta cuestión (en este caso soy mas de chapa y pintura, mas que de mecánica) y no sabría exactamente que palabras escoger para explicarle la cuestión y puede que no entienda una m***a de lo que le digo. Así que si alguien que entienda del tema referente al opengl y sus shaders, etc...) me echa una mano sobre lo que tendría que decirle se lo agradeceré, o si puede arrojar algo de luz sobre el tema mejor que mejor Giñar (¿quien dice que realmente no es posible? bla bla bla...). No es por pereza, es que sencillamente no se como explicárselo, yo utilizo el argot de mi barrio y él el de los developers, son idiomas muy distintos...

Y bueno, para el que no se haya enterado de nada (y el que sí, pero para ver los resultados)

Esta es la malla por defecto, pero tapada con el material base, en este caso una textura azul sin nada de alpha. En esta captura he dejado la textura sólo para comparar la definición del terreno.



Y esta es la misma malla exactamente pero con el normal map, lo que quiere decir que no hay geometría extra aunque lo parezca.



¿Sin comentarios, verdad?

Pues la idea es tan simple como "sustituir esa textura azul por una completamente transparente" sin que afecte a la efectividad del normal.

Se ve clarísimamente el aumento de "pseudo-definición" pseudo porqué la malla es exactamente la misma, sólo es un juego de luces y sombras, y al ser estas mas definidas, abruptas y precisas porque parten de unos datos de alta resolución las diferencias son notables, aumentando considerablemente la ilusión de un terreno mucho mas escarpado y definido. Evidentemente eso sólo tiene efecto en la distancia, si nos acercamos a pocos metros de la malla entonces se apreciará como una simple sombra en el terreno.

Lo mejor de todo es que esto se podría usar en cualquier malla ya sea la defecto, HDMesh, fotorreales, etc... en todas tendría el mismo efecto.
Pero lo más mejor -jamás pensé que utilizaría semejante blasfemia- es que actualmente el normal map parte del raster del MDT25 reducido a 2048x2048, así que hay la posibilidad partir de rasters del MDT05 reducido a texturas de 4096x4096, donde cuatriplicaríamos la definición (o ilusión de definición) del terreno.  Sonreir

Para el que se pregunte cómo se me ha ocurrido tal monstruosidad, ¿habéis jugado al World Of Warplanes? utiliza una técnica similar para el terreno en la distancia, aunque de hecho muchos juegos la utilizan sobretodo para renderizar agua, usando el normal map como specular map, para los reflejos y brillos mas que para el volúmen (y NO, X-Plane no lo utiliza para SU agua, supongo que por eso es tan mala jeje...)

¿Que os parece? ¿Hay viabilidad?




Albert Ràfols
www.spainuhd.es
10 Diciembre, 2013, 17:51:54 #1
Cestomano
Superusuario
*******
Desconectado Desconectado

Mensajes: 5484


Me cansé de la capa; ahora sólo vuelo en avión...


WWW
En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

Espera, espera... que aún estoy digiriendo lo que escribiste  Cheesy

Lo de los normal maps y las texturas con alfa ya lo había visto cuando trabajé con Tenerife VFR. Al construir los normal maps con texturas de costa enteras y luego recortar las fotográficas, el efecto de las normales desaparecía en las zonas transparentes... eso me alegró en ese caso porque no hacía falta volver a procesar las normales; en tu caso, es una p*t*d*...

Sobre los shaders, puedes intentar preguntar primero a la gente qu eha trabajado con ellos en X-Plane como el que hizo el HDR Enviroment que sustituye algunos archivos de shaders. Naturalmente, si el tío lo hizo es que sabe algo de ello. O el que hizo el plugin de nubes que se comentó hace unas semanas que aumentaban los fps, también tocaba los shaders. Yo por mi parte, no tengo ni piiiiiiiiiiiiii idea  Cheesy

Si no lo consigues, así a botepronto (ayer descubrí que esa palabra venía del rugby), se me ocurre que se puedan crear texturas normales divididas exactamente en los cuadrados que tienen un determinado fotorreal y luego modificar los archivos TER/POL para que apliquen dichas texturas. Esto, naturalmente, solo puede hacerse con escenarios fotorreales cuyos triángulos o rectángulos son todos iguales y bien localizados. Pero claro, no tendrías la posibilidad de exportar tu añadido independiente, sino que siempre estaría ligado a un escenario fotorreal dado.

Vamos, es lo que se me ocurre ahora mismo...  Giñar


¡¡NO contesto dudas por mensaje privado!!

x-plane.cestomano.com
www.spainuhd.es

[
10 Diciembre, 2013, 18:17:12 #2
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4361


If it ain't broke don't fix it


WWW
En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

Bueno si tengo que hablar con alguien será con Ben, ya que él tendrá la última palabra y se supone que debería saber qué funciones y cuales no se pueden implementar en su motor, que por cierto creo utiliza OpenGL 2 el cual está un pelín anticuado.
Pero lo que más me sorprendío es la cantidad de respuestas que obtuve acerca de eso mediante D3D, pero sobre OpenGL ni una mísera referencia a los shaders transparentes...

Lo del fotorrealístico con ter ya lo había pensado, pero son muchos archivos a modificar y el trabajo que hay para dividir el normal map por el número de texturas que contiene... Lo que tenía en mente era un overlay para usar con cualquier malla.

También probé con los decals, pero esto no me sirve ya que crea un mapa de sombras estático cuando con el mapa normal los sombreados son dinámicos y esos siempre coinciden con los que genera la misma malla según posición del sol. Si no encuentro nada mas, cuando tenga la mente un poco mas despejada voy a ver que parrafada le suelto a Ben. Es que la verdad no me interesa mucho solucionarlo desde el shader ya que eso tendría la contrapartida que he dicho, más que nada algún la posibilidad de un parámetro para discriminar el uso de un shader transparente por si en cierto recurso en el alpha se puede mapear el normal o no, para que no afecte a demás escenarios. Casi 100% seguro que eso se controla desde el mismo shader, pero los parámetros que los controlan desde los recursos pol, fac, obj, etc... están hard-coded. Lo que me refiero es que por ahora no puedes sacarte de la manga un parámetro para que el shader actúe de una u otra forma en un recurso, por mucho que se manipulen los archivos glsl.

En fin... I keep trying aunque creo que no tengo ni idea de lo que hablo  Cheesy




Albert Ràfols
www.spainuhd.es
10 Diciembre, 2013, 19:24:55 #3
evaristo2005
Superusuario
*******
Desconectado Desconectado

Mensajes: 3145



WWW
En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

Cada vez que habláis de estas cosas lo pesco ( fulas). Miedo me da aprender de esto, que luego me engancho como en las demás cosas.


10 Diciembre, 2013, 20:07:21 #4
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4361


If it ain't broke don't fix it


WWW
En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

Cada vez que habláis de estas cosas lo pesco ( fulas). Miedo me da aprender de esto, que luego me engancho como en las demás cosas.

Limítate a decir "oh, que bonito"... de lo contrario te pasará como a mi (o a nosotros), tienes la idea, la pones en práctica y  , aparece por ahí alguna limitación acompañada de una voz lejana que dice "SIGUE SOÑANDO DESGRACIAO!" Cheesy Cheesy
De todas maneras con esto no me rindo -por ahora-  crash
Malditas ideas que se me pasan por la cabeza...




Albert Ràfols
www.spainuhd.es
10 Diciembre, 2013, 22:03:39 #5
zxplane
Administrador
Superusuario
*****
Desconectado Desconectado

Mensajes: 4289




En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

¡¡Por Tutatis, está loco este Albert¡¡. Cheesy


10 Diciembre, 2013, 22:54:48 #6
kha29096335
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 664



En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

Hmmmm... No debería ser así. En X-Plane, los normal maps se vinculan de acuerdo al RGB no al alpha, la especularidad es lo que está vinculado al canal alpha de transparencia.

Mira aqui: http://developer.x-plane.com/2009/08/normal-maps-in-x-plane-940/
y aqui: http://wiki.x-plane.com/Normal_Maps

Además, los Normal Maps no se renderizan como textura, si no como modificadores de la textura base. Al menos en los OBJ es así. Un OBJ con Normal maps tendrá dos texturas, la que le da el color (la librea del avión, por ejemplo) y la que le da los brillos y los relieves (la normal map). Los relieves se codifican en los canales del color RGB y los brillos en el alpha.

O me he perdido, o algo no va bien o ha cambiado la especificación, o el renderizado del terreno no se realiza igual que el de los OBJ.

Como tu para el terreno te trae al pairo los brillos... lo suyo sería que se pudieran especificar bump maps (mapas en tonos de gris) para poder "afinar" el relieve, pasando del tema de los normal maps para el terreno.

Consultale a Ben si las mismas reglas que para los OBJ son aplicables para el terreno, porque no me cuadra lo que te ha ocurrido -o no lo he entendido, que todo puede ser-

Un saludo.

11 Diciembre, 2013, 18:52:51 #7
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4361


If it ain't broke don't fix it


WWW
En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

Bueno vamos avanzando...

He visto que la intensidad con la que se proyecta el normal encima de alpha de la textura base está ligada a la "agresividad" de la misma textura normal, es decir que si le meto como textura base un color neutral (negro en este caso) con un 90% de alpha y a la textura normal con 50 o 60 capas superpuestas, en el escenario se aprecia correctamente, o mas o menos.





El problema de superponer las capas es con cada una que se le añade se va perdiendo definición (similar a un filtro blur) pero creo que se puede llegar a un punto intermedio donde no se pierda demasiada y haciendo que el normal se muestre correctamente. Lo que implica jugar mucho con los parámetros acerca de la creación de normals, pero le veo cierta "salida".

También lo probé con el fotorreal pero no cuelgo capturas porqué no hay mucha diferencia, pero tiene su explicación; la malla tiene mejor definición que la por defecto, y además ésta es la malla que modifiqué para LESU que posteriormente envié a SimHeaven y la regeneraron a partir del MDT25, la misma fuente de datos que el normal map. No se ven sombras nuevas pero las que hay tienen mejor definición, no son tan suaves y las montañas se ven bastante mas escarpadas y le dan un toque mas "alpino".

Pero aquí empezaron otros problemas mas serios, X-Plane no me abría con el fotorrealístico y los normals, después de una carga de 30min desistí... así que he divido el normal en cuatro texturas de 1024^2 y por ahora sin problemas (pero ahora tendré mas trabajo...), el tiempo de carga es ligeramente superior que sin el escenario del normal.

Por ahora la cosa pinta bien, lo siguiente será la ardua tarea de descargar del MDT05 en esta celda a ver que mejoras (y perjuicios) trae.

Hmmmm... No debería ser así. En X-Plane, los normal maps se vinculan de acuerdo al RGB no al alpha, la especularidad es lo que está vinculado al canal alpha de transparencia.

Mira aqui: http://developer.x-plane.com/2009/08/normal-maps-in-x-plane-940/
y aqui: http://wiki.x-plane.com/Normal_Maps

Además, los Normal Maps no se renderizan como textura, si no como modificadores de la textura base. Al menos en los OBJ es así. Un OBJ con Normal maps tendrá dos texturas, la que le da el color (la librea del avión, por ejemplo) y la que le da los brillos y los relieves (la normal map). Los relieves se codifican en los canales del color RGB y los brillos en el alpha.

O me he perdido, o algo no va bien o ha cambiado la especificación, o el renderizado del terreno no se realiza igual que el de los OBJ.

Como tu para el terreno te trae al pairo los brillos... lo suyo sería que se pudieran especificar bump maps (mapas en tonos de gris) para poder "afinar" el relieve, pasando del tema de los normal maps para el terreno.

Consultale a Ben si las mismas reglas que para los OBJ son aplicables para el terreno, porque no me cuadra lo que te ha ocurrido -o no lo he entendido, que todo puede ser-

Un saludo.
Creo que tanto tu como yo podríamos estamar equivocados... lo de que no se mapee el normal encima del alpha de la textura base es una cosa que almenos Cestomano y yo llevamos un tiempo aprovechando (para fotorrealísticos) lo cual es una gran ventaja para esos casos, pero no para el actual. Ciertamente en la wiki de X-Plane no hay referencia a eso, lo único referente al alpha es lo que dices de la especularidad, pero sólo afecta al canal alpha del normal, no de la textura base. En fin, entre eso y la poca info que he encontrado por internet al respecto creo que lo mejor será consultarle a Ben, aunque de todas maneras lo que he expuesto en este post puede ser una solución (aunque no definitiva) al "problema". Pero mas que problema, creo que es una limitación de los shaders que incorpora X-Plane.

Y si, lo de los bump maps pienso que sería una ventaja en este escenario, pero X-Plane no los soporta. Leí en alguna parte de la Wiki que sólo implementa los normals porque una sóla textura puede contenter la información del bump en los canales RGB y la especularidad en el canal alpha, tal y como has dicho, con el consiguiente (creo) ahorro de recursos al no depender de varios texturas para el specular map y el bump map.


« Última modificación: 11 Diciembre, 2013, 18:57:27 por grrr05 »




Albert Ràfols
www.spainuhd.es
11 Diciembre, 2013, 21:03:55 #8
jorduran
Superusuario
*******
Desconectado Desconectado

Mensajes: 9988



WWW
En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

¡¡Por Tutatis, está loco este Albert¡¡. Cheesy

Lo que pasa es que siempre lleva el turbo a tope


Un buen aterrizaje es el que sales andando.
Un gran aterrizaje es cuando el avion puede seguir volando.

Telefonica ha cerrado mi WEB sin preaviso.
PHOTOBUCKET A CORTADO LAS FOTOS
11 Diciembre, 2013, 21:52:09 #9
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4361


If it ain't broke don't fix it


WWW
En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

¡¡Por Tutatis, está loco este Albert¡¡. Cheesy
Lo que pasa es que siempre lleva el turbo a tope

Momentos de lucidez que sufro a veces Cheesy




En serio, se me suelen pasar por la cabeza muchos disparates, algunos incluso llegan a funcionar, y de esos, algunos pueden llegar a ser útiles.
De todas maneras, con esto no me atrevo a asegurar nada aún, faltan muuuchas pruebas, pero sigo en ello.






Albert Ràfols
www.spainuhd.es
12 Diciembre, 2013, 09:13:46 #10
Cestomano
Superusuario
*******
Desconectado Desconectado

Mensajes: 5484


Me cansé de la capa; ahora sólo vuelo en avión...


WWW
En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

No me hagas mucho caso que es temprano y tengo la mitad de las pocas neuronas dormidas, pero...

En vez de construir los normales a base de capas, ¿por qué no lo haces con pocas capas y, simplemente, a la imagen final le subes el contraste? Eso hará que el normal sea más agresivo sin perder definición.

Otra cosa, acerca de los normales que parten de MDT30, siempre puedes hacer un poco de "invención". Creas las texturas y las agrandas al doble de tamaño (resolución) mediante algún filtro que no suavice mucho (lanczos quizás). Luego le aplicas algún filtro más de enfoque y quizá alguno que añada un poco de ruido... o incluso añadirle un patrón repetitivo mezclado de rocas, hierba etc previamente convertidos a normal (un 5-10% mezclado)... vamos, jugar con el PS y las normales para darles más definición aunque parte de dicha definición sea inventada...

(¿o es que acaso no son (semi) "inventados" los mapeados gráficos del XP?)


¡¡NO contesto dudas por mensaje privado!!

x-plane.cestomano.com
www.spainuhd.es

[
12 Diciembre, 2013, 22:11:29 #11
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4361


If it ain't broke don't fix it


WWW
En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

En vez de construir los normales a base de capas, ¿por qué no lo haces con pocas capas y, simplemente, a la imagen final le subes el contraste? Eso hará que el normal sea más agresivo sin perder definición.
Es que me da miedo que eso acabe por alterar los colores y la efectividad del normal, aunque creo que el equivalente a superponer las capas se acerca mas al aumento de saturación que al contraste, de todas maneras hay muchísimos parámetros con los que probar, algunos dan mejores resultados y otros peores, pero claro que siempre es a expensas de "algo" y lo chungo será encontrar el equilibrio.

Otra cosa, acerca de los normales que parten de MDT30, siempre puedes hacer un poco de "invención". Creas las texturas y las agrandas al doble de tamaño (resolución) mediante algún filtro que no suavice mucho (lanczos quizás). Luego le aplicas algún filtro más de enfoque y quizá alguno que añada un poco de ruido... o incluso añadirle un patrón repetitivo mezclado de rocas, hierba etc previamente convertidos a normal (un 5-10% mezclado)... vamos, jugar con el PS y las normales para darles más definición aunque parte de dicha definición sea inventada...

(¿o es que acaso no son (semi) "inventados" los mapeados gráficos del XP?)
Mucho trabajo pretendes darme... Cheesy
Antes que meterme con la cuestión artística voy a ver que tal van los MDT05 tal cual,y  a partir de aquí empezaré a valorar qué es mejor, que filtros utilizar y como retocar los normals o el mismo raster para no alterar demasiado los canales RGB.

A ver si acabo de una maldita vez de descargarme el MDT05 de la zona de los Pirineos para compararlos con el MDT25 ya que actualmente éste no tiene mucho efecto con las mallas HD+foto de SimHeaven.

« Última modificación: 12 Diciembre, 2013, 22:14:49 por grrr05 »




Albert Ràfols
www.spainuhd.es
12 Diciembre, 2013, 22:27:09 #12
Cestomano
Superusuario
*******
Desconectado Desconectado

Mensajes: 5484


Me cansé de la capa; ahora sólo vuelo en avión...


WWW
En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

A ver si acabo de una maldita vez de descargarme el MDT05 de la zona de los Pirineos para compararlos con el MDT25 ya que actualmente éste no tiene mucho efecto con las mallas HD+foto de SimHeaven.

Pero espera... los MDT05 no son de pago? Son del IGN?


¡¡NO contesto dudas por mensaje privado!!

x-plane.cestomano.com
www.spainuhd.es

[
12 Diciembre, 2013, 22:29:23 #13
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4361


If it ain't broke don't fix it


WWW
En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

Están en la misma sección (y sujeto a la misma licencia) que el MDT25 Giñar
http://www.ign.es/PNOA/mdt.html




Albert Ràfols
www.spainuhd.es
12 Diciembre, 2013, 23:18:36 #14
Cestomano
Superusuario
*******
Desconectado Desconectado

Mensajes: 5484


Me cansé de la capa; ahora sólo vuelo en avión...


WWW
En línea
Re: Sobre mejoras del terreno, normal mapping, programación de shaders, etc...

Están en la misma sección (y sujeto a la misma licencia) que el MDT25 Giñar
http://www.ign.es/PNOA/mdt.html

Vaya!!  Huh?

Lástima q no se puedan usar en el X-Plane como rasters por culpa del antiquísimo motor del x-plane falta de potencia.  Sonreir


¡¡NO contesto dudas por mensaje privado!!

x-plane.cestomano.com
www.spainuhd.es

[
Tags:
Páginas: [1] 2   Ir Arriba
  Imprimir  
 
Ir a:  

www.x-plane.es.
Página creada en 0.113 segundos con 19 queries.