trensim.comSimulación Ferroviaria
   

Sobre el canal Alpha: cómo lograr que se vea detrás

Foro para tratar temas relacionados con Abacus Train Sim Modeler

Moderador: Moderadores

Sobre el canal Alpha: cómo lograr que se vea detrás

Notapor deCorvett » Sab Ene 24, 2004 2:17 am

Los usuarios de 3DCanvas o GMax ya tenían solución al problema de las semitransparencias, y de cómo mostrar todos los objetos que se veían detrás de éstas. Pues bien, gracias a un link que el amigo Paco (trenes) ha expuesto en Diseñadores, y tras un breve análisis, he encontrado la solución al problema que venía buscando desde hace tiempo y de la que no me encontraba desencaminado: Modificar el .s a mano.

¡Miedo! Pensaréis. Nada más lejos de la realidad. Con ésta pequeña modificación conseguiréis lo que se ve en las fotos.

El secreto es buscar en la sección prim_states del .s líneas como éstas:

prim_state MAIN_AlphNorm ( 00000000 1
tex_idxs ( 1 4 ) 0 0 0 0 1
)

haciendo un cambio tan simple como:

prim_state MAIN_AlphNorm ( 00000000 1
tex_idxs ( 1 4 ) 0 0 0 0 3
)

en todas las lineas con AlphNorm, en sus distintas variantes (ya sabéis +,-) lograréis eliminar las dichosas prioridades del simulador, y se verá todo lo que hay detrás de cada semitransparencia. El motivo de hacerlo en todas es para evitar olvidarnos algo, nada más.

Con este pequeño parcheo del .s, tenemos solución al mayor enigma para TSM de todos los tiempos.
Adjuntos
alfa.jpg
alfa.jpg (15.37 KiB) Visto 13037 veces
carenado.jpg
carenado.jpg (48.81 KiB) Visto 13036 veces
Un saludo,

Rafa (deCorvett)
Avatar de Usuario
deCorvett
 
Mensajes: 152
Registrado: Sab Dic 27, 2003 1:50 pm

Notapor deCorvett » Sab Ene 24, 2004 1:05 pm

Bueno, tras experimentar un pco, no es tan simple como parece, no obstante, creo que tengo ya casi todas las respuestas. Espero en esta tarde pasaros un breve documento sobre cómo hacerlo.
Un saludo,

Rafa (deCorvett)
Avatar de Usuario
deCorvett
 
Mensajes: 152
Registrado: Sab Dic 27, 2003 1:50 pm

Notapor Josep » Sab Ene 24, 2004 2:03 pm

Rafa (deCorvett),

Muy interesante el trabajo que haces con TSM.

Aunque utilizo el entorno MAX/Gmax en el que de alguna forma conseguimos solucionar el enigma, me interesaría conocer en tu exposición si has logrado en TSM semi transparencias alpha (es decir, que el efecto sea de cierta translucidez, no como un trans normal). Osease, si puedes tintar de azul los cristales, o bien oscurecerlos...

Me parece que podría ser sumamente interesante el lograrlo, ya que los modeladores de TSM podrían implementar esta posibilidad, logrando un impacto visual de los modelos mucho mayor.

Josep
Josep
grupo TrenSim
 
Mensajes: 1571
Registrado: Mié Sep 10, 2003 2:47 pm
Ubicación: Vic (Barcelona)

Notapor deCorvett » Sab Ene 24, 2004 6:26 pm

Josep,

precisamente esa era mi inquietud mayor a la hora de trastear los .s, y a fecha de hoy podría decirse que el "enigma" está resuelto, o casi.

Por fin he encontrado el modo de forzar al simulador a mostrar objetos detrás de una semitransparencia. No es un modo tan ortodoxo como a mi me gustaría, más bien es un parche, pero desde luego sirve para que todos aquellos usuarios de TSM puedan, al fin, ver lo que se ve "al otro lado".

Para muestra, un botón. O mejor dicho, un cubo. Como bien podréis comprobar, hay cristales semitransparentes, hay objetos en el interior, y hay objetos mucho más atrás.

No los muestra tan bien como debería, pero por lo menos los muestra.
Adjuntos
cuboalpha3.jpg
cuboalpha3.jpg (60.26 KiB) Visto 12980 veces
Un saludo,

Rafa (deCorvett)
Avatar de Usuario
deCorvett
 
Mensajes: 152
Registrado: Sab Dic 27, 2003 1:50 pm

Notapor deCorvett » Mar Ene 27, 2004 1:15 pm

Aprovecho ahora para hacer públicos los resultados de las investigaciones que he realizado hasta el momento sobre las dichosas texturas alpha.

Para mi investigación, he creado un diseño sencillo, que he llamado Versace, formado por un cubo exterior y un segundo cubo flipado, material transnorm. En su interior he colocado otro cubo, material alphanorm, y dentro de éste, una caja, en material transhalfbright.

Versace ha sido creado en TSM, y a su vez, en GMax. Después, han sido comparados ambos shapes a través del Wordpad de Windows.

Tras desentramar el formato de los archivos .s, y las diferencias de éstos archivos con respecto a los mismos realizados con otros programas (en mi caso, GMax) He llegado a la teoría siguiente, teoría que, imagino, puede tener el mismo acierto que ninguno, pero que, a priori, puede explicar por qué el comportamiento de los materiales alpha en el simulador.

Sólo hay dos diferencias sustanciales entre el mismo modelo en GMax y TSM; ambas afectan al comportamiento de las transparencias en el simulador.

La primera de ellas, es el apartado Sort_vectors. Parece ser, aunque no puedo asegurarlo, que éste apartado indica la posición relativa del centro de cada objeto con respecto a MAIN. La conclusión lógica que se puede extraer de esta suposición es que indica al simulador el punto exacto en que cada pieza se encuentra dentro del entorno simulado, por lo que indicará al simulador lo que se encuentra detrás del objeto para cada posición del observador. Es por esto que, al carecer el .s de TSM de estos vectores, no muestra nada detrás de un canal alpha. De este planteamiento puede surgir la siguiente pregunta: ¿Por qué muestra entonces el terreno?

A esa pregunta no le he encontrado respuesta, aunque teorizando sobre ello, a la única conclusión a la que he podido llegar es que dibuja de forma distinta el "fondo" (entiéndase el terreno) y los objetos. Para el fondo únicamente necesita la posición absoluta del objeto, pero para los objetos utiliza las posiciones relativas de las piezas con material alpha. Parece ser que para el material Trans, en cambio, si que emplea las posiciones absolutas. ¿Error de programación o error de mi teoría?

La segunda diferencia, lo que hace es justificar mi anterior exposición. Dentro de la sección Lod_controls parece ser que en esta sección el .s indica qué polígonos crear de acuerdo a los vectores y puntos indicados en las secciones anteriores. En GMax esta sección está dividida para cada LOD en subobjetos, uno para cada pieza diseñado en GMax. Esto en TSM no ocurre así; para cada LOD, se define un único objeto definiendo todas las piezas diseñadas para ese LOD. Por lo tanto, si TSM define todos los objetos en uno, es imposible que defina posiciones relativas para cada objeto.

Por lo tanto, la única conclusión posible a raíz de esta teoría es que no es posible obligar a un modelo hecho en TSM (versión 1.1 o anterior) a que muestre los objetos detrás de un material alpha.

Lo que si se puede hacer es trampear al simulador. Hay un modo en que el simulador utilice las posiciones absolutas en lugar de las relativas. Este método, sin embargo, no muestra correctamente los objetos, los muestra, bien dibujados, pero sin embargo no les aplica la máscara del alpha que está delante. Para entendernos, lo que hace éste método es dibujar los objetos como si la pieza con material Alpha no existiera.

El método es bien sencillo, teniendo que estar el material alpha como pieza separada de otros materiales. Esto implica que las zonas transparentes o semitransparentes de una textura sean piezas separadas de las zonas opacas de la textura. Esto exige que, en el modelo de un coche de viajeros, por ejemplo, la carrocería del mismo (incluyendo marcos de ventanas, gomas, etc) sea una pieza (o varias) en material Transnorm. Separado en otra pieza se encontrará el cristal de las ventanas, en material alphanorm, y el interior de la carrocería, al igual que el exterior, una o varias piezas en material transnorm. El resto de piezas que compongan el diseño es indiferente el tipo de material que posean, siempre que se respeten escrupulosamente los materiales anteriormente indicados.

Partiendo de esta premisa, y una vez exportado el diseño al simulador, abriremos el .s y buscaremos la sección prim_states del archivo. Dentro de esta sección buscaremos la definición de textura del material alphanorm de los cristales. encontraremos una línea como la que sigue:

prim_state NOMBREDELA PIEZAOSUSUPERIORENJERARQUIA_AlphNorm ( 00000000 0
tex_idxs ( x x ) x x x x 1
)


Donde x será un número variable para cada elemento. nos fijaremos en el último dígito. Siempre será 1, pero nosotros lo reemplazaremos por 3. Guardaremos el .s

Con esto lograremos el efecto que muestro en las capturas adjuntas. Como véis, aunque no aplique la máscara del alpha a los objetos, si que se lo aplica al fondo, con lo que el efecto conjunto de los objetos con el fondo, en la mayoría de los casos, disimula perfectamente este defecto.

Pienso seguir estudiando los .s, y creo que al final si que se podrá solucionar esta gravísima carencia del TSM; no obstante, de momento los usuarios de TSM podremos mejorar la calidad visual de nuestros diseños.
Adjuntos
Doble Versace.jpg
Composición doble de Versaces, para comprobar el funcionamiento de dos objetos superpuestos. Observad que en efecto, se aplica dos veces la máscara alpha sobre el fondo, pero ninguno de los objetos se oscurece
Doble Versace.jpg (47.49 KiB) Visto 12940 veces
Un saludo,

Rafa (deCorvett)
Avatar de Usuario
deCorvett
 
Mensajes: 152
Registrado: Sab Dic 27, 2003 1:50 pm

Notapor javierfl » Mar Ene 27, 2004 5:12 pm

Coincido plenamente con las interesantísimas investigaciones y conclusiones de deCorvett, que por cierto ha conseguido algo que nadie, que yo sepa, había conseguido hasta ahora. Aunque no haya conseguido superar el problema alpha en su totalidad, la solución lograda es una gran mejora respecto de lo que antes teníamos.

La he usado en algún modelo y realmente funciona, evitando de alguna manera el horrible efecto anterior. Permite que los cristales sean tintados, tengan alpha para suelos, vías y cielos y, lo que también es importante, que se puedan hacer brillos en los mismos, a la vez que transparentan los objetos del fondo. Es evidente que el efecto no es perfecto por el defecto del TSM que indica deCorvett, pero bueno, repito, mejora mucho lo anterior.

Adjunto una captura del VG6090 con dos cristales alpha y otro simplemente trans, para que se vea lo que se puede lograr.

Enhorabuena al descubridor y saludos:

Javier.-
Adjuntos
piolinalpha3.jpg
piolinalpha3.jpg (48.06 KiB) Visto 12922 veces
Avatar de Usuario
javierfl
grupo TrenSim
 
Mensajes: 9620
Registrado: Sab Ago 30, 2003 11:23 pm
Ubicación: Ciudad Astur

Re: Sobre el canal Alpha: cómo lograr que se vea detrás

Notapor feliuet » Jue Nov 30, 2006 10:00 pm

deCorvett escribió:Los usuarios de 3DCanvas o GMax ya tenían solución al problema de las semitransparencias, y de cómo mostrar todos los objetos que se veían detrás de éstas.


Hola

Estoy buscando "like a fool", la solución al problema que en estos momentos me tiene intrigado.

Cita deCorvett en su análisis sobre las semitransparencias, la solución para los usuarios de Gmax (con el que trabajo), sobre ellas, y la resolución del problema, pero no logro encontrar el hilo dónde se habla de ésta solución.

Tenía entendido, que en principio, las semitransparencias se resolvian con un matiz de gris que permitiera éstas, pero después de haberlo intentado "casi todo", el resultado que he obtenido, es el que muestro en la captura , o sea, transparencia absoluta, o, el mismo color que pretendía aplicar a la semitransparencia, sin una visualización parcial del supuesto "cristal" que debería observarse.

Quizá tendría que mezclar varios materiales como los que se citan en el post, pero no sé si sólo es aplicable a TSM, y no a Gmax, porque no logro dar con la solución.

Espero que deCorvett, o Javierfl, o cualquier entendido en la materia, pudiera orientarme al respecto, o, en su caso remitirme al hilo donde esté la solución a mi consulta.

Muchas gracias por vuestra atención.

Un saludo.
Avatar de Usuario
feliuet
 
Mensajes: 543
Registrado: Sab Dic 03, 2005 1:20 pm

Notapor javierfl » Jue Nov 30, 2006 11:10 pm

En Gmax no puedo ayudarte, porque de ese programa, por degracia, se lo justito.

Deduzco que has exportado la hoja como alpha con las TGATool o similar ¿no? Esto es aplicable a todos los programas como primer caso.

Saludos:

Javier.-
Avatar de Usuario
javierfl
grupo TrenSim
 
Mensajes: 9620
Registrado: Sab Ago 30, 2003 11:23 pm
Ubicación: Ciudad Astur

Notapor francotrenes » Jue Nov 30, 2006 11:52 pm

Tenes que exportar dando "jerarquias ALPHA", deduciendo el orden de vistas, que es lo que veras primero digamos, MAIN la parte exterior del objeto, y el interior la parte "secundaria".

Para ello deberas enlazar el interior al main, y al exportar >>>

1- seleccionas el exterior

2- interoduces "1" en SUBOBJECT

3 - tilda la opcion en SORT....

4- Introduci "5" en SORT PRIORITY


espero te haya servido, ya nos contaras
Saludos Franco,
Adjuntos
Untitled-2 copy.jpg
Untitled-2 copy.jpg (40.03 KiB) Visto 12108 veces
Imagen EMD - GT22 - Ferrocarriles Argentinos.-
Avatar de Usuario
francotrenes
 
Mensajes: 1592
Registrado: Jue Nov 04, 2004 5:18 am
Ubicación: MSTS

Notapor feliuet » Vie Dic 01, 2006 8:47 pm

Hola

Bueno, tras unas investigaciones con los datos aportados por los dos, Javier y Franco, he realizado los pasos como me habeis descrito.

-¿Tendría que variar alguno de los valores al exportar?

-¿Qué Ace le aplico (DXT1, Alpha ) para ver la transparencia en el editor?

Hasta ahora, los resultados obtenidos son los que muestro en las capturas, las transparencias se ven perfectamente en el ShapeViewer, con el material aplicado como transparencia en gmax, y siguiendo los pasos que me habeis indicado, pero en el editor se ven opacos.

Gracias a los dos por vuestra ayuda

Un saludo.
Avatar de Usuario
feliuet
 
Mensajes: 543
Registrado: Sab Dic 03, 2005 1:20 pm

Notapor mestral » Sab Dic 02, 2006 1:41 am

Hola:
Es un tema que me ha llevado de cabeza, y supongo que a muchos más de nosotros
Espero no andarme por las ramas, pero para conseguir semitransparencias en Gmax, el Alpha test mode debe ser "none", ya que "trans" es para aplicar transparencias totales.
Tengo entendido, y si no que me corrijan los maestros, que cuando aplicas una transparencia, lo que hace el programa es representar la parte de detrás del objeto a través de la transparencia, usando los datos del propio archivo. Podría ser por tanto, que aunque las transparencias estén bien, si por ejemplo metes una locomotora dentro del edificio, esta no se vea desde fuera a través de la ventana, ya que el archivo del edificio en cuestión no posee los "datos" de la locomotora, por lo que se vería unicamente el interior del edificio.
Creo, por tanto, que puede ser un pequeño error en el orden de las jerarquías, o dos transparencias que te crean un conflicto (Si por ejemplo creas transparencia por dentro i por fuera)
En la SFG 20 por ejemplo, las ventanas poseen un hueco real en la cabina creado con pick boolean, y el cristal es una parte más del archivo.
En este caso el orden de la jerarquía es MAIN -> CABINA -> CRISTAL
El cristal es un spline con una textura con canal alpha, pero por un lado solo. El defecto es que se ve semitransparente desde fuera para adentro, pero queda completamente invisible de dentro para afuera.
Yo probaría de poner las jerarquías por orden de visión, siendo MAIN la raíz, claro, y probaría de aplicar la misma textura que ya tienes con canal alpha en gris con alpha test mode "none".
Espero que tengas suerte.

Saludos
mestral
Avatar de Usuario
mestral
 
Mensajes: 182
Registrado: Vie Mar 03, 2006 2:45 pm
Ubicación: Girona

Notapor feliuet » Sab Dic 02, 2006 11:34 am

Hola.

Pues he tenido suerte, éso y un cócktel de las sugerencias que aquí me habeis expuesto.

Mestral tienes toda la razón del mundo, Alpa test "none", de otra manera tomaba la textura como transparente y de ahí que no pudiera leer el canal alpha.

El resultado es el que se ve en las capturas, tanto desde fuera hacia dentro, como a la inversa, se pueden ver los objetos al trasluz.
Una capa al 85% en photoshop, dá el aspecto de los cristales originales, jugando con la tonalidad de gris en el canal alpha. El único "problemilla", es que en una misma cara, no pueden convivir las dos texturas, para ello tendríamos que crear una nueva, superponerla, y texturarla con la semitransp., como ocurre con el arco de la entrada., pero de momento me conformo con lo aprendido...

La jerarquía de los objetos también es básica como apuntaba el amigo Franco, y la exportación a MSTS se ha realizado en modo "ace Alpha" (aun no lo he prodabo con DXT1), como bien decía Javier, el resultado és que ¡ya he logrado el objetivo!.

Gracias a todos por la ayuda.

Un saludo feliz :D :D :D
Adjuntos
semitransp_01.jpg
semitransp_01.jpg (87.59 KiB) Visto 12009 veces
semitransp_02.jpg
semitransp_02.jpg (75.03 KiB) Visto 12012 veces
Avatar de Usuario
feliuet
 
Mensajes: 543
Registrado: Sab Dic 03, 2005 1:20 pm

Notapor javierfl » Dom Dic 03, 2006 9:52 am

Por cierto, que no se ha dicho, ¡un edificio estupendo!

Saludos:

Javier.-
Avatar de Usuario
javierfl
grupo TrenSim
 
Mensajes: 9620
Registrado: Sab Ago 30, 2003 11:23 pm
Ubicación: Ciudad Astur

Notapor RodrigoR » Jue Jul 03, 2008 6:08 am

Hola, cuando estuve trabajando con mi amigo Marcelo en el Coche motor Zanello, nos encontramos con el problema de no poder ver los objetos a travez de las ventanas. Con la ayuda del tutorial de deCorvett, solucione parcialmente el problema, pero no me termino convenciendo el resultado final (aclaro que hice el cubo que sale mas arriba y obteniendo un exelente resultado, pero con el modelo del coche motor no lo logre)
Buscando soluciones a otro problema, encontre un programita que corrige este bug de TSM.
E aqui los resultados
Imagen

Imagen

lo pueden descargar de la siguiente página: http://www.thopil.de/werkstatt_alpha.html

Saludos
RR
"Una diesel en funcionamiento es un tren, una vaporera en funcionamiento es un espectáculo."
Avatar de Usuario
RodrigoR
 
Mensajes: 495
Registrado: Lun Feb 14, 2005 12:44 pm
Ubicación: Córdoba Capital - Argentina

Notapor Smog » Jue Jul 03, 2008 10:35 am

Hola:

Estupenda aplicacion, (pena que este en aleman, aunque la he hecho funcionar) muchas gracias.

De todas maneras la solucion que le he dado yo hasta el momento con el bug de poder ver a traves de los cristales, al menos en material rodante diseñado con TSM, lo habia solucionado de manera mas que aceptable (al menos eso creo ya que se puede ver a traves de los cristales) con la solucion de deCorvett, y ademas, creando un freightanim solo con los cristales y material tipo "alpha". Al archivo .s del FreightAnim le aplicaba el cambio de quitar el 1 y poner el 3 donde indica deCorvett. Es decir: Diseño toda la unidad completa y exporto al juego todas y cada una de las partes pero sin cristales o materiales que incluyan "alpha". Luego exporto tan solo los materiales que incluyan ese "alpha" y el archivo .s correspondiente lo hago depender del principal como FreightAnim (es en este archivo donde le hago el cambio 1x3).
En construciones estaticas desconozco si se puede hacer eso por que hasta el momento nunca he diseñado ninguna.

Un saludo
Smog
 
Mensajes: 371
Registrado: Mié Sep 24, 2003 8:44 pm
Ubicación: Oviedo

Siguiente

Volver a TSM

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados