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]
Parte 3. Race Track Builder: pistas adyacentes, cruces, nivelación, y empiezo con los Shaders.

Kotarr tiene varias trazadas posibles. En las dos partes anteriores hemos creado el recorrido de la carrera, la pista principal. En esta parte toca crear las intersecciones de asfalto que se cruzan con la trazada principal y nivelarlas.

Lo primero, hacer una copia de seguridad de lo que tenemos hecho hasta ahora. Esta copia con nombre distintos será la que carguemos para hacer los cruces.

[Imagen: aZzzxiB.png]

Abrimos RTB y cargamos la copia del proyecto. Pinchamos en Tracks y en el tercer botón, que nos permitirá editar las intersecciones. De momento solo tenemos dos: principio y final de la trazada principal. Que deben ser iguales.

[Imagen: 8cbDVVR.png]

Pinchamos en uno (da igual cual). Si nos fijamos la línea de la intersección de la pista tiene una ligera curvatura hacia el centro, lo hace el programa por defecto. Lo primero es nivelarla y dejarla totalmente plana, esto nos va a ahorrar muchísimos quebraderos de cabeza cuando hagamos el resto de las pistas secundarias. Pinchamos en el borde del asfalto, debajo del cono blanco, en el globo naranja. Ahí nos da dos valores. El de la derecha es la altura, como vemos pone 0,02.

[Imagen: R3CFecu.png]

Todos esos globos naranjas deben tener ese mismo valor. Así que es sencillo: vamos pinchando de uno en uno y arrastrándolo cuidadosamente arriba o abajo, manteniendo pulsada la tecla Y, hasta que todos tengan el valor 0,02. Así conseguiremos una pista 100% plana.

[Imagen: e3YxSpy.png]

[Imagen: aCt7b8k.png]

[Imagen: 8D1xTwg.png]

Una vez hecho solo tenemos que pulsar en un nodo naranja con el botón derecho del ratón, copiar, y pegar al resto de la pista. Ambos extremos quedarán iguales.

[Imagen: iIgviIW.png]

[Imagen: cSEnc6p.png]

[Imagen: RUNYJPZ.png]

Bien, vamos con los badenes. Si mantenemos pulsada la tecla Control y pinchamos con el ratón sobre la línea, añadiremos más nodos. Esto es importante en la pista principal pues los badenes se adaptan al terreno, cuantos más nodos añadamos mejor se adaptará (menos angulosa quedará). Pero si añadimos demasiados la carga poligonal será excesiva, así que en su justa medida.

[Imagen: 4c4PpyP.png]

[Imagen: yxun49t.png]

[Imagen: 4A2vpBl.png]

[Imagen: S9tTn1Z.png]

El aumento de líneas en los badenes o la calzada se aplica a toda la pista, por lo que no hay que copiar ni pegar nada.

Esta intersección, una vez terminada, será la que usemos de referencia para todas las intersecciones, por lo que no la volveremos a modificar más.

Bien, vamos a crear las pistas adyacentes. Así que pulsamos en el primer botón para crear una nueva pista. Y punteamos con el botón izquierdo del ratón en el lugar donde queremos crearla. Una vez creada arriba debemos marcar:

- Cut terrain.
- Cut by track.
- Terrain normal.
- Camber: 0,00


[Imagen: wZFlJS4.png]

[Imagen: AS8KYqZ.png]

[Imagen: yA4ICBH.png]

La pista creada es más grande que la de verdad, como la primera vez. Para darle el mismo ancho exacto solo tenemos que copiar ya intersección de la pista principal y pegarla en la intersección de esta pista secundaria, aplicándola a toda esta pista (solo esta).

[Imagen: 8vlercT.png]

[Imagen: 7oJ1uYD.png]

[Imagen: QQ9ECXr.png]

Pero esta pista secundaria es más ancha en los bordes y más estrecha en el centro. Las intersecciones no son solamente en los bordes, podemos crearlas donde queramos. Además se puede ver que esta pista queda más alta, hace como un escalón a la altura de la trazada principal. Hay que corregirlo.

Tirando del cono amarillo (cualquiera de los dos) manteniendo la tecla Y pulsada podemos ajustar la pista secundaria a la altura de la principal. No importa que no cuadre exactamente, eso lo ajustaremos después.

[Imagen: hP8VKAZ.png]

[Imagen: Pf5JDB0.png]

Como podemos ver los badenes de la pista principal tapan la pista secundaria. Para corregirlo copiamos una de las intersecciones primarias. Y luego, pulsando C, las copiamos en la pista principal a la altura de la pista secundaria. Cuatro veces. De tal forma que dos hagan "pasillo" a la altura de la pista secundaria, y luego una más a cada lado.

[Imagen: eCEZVKZ.png]

[Imagen: YP4N0gI.png]

Bien. Ahora lo que hay que hacer es "bajar" el badén de la pista principal en esa intersección, de tal forma que el badén de la pista principal quede por debajo del asfalto de la pista secundaria. Se hace tirando de los conos blancos de los extremos, manteniendo la tecla Y pulsada. Lo haremos solo don las dos intersecciones centrales, dejando las dos de cada extremo intactas.

[Imagen: 1NxYphL.png]

Lo último. Pinchamos en la pista secundaria y creamos más intersecciones en la pista, ajustándola al ancho de la pista real (tirando de los conos blancos y manteniendo pulsado X). Luego hacemos un ajuste perfecto a la pista principal.

[Imagen: BlInWL4.png]

[Imagen: suRWY6q.png]

[Imagen: qGRF3dB.png]

[Imagen: 9WUHofd.png]

El resultado es una pista secundaria totalmente ajustada a la pista principal. Si corremos por la secundaria no habrá "baches" ni "rebotes". También se verá cuando añadamos adelante otros elementos (pianos, filas de neumáticos, etc, ajustará todo a nivel, no se verán "escalones"). Repetimos con las demás pistas secundarias del circuito. Y tras colorear la trazada principal, las pistas secundarias, las zona de pitlane, las pistas de servicio y público, etcétera, el resultado es este:

[Imagen: 3y0u31y.png]

Ojo. Cuando coloreemos una pista hay que verificar que esté marcada la casilla "track" y no "global" para que el pintado sea correcto, o se verá muy mal.

Hora de hacer un testeo. Ya hemos visto cómo poner la pista en el juego, así que no es más que exportar, copiar todo en la carpeta de la pista sobreescribiendo archivos, importar en KSeditor, y reemplazar archivos existentes. Pero en KSeditor vamos a empezar con los Shaders, en concreto con los shaders del asfalto.

¿Qué son los Shaders? Traducido suena algo así como "sombreadores" (que suena bastante mal). Digamos que es la tonalidad y refractancia que pueden tener los objetos, pistas, terrenos, etc. Por ejemplo, un cromado tiene distintos reflejos de un plástico, por lo tanto el shader de cada uno tendrá valores distintos. En esta ocasión solo voy a retocar el asfalto, y para ello voy a utilizar de guía otra pista creada por mi, el Jarama. Bueno, al ser creada por mi no necesitaría hacer esto ya que tengo guardado todo lo necesario, pero lo he hecho así para que veáis como funciona.

El juego tiene una aplicación llamada "Object Inspector". Esta aplicación nos permite, pulsando la tecla ALT y pinchando sobre un objeto, inspeccionar todo de ese objeto: nombre de la geometría, nombre del material, tipo de shader, valores del shader, texturas, etc.

[Imagen: TgmmOR8.png]

[Imagen: wgbsmZd.png]

[Imagen: vol0YQo.png]

[Imagen: ejeFVkp.png]

Podemos extraer las texturas de esa pista, si fuese necesario, con la aplicación 3DSimEd, pero como digo en mi caso no es necesario pues ya las tengo, la pista que he inspeccionado es de mi creación. Simplemente copio esas texturas en la carpeta TEXTURE de la pista, abro KSeditor, y aplico el shader adecuado al asfalto (en realidad a los varios tipos de asfalto: uno para la trazada principal y las pistas adyacentes, otras texturas distintas para la zona de boxes, etc).

[Imagen: I7YNeNy.png]

[Imagen: lce1ths.png]

[Imagen: 3cPddBC.png]

[Imagen: SHBKoQ3.png]

La diferencia es palpable e instantánea. El asfalto se vuelve mucho más realista. Resultado ingame:

[Imagen: jsKb2Bf.png]

[Imagen: l9x5lFa.png]

[Imagen: el9EUCU.png]

[Imagen: Enmuhpb.png]

¿Vamos a tener que definir todos los shaders uno a uno? ¿qué pasará cuando tengamos un millón de objetos en la pista?

Lo ideal es usar los menos materiales posibles y por lo tanto los menos shaders posibles. Por ejemplo, en una farola, no tendría sentido poner un material para la bombilla, otro para el tubo, otro para la portezuela de mantenimiento, otro para la cerradura de la portezuela, etc. Lo lógico sería dejar un material para la parte que se ilumina (si queremos que se encienda de noche) y un material para todo lo demás. Eso hace que no tengamos que editar tantos shaders.

Luego hay que tener en cuenta que si un objeto lo repetimos, todos ellos usarán el mismo material. En el ejemplo de la farola, si ponemos 1 o 100 da igual, al ser iguales usarán el mismo shader, por lo que al definirlo definimos todas las farolas a la vez.

De todas maneras el KSeditor, como veremos más adelante, tiene una función de copiar y pegar materiales. Normalmente los shaders más usados son:

- ksPerPixel (shader por defecto).
- ksPerPixel_AT (igual que el anterior, pero para objetos con transparencias).
- ksPerPixel_NM (igual que el primero, pero para objetos con "normales" o sensación de profundidad).

Los valores que suelo utilizar para todos los shaders son:

- ksAmbient: 0.2
- ksDiffuse: 0.2
- ksSpecular: 0 (reflactancia de la luz del sol en el objeto, cero normalmente, sube según se trate de un plástico, un cristal, un cromado, etc)
- ksSpecular_EXP: 10
- ksEmissive: 0 0 0
- ksAlpha_Ref: 0.3 (en caso de haber transparencias, valor que indica la calidad de las sombras, 0 inexistente, 1 exagerado, el valor recomendado por Kunos es 0.3).

En el caso del asfalto se trata de un shader multitextura, se entremezclan varias texturas a la vez en el asfalto y el resultado es una sensación de rugosidad, secciones con partes distintas (socavones, irregularidades, etc). Por lo tanto defino el shader de una textura de asfalto y puedo copiar y pegar los valores de ese shader en otros asfaltos. El resultado final, más realista que como estaba al principio.

En breve la siguiente parte. Saludos.
Responder


Mensajes en este tema
RE: Diseñando una pista en 3D [+Assetto Corsa +mods +tutorial +hilo de seguimiento] - por Stig's Cousin - 09-06-2022, 21:15

Salto de foro: