Calificación:
  • 4 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Diseñando una pista en 3D [+Assetto Corsa +mods +tutorial +hilo de seguimiento]
#55
Bueno, seguimos un poquito más.

#9 - Shaders. O cómo dar "realismo" a nuestra pista.

Ahora que ya hemos hecho un par de pruebas vamos a ver dos imágenes del asfalto.

Sin shader:

[Imagen: Uu4NmBa.jpg]

Con shader:

[Imagen: k5M4v8U.jpg]

La única diferencia entre la imagen de arriba y la de abajo es que la de abajo tiene asignado un Shader, y que en vez de ser una sola textura, he compuesto el shader de múltiples texturas. Para verlo bien voy a abrir un nuevo proyecto solo con la carretera. Con una zona de asfalto y otra de cemento.

Si clickamos con el botón derecho del ratón por ejemplo encima del cemento, nos saldrá un minimenú que nos dejará escoger el objeto o el material de ese objeto.

[Imagen: aWDzHQf.jpg]

Si seleccionamos el material del objeto se abre un menú a nuestra derecha sobre ese material donde podremos cambiar texturas, transparencias, shaders, etc. Si os fijáis con este objeto tiene el shader t1, que es el que aparece por defecto (objeto sólido de una sola textura, sin transparencias, etc).

[Imagen: znrHTg0.jpg]

Si pinchamos a la derecha de ese "t1" aparecerán 3 puntitos que pinchando en ellos se abrirá un menú desplegable con los distintos shaders.

[Imagen: ZQRtCxE.jpg]

Y ahora me dirás... ¿qué shader tenemos que usar? ni idea. Pero para saberlo lo mejor es abrir una pista del juego y mirar qué shader usa para el asfalto Sisi1 . En este caso abrí la de Barcelona y seleccioné el material de un trozo de asfalto y ya me sale qué shader está usando y todos los valores.

[Imagen: eeVij0f.jpg]

[Imagen: qA1cuTr.jpg]

Como se puede ver el asfalto de Barcelona usa el shader ks_Multilayer_fresnel_nm. Y si miramos en el listado veremos que no usa una única textura, sino muchas.

[Imagen: I7nIxjo.jpg]

Lo que tenemos que hacer en nuestro proyecto es seleccionar un trozo de asfalto, entrar en el menú de los shaders, desplegar la lista y seleccionar el mismo shader que en el asfalto de Barcelona (ks_Multilayer_fresnel_nm). Luego introducimos todos esos valores y, aunque para el Primary Texture Map usamos nuestra textura, para el usamos las mismas texturas que tiene el asfalto de Barcelona (recordad que podemos extraer texturas de otras pistas).

Tras modificar todos los materiales del asfalto de mi pista, poniéndole el shader y los valores del asfalto de Barcelona, queda así:

[Imagen: aR8GYMj.jpg]

Y después de exportar la pista ya veis cómo se ve ahora en el juego:

[Imagen: k5M4v8U.jpg]

Y si, como en el caso de mi pista, el asfalto tiene muchos materiales (con líneas, sin líneas, líneas contínuas, etc) ¿hay que repetir lo mismo con todos ellos? Pues sí, pero de una manera más fácil. Una vez que tenemos un material terminado es simplemente copiar este nuevo shader personalizado usando el botón copy material...

[Imagen: FAiYsva.jpg]

... seleccionar el material cuyo shader queremos cambiar y darle al botón de paste material (pegar). Cuando nos pregunte si reemplazamos también la textura primaria le decimos que no, así copiará todos los valores y las texturas secundarias pero manteniendo en nuestro objeto la textura que le corresponde.

[Imagen: v7RJT5v.jpg]

Ojo, tenemos que copiar las texturas secundarias a la carpeta Textures de nuestro proyecto, bien manteniendo el mismo nombre o bien cambiándolo (y cambiando las rutas en el Shader), pero es importante no olvidarse de esto.

Y listo. Luego es repetir la operación con los distintos elementos que le vayamos poniendo a la pista. Miramos el shader del objeto que nos interese, copiamos el shader, y lo pegamos en el material de nuestra pista. Por ejemplo, he copiado el shader de los árboles de la pista de Barcelona y lo he pegado en los de mi pista:

[Imagen: upDtBVU.jpg]

[Imagen: OFQNAoH.jpg]

[Imagen: 6IPb4AN.jpg]

[Imagen: RJsAOgR.jpg]

La única variación es que para las hojas le he dejado el Blend Result con valor Alpha Test (con transparencias), mientras que para los troncos les he puesto Replace (sólido). El resultado ya lo veis, bastante bueno.

Y bueno, es eso, copiar shaders, aplicarlo a objetos, etc. De momento no aplico muchos shaders, Cameraman de Nurburgring para las personas 3D y objetos mate, el de los árboles de Barcelona con o sin Alpha Chroma para distintos objetos, crowds, etc. De momento por lo menos el problema de las transparencias ha desparecido, ahora se ve todo correctamente.

[Imagen: 9sLMJaQ.jpg]

[Imagen: 5dauQTF.jpg]

El siguiente paso, abrir un coche del juego (el Ford Escort mismamente) y copiar shaders para coches aparcados y objetos de nuestra pista: reflejos de carrocería, reflejos en cristales, de plásticos, cromados, iluminación, etc.

Así se ven estos dos coches aparcados sin los shaders:

[Imagen: yy6n4Nu.jpg]

Así que voy a copiar shaders de coches del juego. Carrocería:

[Imagen: KoyErXG.jpg]

Cristales:

[Imagen: gKlnzVM.jpg]

Llantas:

[Imagen: OWRhab3.jpg]

Neumáticos:

[Imagen: zwxFQlX.jpg]

Luces exteriores:

[Imagen: pTr3jPA.jpg]

Cromados:

[Imagen: KyC679D.jpg]

Aplicamos los shaders a esos dos coches:

[Imagen: EQuxYPM.jpg]

Cargamos el juego y así es como se ven ahora:

[Imagen: MU0MMTn.jpg]

Comparad con la imagen de arriba sin los shaders. Ahora los cristales reflejan, la carrocería, las llantas, las luces, etc. El cambio es brutal.

Saludos para todos.
Responder


Mensajes en este tema
RE: Diseñando una pista en 3D [+mods +hilo de seguimiento] - por Stig's Cousin - 02-11-2018, 19:20

Salto de foro: