trensim.comSimulación Ferroviaria
   

TUTORIAL: Avanzando en 3ds Max y RailWorks

Foro para tratar temas relacionados con Autodesk 3ds Max (3D Studio Max) y Autodesk gmax

Moderador: Moderadores

TUTORIAL: Avanzando en 3ds Max y RailWorks

Notapor Pere » Lun Jun 21, 2010 9:55 pm

Tutorial para quitarse el miedo con el 3ds (y 2)

Este tutorial es continuación del denominado "Pinitos en 3ds Max" y pretende ser una profundización de conocimientos para quien desea modelar en este editor para RailWorks.

Se recomienda la lectura y ejecución del tutorial mencionado, pues conceptos ya desarrollados en él no volverán a describirse. En esta ocasión se incidirá en la explicación de los comandos no vistos aún, relajando la descripción de los pasos anteriormente desarrollados. Nos centraremos en las opciones avanzadas que RW permite implementar en los modelos: LODS múltiples, sombras dinámicas, efectos de luz nocturnos, etc, así como en el uso de sombras precalculadas para la preiluminación de los modelos.

El Tutorial, que presenta una visión personal del programa de diseño y de la experiencia en su manejo, se compone de los siguientes pasos:

  1. Sombras dinámicas en los objetos
  2. Detallado del cuerpo de la casilla. Creando múltiples LODs para un mismo elemento.
    1. Rebajando el volumen en las ventanas
    2. Operaciones booleanas
    3. Remapeo de las ventanas
    4. Jerarquía de los LODs
  3. Detallado del tejado
  4. Una lámpara
    1. Doblando tubos
    2. Creando tubos: Dando volumen a una línea
    3. Terminando la lámpara
  5. Sombras precalculadas
    1. Pre-iluminación - E-Light
    2. Creando las sombras precalculadas - Render to Texture
    3. Aplicación de las sombras precalculadas al modelo
  6. Los cimientos de la casilla
  7. Texturas de nieve
  8. Efectos de humo
  9. Texturas nocturnas
    1. Iluminación de ventanas en los edificios.
    2. Iluminación de puntos de luz en el exterior

Por último tampoco quiero olvidar, que aunque el tutorial se presenta narrado en primera persona, éste es fruto de la colaboración y experiencias de varias personas:
  • javierfl
  • LBA
  • blas_dani
  • jjlor
  • Divi4p
  • y Marc
Así como la inestimable dedicación en el testeo del mismo de:
  • edsolis
  • milcien
  • y Francesc SV
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

1. Sombras dinámicas en los objetos

Notapor Pere » Dom Jun 27, 2010 6:58 pm

Ahora que, más que menos, hemos conseguido introducir la casilla en el simulador, vamos a dotarla de sombras dinámicas para que no desluzca al lado del resto de edificios.

1. Sombras dinámicas en los objetos

En versiones anteriores de este tutorial, al llegar a este punto se exponía la forma de crear los elementos necesarios para que nuestro objeto proyectara sombras sobre su entorno y otros objetos, mediante el uso de los "elementos sombra", que tan temidos eran por los modelistas debido a la facilidad con la que se producían errores, denominados "artefactos".

En la actualidad el proceso se ha simplificado mucho: No tenemos que hacer NADA. :mrgreen:

Efectivamente, desde la versión RW3, o TS2012, el motor gráfico del simulador genera las sombras de forma dinámica a partir de la malla original del objeto, por lo que nosotros tan solo tedremos que cumplimentar en el blueprint el parámetro "Casts Shadows" con el valor True (sección "Render component") si deseamos que las sombras se generen y sean visibles:

Imagen

Una preocupación menos a la hora de diseñar nuestra casilla. Dediquemos, por tanto, nuestro esfuerzo en mejorar el modelo y pasemos al siguiente punto.
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

2.1. Rebajando el volumen en las ventanas

Notapor Pere » Dom Jun 27, 2010 7:27 pm

2. Detallado del cuerpo de la casilla. Creando múltiples LODs para un mismo elemento.

Vamos a mejorar la casilla, proporcionándole un nuevo cuerpo más detallado que usaremos para las distancias "cortas", manteniendo el cuerpo simple que hemos creado para las distancias "largas". Es decir, dotaremos a un mismo elemento de más de un LOD, con mallas diferentes para cada uno de los LODs.

2.1. Rebajando el volumen en las ventanas

Al nuevo cuerpo de la casilla le vamos a "ahuecar" ventanas y puertas para obtener un resultado semejante a este:

rw-cs013.jpg

Además jugaremos con los LODs, no ya para hacer que una pieza "desaparezca" a partir de una distancia determinada, si no para conseguir que una misma pieza comparta varias mallas diferentes y que cada una de estas sea visible en un rango de distancias alternativas.

Por tanto, vamos a empezar por crear un nuevo cuerpo de casilla, y para ello clonaremos el existente. Empezaremos por "despejarnos" el área de edición de todos los elementos menos el cuerpo de la casilla, y para ello:

3ds-cs025.jpg

  1. Abrimos la ventana de Selección por nombre.
  2. Seleccionamos la casilla y damos a OK.
  3. Con la casilla seleccionada, que es el único elemento que queremos conservar a la vista, desplegamos el menú contextual y seleccionamos "Hide Unselected".
Una vez nos encontramos cómodos, y con la casilla seleccionada, volvemos a desplegar el menú contextual para seleccionar "Clone". Una ventana nos preguntará el tipo de clonación que deseamos, pregunta a la cual deberemos contestar "Copy". Podemos nombrar en este momento la nueva pieza que se nos creará, por lo que aprovecharemos y le llamaremos "1_0128_Casilla". Con esto estamos indicando que queremos que sea visible hasta los 128 metros de distancia.

Deberemos seleccionar el cuerpo original de la casilla, denominado "1_1250_Casilla", y lo renombraremos como "2_1250_Casilla". Con esta acción ya hemos indicado que el nodo Casilla va a tener dos elementos que lo representen, el LOD 1 que será visible hasta 128 metros y lleva por nombre 1_0128_Casilla, y el LOD 2 que será visible entre los 128 y los 1.250 metros y lleva por nombre 2_1250_Casilla. De esta forma podríamos establecer tantas mallas diferentes para tantos LODs como deseemos, determinando las distancias de cambio de las mismas. Esta jerarquización de los nombres de las piezas es lo que determinará que en la exportación RailWorks sepa como queremos que interactúen dichas piezas entre sí.

Ahora que ya tenemos los dos elementos de la casilla para sus respectivos LODs, ocultaremos, tal como hemos hecho antes, el LOD lejano 2_1250_Casilla, dado que este elemento ya tiene la malla que queremos. Nos dejaremos visible el LOD cercano 1_0128_Casilla para trabajar en él e incrementar su detalle como corresponde a su visión de cerca.

En primer lugar, como la casilla la vamos a moldear mediante operaciones booleanas para "ahuecar" ciertas partes de sus fachadas, es necesario que sea un objeto "cerrado" en su totalidad. Esto no es así porque en su momento eliminamos el polígono inferior de la casilla (como ejemplo de aligeramiento de polígonos de las piezas), por tanto, y en esta ocasión, en primer lugar deberemos volver a crear un polígono en la base de la casilla que nos "cierre" la forma geométrica de la misma.

En el Viewport en perspectiva giraremos la escena hasta situarnos "bajo" la casilla, donde efectivamente comprobamos que no existe dicha cara.

Si en el Stack de modificadores observamos que tenemos varios modificadores (tendremos un "Unwrap UVW" sobre "Editable Poly") desplegaremos el menú contextual del Stack de modificadores para solicitar un "Collapse All". De esta forma consolidamos dichos modificadores en la pieza y podemos seguir a partir de este punto. Esta operación de consolidar todos los modificadores de una pieza la deberíamos realizar cada vez que queramos dar por buenas las operaciones efectuadas, para evitar que éstas nos afecten a nuevas modificaciones, o siempre antes de exportar el modelo.

Veamos ahora la operación de creación de la cara inferior:

3ds-cs026.jpg

  1. Seleccionamos "Polygon" como modo de trabajo.
  2. Buscamos y pulsamos el botón "Create".
  3. En el viewport pasaremos el ratón cerca de alguna de los vértices inferiores. El cursor, que mostrará una especie de mira telescópica, cambiará su forma (se hace más estrecha la mira) cuando nos situemos sobre el vértice con exactitud. En ese momento pulsaremos para indicar que este debe ser uno de los vértices que definirán el nuevo polígono a crear.
  4. Seguiremos pulsando, en el sentido de las agujas del reloj, en los sucesivos vértices de la base de la casilla.
  5. Al terminar, volveremos al primer vértice seleccionado y volveremos a pulsar sobre él para indicar que hemos terminado de definir los vértices del polígono.
  6. Se nos creará éste, que además se ha mapeado sobre el material (como Dios le ha dado a entender).
  7. Para salir del modo de creación de polígonos, volver a pulsar el botón "Create" para "soltarlo" y anular su función.
Una vez "cerrada" la casilla seguiremos el trabajo.

Para ahuecar las ventanas crearemos un objeto, de la forma y tamaño del hueco a generar, y usaremos una operación booleana para "restar" su volumen del de la casilla. Empezaremos a preparar el objeto "ahuecador". Ante todo hemos de tener presente la profundidad que queremos dar a las ventanas. Unos 20 centímetros me parecen suficiente para este propósito.

Crearemos, en la vista top, un cubo y le daremos las medidas 0,4 m. de ancho, 0,4 m. de profundidad y 0,4 m. de alto. Lo desplazaremos 2 metros hacia la fachada lateral izquierda, para que esté justo sobre ella, para lo cual bastará darle las coordenadas X=-2,0 m, Y=0,0 m y Z=0,0m.

En el Viewport lateral "Left" desplegaremos el menú contextual sobre el nombre del Viewport ("Left") y escogeremos que la representación en él de los objetos sea "Smooth + Highlights", en lugar de "Wireframe", de esta forma los objetos se mostrarán macizos y texturados.

3ds-cs027.jpg

Desplazaremos el cubo hasta la posición de la ventana. Esto lo podemos hacer mediante "Select and Move" y, en la vista lateral, pinchando con el ratón sobre las dos flechas, verde y roja, que aparecen sobre el "pivot" del cubo.

3ds-cs028.jpg

Una vez en posición, y mediante "Select and Scale" procederemos a dar un tamaño al cubo semejante a la ventana. El procedimiento será semejante al anterior, jugando con las dos flechas.

3ds-cs029.jpg

Si la ventana de la casilla fuera cuadrada ya tendríamos el patrón para crear el hueco en la fachada, pero en este caso, como en muchos edificios ferroviarios, la ventana tiene forma de arco en su lado superior. Vamos a darle esta forma al cubo auxiliar.

Iremos a la vista en perspectiva, donde centraremos la ventana y el cubo. Como éste último está situado "sobre la pared", con la casilla seleccionada pulsaremos las teclas "Alt" + "X", con el fin de volver temporalmente semi-transparente la casilla y así ver en su totalidad el cubo sobre el que vamos a trabajar. En esta situación, convertiremos el cubo en "Editable Poly", pasaremos a modo aristas ("Edge") y seleccionaremos, de las aristas superiores, las anterior y posterior respecto al lado largo del cubo (las señaladas en rojo en la imagen):

3ds-cs030.jpg

Para seleccionar más de una arista a la vez, procederemos a seleccionar una de ellas en primer lugar, pinchando sobre ella, y a continuación "añadiremos" una segunda arista a la selección que tenemos realizada hasta ahora manteniendo pulsada la tecla "Control" mientras pulsamos sobre la segunda.

Con ambas aristas seleccionadas buscaremos el botón "Connect" en el Command Panel, bajo el apartado "Edit Edges", y pulsaremos sobre el pequeño icono que tiene adosado, para que nos solicite los parámetros de "conexión" de las aristas. Este comando crea aristas que conectan las seleccionadas. En la ventana que nos aparece informaremos que queremos 4 segmentos (nuevas aristas) y aceptaremos.

3ds-cs031.jpg

Con esta operación hemos conseguido subdividir la cara superior del cubo en cinco tramos (cuatro aristas) que procederemos a modificar para adaptar al contorno de la ventana.

Para ello volveremos a seleccionar la casilla y a pulsar la combinación de teclas "Alt" + "X", para que ésta deje de ser semi-transparente, y ampliaremos el viewport lateral "Left" para trabajar la cara superior del cubo.

Volvemos a seleccionar el cubo y en modo de vértices ("Vertex") creamos con el ratón un área de selección que incluya todos los nuevos vértices que hemos creado:

3ds-cs032.jpg

Y mediante "Select and Move" los desplazaremos hacia arriba, usando la flecha verde, hasta que se ajusten al contorno del arco de la ventana:

3ds-cs033.jpg

Repetiremos la operación, seleccionando esta vez tan sólo los dos vértices centrales, para adaptar nuevamente esta zona del cubo al arco:

3ds-cs034.jpg

Y por fin tenemos un molde (inverso) del hueco que queremos efectuar en la casilla.

Este capítulo ha sido más largo y hemos entrado en trabajo más fino con el editor, por tanto guardaremos la labor efectuada y descansaremos hasta el próximo capítulo, donde clonaremos este molde para el resto de ventanas (y puerta) y procederemos al rebajado de las fachadas. :D
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

2.2 Operaciones booleanas

Notapor Pere » Lun Jun 28, 2010 6:52 pm

2.2 Operaciones booleanas

Ya tenemos creado el molde de una de las ventanas. Esta pieza la hemos creado inicialmente de 40 centímetros en todas sus dimensiones, y aunque hemos variado éstas para adaptarla al contorno de la ventana, en profundidad sigue midiendo los 40 centímetros originales. ¿Recordáis que dijimos que los ahuecados serían de 20 centímetros? Pues al estar la pieza "centrada" respecto al límite de la fachada, media pieza está solapada en el interior de la casilla y eso son los 20 centímetros deseados.

Ahora duplicaremos la pieza mediante "Clone" (lo encontraremos en el menú principal Edit -> Clone, en el menú contextual o también pulsando "Ctrl" + "V") y seleccionando "Copy". Siempre elegiremos Copy en nuestras clonaciones de objetos, pues los otros tipos de clonado no los soporta RW.

Una vez duplicada la desplazaremos ("Select and Move" y arrastraremos la flecha roja) para ajustarla a la otra ventana de la misma fachada:

3ds-cs035.jpg

Procederemos de forma parecida duplicando ambas piezas y desplazándolas a la fachada contraria. Tened cuidado pues las ventanas no estarán exactamente enfrentadas (aunque cabría esperarlo) porque las texturas pueden no estar perfectamente centradas, para ello será necesario cambiar la vista lateral mediante Views -> Set Active Viewport -> Right:

3ds-cs036.jpg

Para la ventana de la fachada posterior, el procedimiento será semejante con la diferencia que debemos girar la pieza 90º.

Empecemos por crearla, partiendo de cualquiera de las existentes y clonándola. Giraremos la pieza resultante mediante "Select and Rotate" e introduciendo un giro de 90 en el eje Z:

3ds-cs037.jpg

Para a continuación desplazarla con "Select and Move" a las coordenadas X=0,0 m. (para centrarla en la fachada posterior, y Y=-3,0 m. para ajustarla al centro de la pared:

3ds-cs038.jpg

Como en los casos anteriores ajustaremos finamente la posición y/o el tamaño del molde de la ventana para ajustarlo a las texturas.

Para realizar el molde de la puerta partiremos del que acabamos de crear para la ventana posterior, pues ya lo tenemos orientado. Por tanto, lo clonaremos y desplazaremos dándole al eje Y el valor 3.0 m (cambiando el signo), y nuevamente ajustaremos la posición y/o el tamaño del molde de la puerta para ajustarlo a las texturas. Claro que no nos ajustará hasta el pié de la puerta, pero enseguida vamos a corregir esto último.

Pasaremos a modo de edición por vértices, y seleccionaremos los inferiores del molde:

3ds-cs039.jpg

Para a continuación desplazarlos hasta la base de la puerta

3ds-cs040.jpg

De este modo tenemos listos todos los moldes de los huecos que queremos realizar en la casilla.

Pasaremos a ocultar la propia casilla (por comodidad) y seleccionaremos uno de los moldes cualquiera, al cual aplicaremos el comando "Attach" que encontraremos en el Command panel, dentro del apartado "Edit Geometry".

3ds-cs041.jpg

Este comando procederá a unir a la pieza seleccionada cualquier otra pieza que vayamos seleccionando a continuación, hasta que soltemos el botón del Command Panel. Por tanto, con el comando "Attach" activo iremos seleccionando los otros moldes sucesivamente.

Una vez terminado (no olvidar desactivar el comando "Attach", o seguiremos uniendo al molde toda pieza que seleccionemos) podemos comprobar que todos los moldes de las ventanas y la puerta ahora son un único elemento en el editor.

3ds-cs042.jpg

Volveremos a hacer visible el cuerpo de la casilla mediante "Unhide by Name" del menú contextual, y seleccionaremos de la lista de objetos que tenemos ocultos el denominado "1_0128_Casilla", que es el cuerpo que queremos ahuecar. No confundirse con el elemento "2_1250_Casilla", que éste lo mantendremos tal cual pues es la vista lejana del edificio.

Una vez recuperada la casilla, tenemos dos objetos en el área de edición: la casilla y el conjunto de moldes. Con el cuerpo de la casilla seleccionado procederemos a crear un nuevo objeto, de tipo booleano, a partir de los existentes:

3ds-cs043.jpg

  1. Nos dirigiremos a la pestaña "Create" del Command Panel.
  2. Desplegaremos la lista para elegir objetos compuestos "Compound Objects".
  3. Pulsaremos el botón "Boolean"(*), indicando el tipo de objeto que deseamos.
  4. El nuevo objeto se creará por una operación booleana entre dos de los existentes. Podemos verificar que la operación seleccionada (lo estará por defecto) sea Substract (A-B), es decir que al objeto A (el que está seleccionado al iniciar la operación) se le "restará" el volumen del objeto B.
  5. Debemos indicar cual deseamos que sea el objeto B de la operación, y por eso pulsaremos el botón "Pick Operand B", y a continuación seleccionaremos el objeto que contiene los moldes.
Observaremos como la casilla a pasado a tener ahuecadas las zonas que deseábamos:

3ds-cs044.jpg

Podemos verificar todas las fachadas para comprobar que no haya ocurrido ningún "percance". Las fachadas se han ahuecado convenientemente, aunque, eso sí, los nuevos polígonos creados no tienen mapeada la textura y por tanto la presentan en su totalidad. Pero eso lo arreglaremos más adelante ;)

Y una vez satisfechos con el trabajo, procederemos a guardarlo, que el esfuerzo invertido no es cuestión de que lo podamos perder tontamente. Descansemos un rato hasta que veamos como arreglar el mapeo de los nuevos polígonos del cuerpo de la casilla.
_________________________
(*) Podemos también usar el tipo Proboolean, de operaciones semejantes a Boolean, pero quizás de mejores resultados en el objeto final en cuanto a menos polígonos y complejidad generados. Dependiendo de la morfología de los objetos que intervienen en la operación será más conveniente usar uno u otro.
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

2.3. Remapeo de las ventanas

Notapor Pere » Jue Jul 01, 2010 6:40 pm

2.3. Remapeo de las ventanas

A la casilla, convenientemente seleccionada, le añadimos un modificador "Edit Poly", y activamos el modo "Polygon". Observaremos que ya tenemos seleccionados todos los nuevos polígonos que hemos creado en la operación booleana:

3ds-cs045.jpg

Si no fuese así, bastaría seleccionarlos uno a uno con el ratón mientras mantenemos apretada la tecla "Control" para ir añadiendo elementos a la selección existente. Como este es un método muy tedioso, podemos proceder de forma inversa seleccionando todos los polígonos, mediante "Control" + "A", para después ir de-seleccionando las fachadas de la casilla también con el ratón y la tecla "Control", puesto que las fachadas son menos polígonos y de mucho mejor acceso.

Añadiremos el modificador "Unwrap UVW", para mapear estos nuevos polígonos el la hoja de textura, activaremos el modo "Face" y pulsaremos "Edit" para abrir el Editor UVW. No entraré en mucho detalle en las explicaciones, porque estos pasos son semejantes a los que efectuamos la primera vez que mapeamos la casilla, y porque ahora ya nos sentimos más seguros al ver que estas operaciones las tenemos frescas en la memoria. Con el tiempo, y tras repetir varias veces esta operación imprescindible en todos los modelos, los pasos nos saldrán de forma mecánica sin tener que pensarlos, como el cambiar las marchas del coche :wink:

En el "Editor UVW" nos aparecen todos los polígonos. :shock: Si, ya se que no veis nada, pero eso es porque están todos apelotonados uno encima del otro. Respiraremos profundamente para relajar la "acojonalina" y seguiremos seleccionándolos todos mediante "Control" + "A" (con el tiempo estas teclas las terminareis "hardcodeando" en la memoria):

3ds-cs046.jpg

Procederemos a reubicar estos polígonos mediante Mapping -> Flatten Mapping... aceptando los valores por defecto que nos muestre, lo cual nos distribuirá estos polígonos:

3ds-cs047.jpg

Ahora ya lo vemos más claro y recuperamos la sensación de control, a la par que nos damos cuenta de que en el fondo no es tan fiero el animal como lo pintan, :D

Vamos a hacer dos cosas con estos mapeos. Una, no necesariamente imprescindible, será girar todos estos polígonos 90º contra-reloj para que las ventanas queden rectas. Realmente la posición no importa, pero la textura quedará más clara. La segunda será escalar y reubicar estos mapeos en una zona libre de nuestra hoja de texturas.

Vamos a por la primera. Seleccionamos todos los polígonos (¿que teclas eran? :twisted: ) mediante "Control" + "A" y de la barra de botones superior activamos "Freefrom Mode", que nos permite una cierta libertad en la modificación de los polígonos que tengamos seleccionados (Traslado, Rotación y Escalado):

3ds-cs048.jpg

Los polígonos seleccionados aparecen enmarcados en un cuadrado que presenta puntos de arrastre en las esquinas y centros de los lados. Nos dirigiremos a uno de los puntos de arrastre centrales de un lado. Estos puntos permiten efectuar una rotación al conjunto de polígonos seleccionados. Si arrastramos en este punto y movemos el ratón veremos que se produce dicha rotación. Un número que aparece en el centro nos dice los grados de giro que estamos imprimiendo a la selección. Podemos intentar girar el conjunto para obtener 90 grados exactos, pero veremos que es muy difícil obtener dicha cifra: o nos pasamos o no llegamos (parece una mano de las "siete y media"). Inspiración profunda... Podemos "deshacer" cualquier movimiento o rotación mediante "Control" + "Z" (esto no es nativo del 3ds, si no del Windows y nos permite deshacer la última acción). Reintentaremos rotar el conjunto, pero esta vez pulsaremos la tecla "Control" y mientras la mantenemos pulsada intentaremos nuevamente el giro de los polígonos, y esta vez veremos que dicho giro se produce tan sólo en saltos de 5 grados exactos, y que podemos obtener los 90 grados sin ninguna dificultad :D ¡Qué grande es este invento!

Cuando tengamos que realizar rotaciones de, exactamente, 90 o 180 o 270 grados (en un sentido u otro) también se pueden usar los botones "Rot +90" o "Rot -90" que están ubicados abajo a la derecha de la ventana del editor. Como normalmente casi siempre vamos a rotar en múltiplos de 90º, estos botones nos resultarán muy útiles y nos recuerdan que en 3ds las cosas se suelen poder hacer de varias maneras diferentes.

Una vez "enderezadas" las ventanas activaremos la textura en el selector que hay arriba a la derecha ;) y desplazaremos el conjunto (pinchar y arrastrar) hasta la esquina superior derecha de la hoja de texturas, donde seguramente tenemos una zona libre.

3ds-cs049.jpg

En mi caso la selección "pisaba" sobre otras texturas, pero como las ventanas son más grandes que las de la textura de la fachada, podemos permitirnos "reducir" este conjunto hasta un tamaño aceptable y que nos quepa en la zona despejada, para lo cual esta vez arrastraremos una de las esquinas de la selección que nos permite cambiar el tamaño al conjunto. Si mantenemos pulsada la tecla "Control" mientras realizamos el escalado, en esta ocasión el efecto será el de mantener las proporciones originales en el proceso de escalado.

Ya tenemos "mapeados" los nuevos polígonos. Ahora lamento no haber comprimido algo más las texturas anteriores en previsión de futuras "expansiones" de la casilla, pero no nos preocupemos que tampoco es tan grave y no os voy a pedir que repitáis todo el mapeado de la casilla :lol:

Los pasos que siguen también los efectuamos en su día. Desde el Editor UVW" vamos a "Tools" y seleccionamos "Render UVW Template..." donde generaremos una plantilla de los mapeos seleccionados:

3ds-cs050.jpg
3ds-cs050.jpg (46.98 KiB) Visto 23741 veces

Una vez guardada la plantilla como un archivo de imagen procederemos en el editor de imágenes que usemos a añadir como una capa esta imagen a la hoja de texturas que teníamos mediante el modo de fusión (Blend Mode) "Lighten", con lo cual las zonas negras de la nueva capa se volverán "transparentes".

A la imagen resultante le rellenaremos las ventanas y puerta con las texturas de las mismas, y al resto de nuevos polígonos con una capa de gris del mismo tono que las paredes:

ps-cs010.jpg

Una vez exportada la textura al formato .ACE, podemos regresar a la casilla para ver como nos queda el resultado :D

3ds-cs051.jpg

¡Hay que ver como va cambiando la cosa con cuatro arreglillos de nada!
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

2.4. Jerarquía de los LODs.

Notapor Pere » Jue Jul 01, 2010 8:28 pm

2.4. Jerarquía de los LODs.

Llegados a este punto nos podemos sentir tentados de exportar el modelo para observar como se aprecia en el simulador con los nuevos aditamentos.

Podemos pensar que el simulador sabrá dilucidar que en distancias hasta los 128 metros deberá visualizar el elemento 1_0128_Casilla (lo que será el LOD 1 del cuerpo de la casilla), y desde esta distancia hasta los 1250 metros visualizará el elemento 2_1250_Casilla (el LOD 2 del mismo cuerpo de la casilla), pero puede que esto no sea así y que nos llevemos la sorpresa de que el simulador visualiza tan sólo un elemento de la casilla: puede que éste sea el tejado (sin nada más), puede que sea el cuerpo de la casilla "lejano" (sin tampoco chimenea, ni tejado ni nada), etc.

No siempre nos ocurrirá esto, pero si pasa es debido a que los elementos de 3ds Max no están debidamente ordenados para que el plugin de exportación efectúe correctamente su trabajo. Debemos asegurarnos de que cuando existan múltiples LODs para un elemento, estos se "ordenen" en la secuencia debida.

Si en estos momentos visualizamos todos los elementos que tenemos, y pulsamos el botón "Select by Name" de la barra principal, obtendremos una ventana como esta que os muestro:

3ds-cs074.jpg

Podemos ver todos los elementos, y el orden en que se nos muestran es el de su creación o modificación.

Una cosa destaca, y es lo que provocará que la casilla se exporte de forma errónea: El segundo LOD de la casilla está "antes" que el primer LOD de la misma.

Para corregir esto es buena costumbre que los LODs estén "enlazados" ("linkados") a sus respectivos LOD de nivel inferior. Es decir, que el LOD 2 de la casilla esté enlazado al LOD 1 de la misma. Y si hubiera un LOD 3 de este elemento, debería estar enlazado al LOD 2 de dicho elemento.

La representación deseada sería por ejemplo la siguiente, donde se observa esta jerarquía que he mencionado de los LODs de la Casilla:

3ds-cs075.jpg

La pregunta que nos hacemos es ¿Y esto cómo se hace?

3ds Max permite enlazar ("linkar" o "conectar") objetos de una escena entre sí estableciendo una jerarquía entre ellos. Cuando realizamos esto, cualquier operación que realicemos sobre uno de ellos se transmite a su jerarquía inferior. Es decir, si enlazamos la chimenea con el tejado (el tejado pasa a ser el elemento superior de la chimenea) y desplazamos, o rotamos este elemento, la chimenea se desplazará o rotará en la misma proporción como si ambos elementos estuviesen unidos entre sí, aunque sigan siendo elementos independientes de la escena. Como os podéis imaginar, esta propiedad es sumamente útil sobre todo cuando creamos animaciones, porque dichas animaciones se transmiten también a los elementos de la jerarquía inferior.

Pero en este caso las jerarquías nos servirán para establecer el orden de los LODs.

En la interfase del 3ds encontramos algunos elementos que nos permiten establecer o romper estos enlaces:

3ds-cs076.jpg

  • Select and Link. Mediante este botón podremos seleccionar un elemento de la escena, y una vez seleccionado podremos pinchar en él y arrastrar el ratón hasta otro elemento de la escena que pasará a ser el "padre" del primero (el superior en la jerarquía).
  • Unlink Selection. Rompe los enlaces de los elementos seleccionados con sus superiores jerárquicos.
  • Schematic View (Open). Abre la ventana de la vista esquemática de los elementos de la escena.
Los dos primeros nos permiten establecer (o deshacer) jerarquías directamente en la escena. Pero en nuestro caso, en que queremos trabajar con los dos cuerpos de la casilla que ocupan el mismo espacio en la escena, esto puede ser bastante complicado, por no decir muy difícil.

Por suerte tenemos el botón de la Vista Esquemática, que permite trabajar la jerarquía con total libertad y comodidad. Por tanto, basta ya de cháchara y vamos por tanto a pulsar el botón "Schematic View" para abrir dicha Vista Esquemática:

3ds-cs077.jpg

Observamos que los diferentes elementos, en esta vista, están tan sólo representados por un rectángulo con el nombre del elemento.

Pulsaremos el botón "Connect", que nos permitirá establecer una relación jerárquica, y pincharemos sobre el elemento que deseamos que sea el "Hijo" de la relación, en este caso 2_1250_Casilla, y sin soltar arrastraremos el ratón hasta el elemento que queremos que sea el "Padre" de la relación, en este caso 1_0128_Casilla:

3ds-cs078.jpg

Al soltar el ratón observaremos cómo se crea la relación y en el esquema se disponen los elementos según la jerarquía:

3ds-cs079.jpg

Si los elementos no se distribuyeran automáticamente en el esquema, podemos pulsar el botón "Always Arrange" para que esto ocurra.

Aprovechando que hablamos de las jerarquías de LODs cabe comentar que también se permiten LODs para las sombras, y que estos elementos siguen las mismas reglas de jerarquía que el resto de objetos. A título de observación, y aunque no describa el proceso en detalle, podríamos duplicar la casilla "cercana" 1_0128_Casilla para generar un LOD cercano de la Sombra de la casilla, ahora que aún es un volumen cerrado, que tenga los huecos de las ventanas y puertas, para de esta forma proyectar también sombra en el interior de dichos huecos hasta los 128 metros también (es un detalle sin importancia, pero si queréis lo podéis realizar ;) ). Si lo lleváis a cabo, una vez duplicado y renombrado correctamente, bastará con abrir el editor de materiales (la "caja de las bolas") para seleccionar el material Shadow_Sombra que tenemos creado y arrastrarlo sobre el elemento de sombra cercana de la casilla. Luego, deberemos aplicar la jerarquía y listos para exportar.

Ahora estamos en disposición de exportar correctamente la casilla y visualizarla en el simulador.
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

3. Detallado del tejado

Notapor Pere » Vie Jul 02, 2010 4:17 pm

3. Detallado del tejado

Vamos a consolidar los conceptos de modelado en 3ds Max con una acción sin dificultad ninguna: detallaremos el tejado añadiéndole las vigas de sujeción.

En la imagen de la casilla se aprecian éstas principalmente en la fachada frontal (o trasera):

Imagen

Las crearemos a partir de simples cubos. Realizaremos primero una y luego por copia de ésta obtendremos el resto. Veamos como.

En la vista Superior creamos un cubo a lo largo del eje del tejado, un poco a ojo que luego ya lo ajustaremos:

3ds-cs052.jpg

Pasaremos a darle las medidas: Longitud = 6,5 m (diez centímetros menos que la longitud total del tejado), Ancho = 0,07 m, y Alto 0,15 m. Desplazaremos la viga, mediante "Select and Move" a las coordenadas X = 0 m, Y = 0 m, y Z = 0 m, para estar seguros que queda centrada respecto a la casilla. A continuación la elevaremos hasta enrasar con el tejado, eso será en Z = 4,85 m (los 5 metros de altura de la casilla menos los 0,15 m de altura de la viga):

3ds-cs053.jpg

Con la viga creada y bien situada, procederemos a eliminarle el polígono superior, que no podrá ser visto en ningún caso. Le añadimos el modificador "Edit Poly", activamos el modo "Polygon", seleccionamos el superior, y le damos a la tecla "Suprimir". :D

Pasaremos ahora al modo Aristas "Edge" para seleccionar la arista inferior de uno de los extremos:

3ds-cs054.jpg

Y a esta arista le aplicaremos un Chamfer de 0,08 m, para dejar el extremos achaflanado:

3ds-cs055.jpg

En realidad en la casilla original el achaflanado de las vigas tiene la forma de un cuarto de arco de circunferencia, pero ese pequeño detalle lo obviaremos en la presente creación pues se trata de un edificio. Cuando estemos reproduciendo material móvil deberemos ser más rigurosos con el modelo.

Repetiremos el achaflanado en el otro extremo de la viga, y con esto ya hemos terminado con este elemento.

Duplicaremos la viga, mediante "Clone" + "Copy", y la llevaremos hasta una fachada lateral del edificio, justo bajo el alero. En la vista frontal giraremos la viga mediante "Select and Rotate". Al activar este comando aparecen dos círculos alrededor del pivote de la viga, si pinchamos en el exterior del círculo amarillo y arrastramos provocaremos un giro respecto al eje longitudinal del cubo, y podremos ajustarlo hasta que la cara superior quede adosada al tejado:

3ds-cs056.jpg

La posición correcta de la viga se obtiene girando 26,5º (es la inclinación que dimos al tejado), y desplazándola en el eje X a los 2,034 metros.

Entre la viga central y ésta extrema en el alero, la casilla tiene dos vigas más; por tanto dividiremos la distancia entre ambas, 2,034 m, en tres segmentos, lo cual da una longitud de 0,678 m a cada segmento. Es por esto que duplicaremos nuevamente la viga extrema (que ya tiene la inclinación correcta) y la desplazaremos hasta la posición X = 0,678 m. Luego la desplazaremos en el eje vertical hasta enrasarla con el tejado nuevamente.

Una última duplicación y desplazamiento de la nueva viga a la distancia X = 1,356 m (0,678 m + 0,678 m.) nos colocará la viga restante en esta ala del tejado.

Duplicaremos ahora las tres vigas de un costado y las ubicaremos en el contrario, con la simple operación de desplazar a su posición invirtiendo el signo de la coordenada X, y cambiando la inclinación de la viga en modo "rotate" invirtiendo también el signo de la rotación en el eje Y. Con ello tendremos las siete vigas que sustentan el tejado.

3ds-cs057.jpg

Por último, ya conocéis la mecánica, texturaremos las vigas, para lo cual añadiremos a este elemento el material adecuado, es decir, usaremos el mismo material que en el resto de la casilla.

Como paso previo (aunque lo podríamos haber dejado para más adelante) prepararemos la hoja de texturas ubicando en una zona libre una superficie de color madera para las vigas. No debemos preocuparnos demasiado por el tono del color, pues después lo ajustaremos ( :twisted: ya vereis, ya), pero en cualquier caso es mejor un tono poco saturado, dado el aspecto polvoriento de la casilla.

ps-cs012.jpg

De regreso al 3ds, seleccionaremos las siete vigas, y con ellas seleccionadas abriremos la "Caja de las Bolas" (tecla "M") para asignar el material "Casilla" (la primera bola que preparamos en su momento) a la selección, bien arrastrando la bola encima de las vigas, bien mediante el botón "Assing Material to Selection". Podemos cerrar la "Caja de las Bolas" (nuevamente la tecla "M") y observar que las vigas ahora tienen mapeada la textura de la casilla, aunque dicho mapeado no es correcto (aún).

Aprovechando que tenemos las siete vigas seleccionadas, les añadiremos el modificador "Unwarp UVW". Vaya nombrecito que le buscaron al modificador, le podían haber llamado "A texturar...". Porque la primera vez que te dicen que lo uses piensas "con este nombre no puedo más que romper algo, fijo..."; pero ya veis, a estas alturas ya no nos impresiona. Vamos, que por nosotros como si le hubiesen llamado "Folastrador Poligonotrópico del Ciraslillo Pivotante"... ¿Quién dijo miedo? Bueno... miedo me da un poquito porque seguro que un día descubro que existe un botón por ahí que lleva ese mismo nombre: estos son capaces de todo :cry:

En el modificador "Unwrap UVW" seleccionamos "Faces" y entramos en el "Editor UVW". Una vez allí seleccionaremos todos los polígonos mediante "Control" + "A" y los repartiremos sobre la textura mediante "Mapping -> Normal Mapping -> Box Mapping + Spacing = 0". Fijaros que he variado el parámetro "spacing" de esta herramienta; el resultado será que los mapeos no dejarán ningún espaciado entre ellos, pero en este caso no sólo nonos importa si no que hasta nos conviene para que las vigas queden más comprimidas en la hoja de texturas.

La distribución que nos ha generado de los mapeos de las vigas la ajustaremos para ubicarla sobre la zona de la textura que hemos preparado al efecto:

3ds-cs058.jpg

Con las vigas correctamente mapeadas nos dirigiremos al stack del Command Panel y fijaremos la operación realizada desplegando el menú contextual y ejecutando "Collapse All".

Ahora seleccionaremos únicamente la viga central y mediante el comando "Attach" uniremos el resto de vigas a ésta. Al final tendremos un único elemento con todas las vigas al que cambiaremos el nombre para llamarle "1_0064_Vigas". Evidentemente, si deseáis que las vigas se mantengan visibles hasta los 128 metros, bastará cambiar el nombre en la forma necesaria y listos.

3ds-cs059.jpg

Si lo deseamos podemos iniciar RailWorks, dirigirnos al Blueprint Editor y exportar la casilla para verla en el simulador.
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

4.1. Doblando Tubos

Notapor Pere » Vie Jul 02, 2010 8:24 pm

Antes de que nos olvidemos, procedamos a suprimir el polígono de la base de la casilla cercana, 1_0128_Casilla, que habíamos tenido que crear para realizar los ahuecados de las ventanas.

3ds-cs060.jpg

Como comentario, ¿os preguntáis qué hubiera pasado si realizamos la operación booleana de rebajar los moldes de las ventanas sin éste polígono inferior? O sea, sin que la casilla representara un volumen cerrado. Pues sencillamente que hubiese funcionado la operación igualmente, pero en lugar de rebajar el volumen del operando A (la casilla) se habría perforado éste elemento:

3ds-cs061.jpg

Éste es el resultado de una de las pruebas durante el proceso de creación del tutorial, no os vayáis a pensar que yo no meto la pata también... :lol: En este caso no era el resultado esperado, pero en otros casos podría serlo ;)

Ahora nos vamos a enfrentar a un último paso de detallado de la casilla: la creación de una lámpara sobre la puerta. La casilla original no tenía este elemento, pero su realización nos irá bien por varias cosas:
  • Tendremos que trabajar con objetos llenos de curvas, mientras que hasta ahora todo han sido superficies rectas.
  • Deberemos "doblar" tubos, y nuestros modelos de vehículos ferroviarios estarán llenos de barandillas y pasamanos, por lo que nos vendrá bien practicar con ello.
  • Mapearemos texturas de objetos no "cúbicos", es decir con sus caras no necesariamente en linea con los tres ejes del espacio.
  • Y nos dará pié a implementar iluminación "nocturna" al modelo, con sus diferentes características.

Pues vamos allá.

4.1. Doblando Tubos

El modelo de farola, será algo parecido a esto al final:

3ds-cs062.jpg

Empezaremos por mostrar todos los elementos de la casilla ("Unhide All") y seleccionaremos y ocultaremos "1_0256_Sombra", "2_1250_Casilla" y "1_0064_Vigas.

Con la escena preparada, veamos como realizar el soporte curvado de la lámpara.

Crearemos un cilindro en la vista "Top" y le daremos las dimensiones y parámetros siguientes:

Radius: 0,02 m (lo cual nos dará un tubo de 4 centímetros de grosor)
Height: 1,00 m (la altura la determinamos a ojo, pudiendo variarla más tarde)
Height Segments: 12 (divisiones a lo largo del tubo que nos permitirán definir la curvatura del mismo)
Cap Segments: 1
Sides: 8 (la base del tubo será un octógono. A más lados mayor complejidad de la pieza y mayor coste en el simulador)

El tubo resultante lo centraremos (X: 0,0 m), lo moveremos a 7 centímetros de la fachada frontal (Y: 3,07 m) y lo elevaremos por encima de la puerta (Z: 3,8 m).

3ds-cs063.jpg

Una vez construido el tubo me planteé ¿y cómo lo doblo? Lo he dicho a lo largo de los capítulos, soy novato en esto. Me dije que se debía poder doblar un objeto, porque el icono de la solapa "Modify" muestra precisamente un tubo doblado. Por tanto me dirigí al Google Translator y traduje "Doblar" del castellano al inglés, obteniendo la respuesta "Bend", con lo que me dirigí al 3ds Max y desplegué la lista de modificadores "Modifier List" y allá encontré un modificador de nombre "Bend". Haced lo mismo, y seleccionarlo.

En la caja de parámetros que aparece vemos que el primero es "Angle". Como queremos un arco completo le daremos el valor 180 grados, y podremos observar que el tubo se dobla en una curva perfecta y constante, con el único problema de que la dirección hacia donde se ha doblado no es la que deseamos. El segundo parámetro denominado "Direction" nos induce a pensar que nos puede ayudar, por lo que le daremos un valor de 90 grados, que es el giro que deseamos. El doblez del tubo ha girado esos 90 grados efectivamente, pero nuevamente en la dirección contraria a la deseada, pues ahora apunta el tubo hacia el interior de la casilla. Para cambiar el sentido del giro bastará ajustar el valor de "Direction" a -90, cambiando el signo para modificar dicho sentido de giro, y por fin tenemos nuestro tubo doblado como pretendíamos. No ha sido tan difícil, y eso que no teníamos ni idea de como hacerlo :D Este programa contempla tantas acciones diferentes que a buen seguro cualquier cosa que se nos ocurra debe estar prevista. Ahora que nos cuesta que se dispare la "acojonalina": ¡Experimentad!

3ds-cs064.jpg

El tubo creado tiene bastante detalle, pero un exceso de polígonos. Podemos escoger del stack de modificadores el cilindro inicial "Cylinder" y modificar los parámetros que lo definen. Por ejemplo, variando la longitud observaremos que el arco se adapta con lo que obtenemos una mayor o menor separación de los extremos del tubo. La longitud inicial de 1 metro ya nos va bien. Por contra, podemos rebajar el parámetro "Height Segments" hasta un valor en que sigamos viendo suficientemente bien el tubo; el valor de 9 me ha parecido correcto. También podemos disminuir el valor de "Sides" con el fin de reducir aún más los polígonos de esta pieza; el valor de 6 (una base hexagonal) puede ser suficiente. En concreto, con estos nuevos valores, hemos pasado de 208 polígonos iniciales a 120 en la actualidad, aunque podéis dejar los valores que creáis convenientes, a fin de cuentas será vuestra creación.

Ahora, por último, debemos "alargar" el tubo por el lado inferior, para lo cual le aplicaremos el modificador "Edit Poly", pasaremos a modo "Polygon", y en la vista en perspectiva giraremos la escena para ver el tubo desde abajo y poder seleccionar el polígono de la base:

3ds-cs065.jpg

Con dicha base seleccionada, aplicaremos al polígono un "Extrude" de un metro:

3ds-cs066.jpg

Ya tenemos el soporte de la lámpara realizado. Bastará con ir al stack de modificadores y, desplegando el menú contextual sobre el modificador "Edit Poly", aplicar un "Collapse All" para confirmar las modificaciones a la pieza.

No obstante la satisfacción de la pieza realizada, veremos en un próximo capítulo otra manera de realizar tubos o piezas dobladas mediante el trazado de "splines" de 3ds Max.
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

4.2. Creando tubos: Dando volumen a una línea

Notapor Pere » Sab Jul 03, 2010 12:22 pm

Veamos otro sistema para realizar el tubo de soporte de la lámpara, que puede ser muy útil para modelar pasamanos.

4.2. Creando tubos: Dando volumen a una línea

Como el título indica, en esta ocasión se trata de dibujar una línea (un "spline" para el 3ds Max) que defina el "camino" de nuestro tubo, y luego darle grosor 3D.

Esto nos permite hablar del tema de los "splines". Ya los vimos en el capítulo 4.3 del tutorial básico, cuando realizamos la casilla a partir de una forma 2D, donde trazamos líneas. Entonces no nos preocupamos de lo que hacíamos ni si eran "splines" o qué, pero ahora le daremos alguna "vuelta".

En una escena vacía iremos a la solapa Create del Control Panel, y seleccionaremos el segundo botón "Shapes". Vemos que en el selector aparece Splines directamente, además de una serie de botones. Pulsaremos el botón "Line" y procederemos a crear líneas en un Viewport. En su momento lo hicimos introduciendo mediante el teclado las coordenadas numéricas de los puntos que definían nuestra línea, pero esta vez procederemos "a mano". Con el ratón pincharemos en algún lugar del Viewport, para a continuación pinchar en otro lugar del mismo, y así unas cuantas veces:

3ds-cs067.jpg

Hemos obtenido una línea quebrada, o spline. Claro está que esta línea no nos dice nada, pero este sistema nos puede servir para reseguir una forma que tengamos dibujada en un plano que hayamos visualizado en el Viewport.

La línea obtenida está compuesta exclusivamente de trazos rectos, pero si deseamos que esté formada por un conjunto de curvas bastará con que, tras crear un punto, al crear el siguiente pinchemos y sin soltar el ratón lo arrastremos para definir la curvatura de la línea que debe unir ambos puntos. Podemos practicar una vez borrada la spline anterior (ahora que lo pienso, no se si la palabra spline es masculina o femenina: ¿el spline o la spline?... pegas de adoptar anglicismos).

3ds-cs068.jpg

Podemos seguir practicando con el resto de tipos de spline: círculos, arcos, etc.

Para definir el tubo de nuestra lámpara necesitamos una línea recta de 1 metro de longitud de cuyo extremo parta un arco de 180 grados y unos 65 centímetros de diámetro. Para ello volveremos a usar el teclado para definir los puntos de estas líneas.

Recuperaremos la escena de la casilla sin el tubo (si lo tuviéramos deberemos borrarlo). Iremos a la solapa Create del Control Panel, y seleccionaremos el segundo icono "Shapes". Pulsaremos el botón "Lines" y procederemos a desplegar el grupo "Keyboard Entry". Las coordenadas que aquí nos aparecen no son las absolutas del mundo de la escena, si no las relativas al viewport donde vayamos a trabajar. Por tanto seleccionaremos el Viewport "Right" y después introduciremos los valores del primer punto que definirá el tramo recto:
X = 3,07 m (3 metros del límite de la fachada anterior de la casilla, más siete centímetros de separación del tubo)
Y = 2,8 m (punto inferior del tubo)
Z = 0 m
Y pulsaremos el botón "Add Point"

Pasaremos a definir el segundo punto del tramo recto:
X = 3,07 m (misma distancia desde la fachada que antes)
Y = 3,8 m (1 metro por encima del punto anterior)
Z = 0 m
Y pulsaremos el botón "Add Point", y a continuación el botón "Finish" para dar por terminado este segmento.

3ds-cs069.jpg

Ahora pasaremos a definir el arco, para ello seleccionamos el botón "Arc", y también desplegamos el grupo "Keyboard Entry". El arco se define por las coordenadas del centro del círculo que conforma el arco, su radio y los ángulos inicial y final del arco. Como le daremos un radio de 0,315 m (la mitad del diámetro elegido, que será 0,63 m), deberemos desplazar esta cantidad a la coordenada final del segmento recto:
X = 3,385 m (3,07 + 0,315, final de la línea recta más el radio del arco)
Y = 3,8 m
Z = 0 m
Radius = 0,315 m
From = 0
To = 180

3ds-cs070.jpg

Tenemos creado lo que será el eje de nuestro tubo, pero no está formado por una sola línea o spline (aunque lo parece), si no por dos: la línea recta y el arco. Por tanto, lo primero que deberemos hacer es unir ambos en una única línea.

Para ello bastará, desde la pestaña "Modify" del Comand Panel, seleccionar el segmento recto y, con el comando "Attach", unirle el arco.

3ds-cs071.jpg

Ahora, aún y haber unido ambos en una sola línea, debemos tener presente que ésta está formada por dos segmentos, y que, aunque lo parezca, no están unidos entre sí. Procedamos a unirlos:

Teniendo el spline seleccionado, pasaremos a modo de edición de sus puntos ("Vertex"), para a continuación seleccionar ambos puntos finales del segmento recto y del arco mediante un área de selección (ratón pinchar y arrastrar en el viewport) que únicamente incluya dichos puntos. Con ellos seleccionados buscaremos en el grupo "Geometry" el botón "Weld" y los "güeldearemos" (también podemos decir que los soldaremos, pues Weld significa soldadura).

3ds-cs072.jpg

Ahora que tenemos el spline preparado, un único segmento continuo con la forma deseada, podemos proceder a darle volumen. Y esto es muy sencillo: un sólo paso :D

Desplegaremos el grupo "Rendering" en el Control Panel, y allí procederemos a:
  • Activaremos "Enable In Renderer"
  • Activaremos "Enable In Viewport"
  • Activaremos "Generate Mapping Coords."
  • Verificamos que está seleccionado "Radial", que determina que la sección de nuestro spline será circular (y no rectangular).
  • Damos valor a "Thickness" = 0,04 m (es decir, 4 centímetros de diámetro).
  • y damos valor a "Sides" = 6 (es decir, una sección hexagonal).
Con esto ya tenemos configurado nuestro soporte tubular.

3ds-cs073.jpg

Un último paso adicional, para controlar la cantidad de polígonos que se generarán. Desplegaremos también el grupo "Interpolation", y reduciremos el valor de "Steps" hasta 2. Podemos probar con diferentes valores y observaremos que este valor determina en los segmentos curvos de nuestra spline en cuantos tramos debe representar dicha curva. Un valor de 2 reduce significativamente el total de polígonos sin perder la forma deseada. De hecho, este valor de 2 genera exactamente el mismo número de polígonos que con el método anterior del tubo doblado con Blend ;)

El objeto creado de esta forma en realidad todavía es un spline, que simplemente el 3ds lo visualiza en forma 3D gracias a los parámetros que hemos introducido. Para que RailWorks lo reconozca con su volumen debemos convertirlo a "Editable Mesh" o a "Editable Poly", para ello podemos añadir en el stack de modificadores un "Edit Poly" y a continuación realizar un "Collapse All" (que consolidará el cambio) o bien desde el menú contextual elegir "Convert to" -> "Convert to Editable Poly".

Podemos guardar nuestro trabajo.
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

4.3. Terminando la lámpara

Notapor Pere » Mar Jul 13, 2010 11:06 pm

4.3. Terminando la lámpara

Vamos a ir terminando la lámpara dotándola de una pantalla. Para ello crearemos en la vista "Top" un cono, en principio de cualesquiera dimensión, que como siempre luego ajustaremos a:
  • Radius 1 = 0,25 m
  • Radius 2 = 0,0 m
  • Height = 0,08 m
  • Height Segments = 1
  • Cap Segments = 1
  • Sides = 12
Y luego desplazaremos la pantalla creada para que se ajuste al final del soporte de la misma, moviéndola a X = 0,0 m, Y = 3,7 m y Z = 3,75 m.

3ds-cs080.jpg

Estas operaciones ya nos parecen sencillas por repetitivas. Ahora dotaremos a la lámpara de su bombilla ;) En este caso lo haremos creando una esfera en la vista "Top" que ajustaremos a:
  • Radius 1 = 0,04 m
  • Segments = 10
Y luego desplazaremos la esfera creada para que se ajuste bajo la pantalla, moviéndola a X = 0,0 m, Y = 3,7 m y Z = 3,74 m.

3ds-cs081.jpg

Como podemos observar, una parte de la bombilla queda oculta en el interior de la pantalla, por lo que procederemos a borrarla, ya que siempre tendremos en la mente el no mantener polígonos superfluos, aunque puedan parecer insignificantes. Añadiremos un modificador "Edit Poly" a la esfera, y en, por ejemplo, modalidad de vértices ("Vertex"), procederemos a seleccionar los que deseamos eliminar:

3ds-cs082.jpg

Una vez realizada la selección pulsamos la tecla "Supr" para borrarlos, y ya podemos desactivar el modo "Vertex".

Un último detalle consistirá en la creación de los soportes de la lámpara que anclan ésta a la pared, para lo cual nos bastará con un par de cubos de 0,07 m de largo, 0,02 m de ancho y 0,04 m de alto a los que, una vez suprimidas las caras anterior y posterior, ubicaremos en su lugar desplazándolos a X = 0,0 m, Y = 3,035 m y Z = 3,5 m el primero de ellos, y a X = 0,0 m, Y = 3,035 m y Z = 3,0 m el segundo:

3ds-cs083.jpg

La lámpara resultante es sencilla, pero suficiente para nuestra casilla. Ahora nos queda proceder a texturarla.

Prepararemos en la hoja de textura, buscando algún rincón libre, una zona en blanco (para la cara inferior de la pantalla y la bombilla) y otra en algún color "metal descascarillado y oxidado sometido a la intemperie". Si no encontráis este color, podéis tomar como referencia el que yo he puesto en mi hoja de texturas, bajo las texturas de las ventanas:

ps-cs014.jpg

Empezaremos por asignar el material a estos elementos, para lo cual nos bastará con seleccionarlos todos (todos los de la lámpara únicamente, claro) y tras abrir la "Caja de las Bolas" (tecla "M" para los que no se acordaban) asignar el material "Casilla" a la selección (la primera "bola") por cualesquiera de los métodos ya explicados. Podemos cerrar el editor de materiales.

Vamos ahora a mapear. Como paso previo, y aprovechando que tenemos todos los elementos de la lámpara seleccionados, aplicaremos un modificador "Unwrap UVW" a la selección. Es el equivalente a aplicar el modificador a todos y cada uno de los elementos por separado, pero de golpe, así nos ahorramos pasos ;) .

El mapeo lo aplicaremos, como de costumbre, mediante el menú "Mapping" en el Editor UVW, pero para mapear la mayoría de estos elementos no nos servirá "Flatten Mapping", ya que la orientación de sus caras no suelen coincidir con los tres ejes genera mejores mapeos. En general nos convendrá más usar el "Normal Mapping".

La mecánica ya la conocéis: seleccionamos un elemento (o un conjunto de ellos), en el modificador "Unwarp UVW" activamos "Faces", seleccionamos todos los polígonos (Control + A) y le damos al botón Edit, para luego aplicar el "Mapping" que queramos. Podéis ir probando en cada elemento diferentes tipos de mapeos para ver como actúan. Por ejemplo, es interesante el desarrollo que se consigue en la semiesfera de la bombilla con "Unfold Mapping", que muestro a título de ejemplo:

3ds-cs084.jpg

Una vez vistos los diferentes resultados a los mapeos, me he decidido por mapear la pantalla con un "Top/Bottom Mapping", y el resto con un "Box Mapping". Por tanto procederemos de esta forma.

Seleccionamos el brazo tubular de la lámpara y los dos pequeños soportes del mismo a la pared, activamos "Faces" en el modificador "Unwrap UVW", seleccionamos todos los polígonos y activaremos el botón "Edit". En el Editor UVW, ejecutaremos "Mapping" -> "Normal Mapping". El método elegido para estos objetos será "Box Mapping" y aceptaremos la generación del mapeado.

Una vez realizado ubicaremos el mapeo sobre la zona de la textura adecuada (un trozo de color "metal descascarillado oxidado y no se qué más") y para ello activaremos la textura como fondo del editor UVW (el desplegable arriba a la derecha ;) ), pasaremos a "Freeform Mode" y reubicaremos el mapeo:

3ds-cs085.jpg

Procedemos ahora con la pantalla. Tras salir del editor UVW la seleccionamos, activamos "Faces" en el modificador "Unwrap UVW", seleccionamos todos los polígonos y activaremos el botón "Edit". En el Editor UVW, ejecutaremos "Mapping" -> "Normal Mapping". El método elegido para estos objetos será "Top/Bottom Mapping" y aceptaremos la generación del mapeado.

Una vez realizado ubicaremos el mapeo sobre la zona de la textura adecuada, en este caso la superficie superior de la pantalla compartirá la textura de metal, pero la cara inferior de la misma la mapearemos sobre la zona en blanco, y para ello activaremos nuevamente la textura como fondo del editor UVW, y en modo "Freeform Mode" reubicaremos ambas caras en las zonas respectivas:

3ds-cs086.jpg

Os preguntaréis como se puede saber cuales son los polígonos de la cara inferior y cuales los de la superior. El método "sientífico" es pulsar en un polígono de una de las dos partes y observar en los viewports del 3ds el polígono seleccionado (se marcará en rojo) para confirmar si es el que deseamos.

Por último actuaremos con la bombilla. Tras salir del editor UVW la seleccionamos, activamos "Faces" en el modificador "Unwrap UVW", seleccionamos todos los polígonos y activaremos el botón "Edit". En el Editor UVW, ejecutaremos "Mapping" -> "Normal Mapping". El método elegido para estos objetos será "Box Mapping" y aceptaremos la generación del mapeado.

Una vez realizado ubicaremos el mapeo sobre la zona de la textura adecuada en blanco, procurando no "pisar" el lugar donde pusimos la cara inferior de la pantalla. Como ésta última la situé en la mitad inferior del rectángulo blanco, ahora situaré la bombilla en la mitad superior:

3ds-cs087.jpg

De todas formas podemos comprobar que no hay solapes en los mapeos seleccionando ambos elementos, bombilla y pantalla, y entrando en el editor UVW con ambos activos. Visualizaremos todos sus polígonos simultáneamente y podremos verificar que los mapeos son totalmente correctos.

Una vez tenemos mapeados todos estos elementos, procederemos a confirmar las operaciones efectuadas en ellos. Los seleccionamos todos y en el stack de modificadores aplicamos un "Collapse All" a todos ellos. Luego seleccionamos el brazo de la lámpara (podría ser cualquiera de ellos) y buscamos el botón "Attach" para unir a este elemento el resto de los que componen la lámpara. Pulsaremos en esta ocasión el pequeño icono que hay a la derecha del botón, lo cual nos desplegará una lista con todos los elementos que tenemos visualizados en la escena:

3ds-cs088.jpg

De esta lista seleccionaremos el resto de elementos de la lámpara y pulsamos el botón "Attach". Al nuevo elemento creado le cambiaremos el nombre y le llamaremos 1_0128_Lampara, porque creo que más allá de esta distancia no va a ser apreciable la misma.

3ds-cs089.jpg

Con esto, la casilla ha evolucionado mucho desde aquel primer objeto que hicimos. Podemos seguir detallando tanto como queramos, pero en este caso hemos llegado al final de este proceso de detallado.

Un último paso será hacerle una sombra a la lámpara, para lo cual, y de forma muy simple, duplicaremos la lámpara. Al nuevo objeto le denominaremos 1_0128_Sombra_Lampara. Aunque la sombra general de la casilla desaparece a los 256 metros, si la lámpara será sólo visible hasta los 128 no sería razonable que la sombra sí lo fuera más allá de esa distancia.

De este nuevo objeto para la sombra eliminaremos los polígonos de la bombilla y de los dos soportes a la pared, puesto que estos polígonos no determinan volúmenes cerrados, y además su aportación a la sombra es intrascendente.

3ds-cs090.jpg

Con la sombra de la lámpara seleccionada abriremos la "caja de las Bolas" para asignarle el material "Shadow_Sombra" (la segunda "bola"). Por último no nos deberemos olvidar de seleccionar todos los polígonos de la sombra y aplicarles en la sección "Smoothing Groups"un "AutoSmooth" con un ángulo de corte de 10º, para evitar los consabidos artefactos.

Una vez realizado todo ello ya podemos exportar la casilla (recordad hacer un "Unhide All" antes) y verla en el simulador.

rw-cs014.jpg


Ahora tan sólo nos queda aplicar alguna técnica que mejore el resultado visible de nuestro trabajo, como puede ser la preiluminación del objeto.
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

5. Sombras precalculadas

Notapor Pere » Vie Jul 23, 2010 8:32 pm

"Este capítulo quisiera especialmente dedicarlo a Divi4p, que desde las jornadas de Zaragoza, en 2008 (hace más de dos años ya), me ha estado dando la lata constantemente sobre las ventajas del uso del Render to Texture y la pre-iluminación, y que sin embargo apenas le hice caso. ¡Cuanta razón tenía, y cuanto lamento no haberle prestado más atención con anterioridad!"

5. Sombras precalculadas

Podemos pre-iluminar nuestros objetos con una iluminación global "falseada". Esta pre-iluminación de los edificios permitirá que estén difuminadas las sombras bajo salientes y en torno a los detalles. Esta iluminación no debe tener una dirección predominante muy marcada, ya que recordemos que el objeto también recibirá la iluminación dinámica del juego. Esto proporcionará una apariencia más real y contribuirá a acentuar el detalle de los objetos sin incrementar sus polígonos.

Veamos con un ejemplo lo que pretenderemos conseguir con esta técnica, comparando el estado actual de la casilla con el que podría presentar gracias a una pre-iluminación:

rw-cs015.jpg

El efecto de penumbra difuminando las sombras lo podemos apreciar bajo el tejado, en las vigas, en la lámpara y en los huecos de ventanas y puerta.

Para conseguir este aspecto del modelo serán necesarios unas acciones:
  1. Generar una iluminación adecuada del modelo en 3ds Max. Para esto vendrá en nuestra ayuda un script: E-Light.
  2. Calcular las sombras que se deben proyectar en las texturas del modelo. En este caso usaremos el "Render to Texture" de 3ds.
  3. Aplicar las sombras precalculadas a las texturas del modelo.

5.1. Pre-iluminación - E-Light

Vayamos entrando en materia.

Como paso previo deberemos instalar en nuestro 3ds el script E-Light, creación freeware de Ronnie Olsthoorn y que podemos encontrar en su web www.skyraider3d.com. Haciendo click en “Download this Maxscript” obtendréis un archivo comprimido que más adelante veremos cómo se “instala”.

¿Qué es E-Light? E-light es un script de iluminación para 3dsmax que genera una “cúpula” de luces de manera que podemos obtener una luz “neutra” que ilumine nuestro modelo, resaltando las zonas sombreadas, cubiertas y recovecos:

3ds-cs091.jpg

La cúpula generada lo es en base a un conjunto de parámetros que pueden ser modificados para ver su efecto sobre un renderizado del modelo.

Una vez descargado el enlace de la web de Ronnie Olsthoorn, comprobaremos que se trata de un archivo ZIP y que en su interior hay tres archivos: un E-Light_ReadMe.txt, que nos indica su uso, y dos scripts para 3ds Max, uno específico para la versión 5 de Max, y otro genérico, que es el que he usado satisfactoriamente en mi versión 2009.

Copiaremos el script adecuado "E-Light.ms" al directorio "Scripts" que encontraremos, por ejemplo, en la ruta: "C:\Program Files\Autodesk\3ds Max 2009\Scripts" de nuestra instalación de Max.

Desde el editor podemos ejecutarlo desde el menú "MAXScript -> Run Script...", que nos abre una ventana para que lo seleccionemos. Al ejecutarlo nos abrirá una ventana como la mostrada:

3ds-cs092.jpg

Si hemos llegado hasta aquí todo está bien.

Un script es un conjunto de acciones que se ejecutan en nuestro 3ds para automatizar funciones repetitivas. En este caso, este útil script nos generará ese conjunto de luces en disposición de semiesfera y permite manipular sus parámetros de forma global, sin tener que ir ajustándolas una a una. Los parámetros que muestra la ventana son los de configuración de los focos: intensidad de la luz, color, número de focos, etc...

Procedamos ahora a pre-iluminar nuestro modelo.

Personalmente prefiero trabajar estos temas en una copia de la escena con el modelo, por lo que pueda pasar. Igualmente, al trabajar la iluminación es muy conveniente que las texturas del modelo las reemplacemos por otras de color blanco puro. Por tanto empezaremos por crear una textura alternativa de blanco uniforme, que podemos llamar "blanco.ace".

Ahora abrimos el 3ds y cargamos la casilla, para proceder a guardar la escena con otro nombre (con el fin de duplicarla) por ejemplo "ES_Casilla_01_Preilum.max". En esta nueva escena seleccionaremos los objetos:
  • 2_1250_Casilla
  • 1_0256_Sombra
  • 1_0128_Sombra_Lampara
Para eliminarlos mediante la tecla "suprimir". Es decir, nos quedaremos con los elementos constructivos en el LOD de mayor detalle, y eliminaremos los objetos sombra en su totalidad, con lo cual nos quedaremos con aquellos que participarán de la pre-iluminación del modelo.

Una última operación en esta versión de la casilla consistirá en abrir la "caja de las bolas" y sustituir en el material de la Casilla la textura original por la que hemos creado "blanco.ace".

3ds-cs093.jpg

La casilla se verá totalmente de este color. Recuerdo que debe ser blanco puro.

Con estos cambios en la escena de trabajo podemos proceder a efectuar un Render de la casilla:

3ds-cs094.jpg

Para ello seleccionaremos el Viewport en Perspectiva, donde pondremos la casilla en la posición que deseemos para apreciar las sombras que se producirán. La mostrada es una buena posición. A continuación buscaremos en la barra principal el botón "Render" (o el menú "Rendering -> Render", o bien las teclas "Mayúsculas" + "Q") para abrir la ventana de render y pulsaremos el botón "Render" de ésta última.

Esta visión de la casilla es para tener una referencia en el proceso que seguirá, y que es uno de los más divertidos que he encontrado en el modelado :D .

Con todo preparado no queda más que ejecutar el script de E-Light. De momento no nos preocuparemos de todos estos parámetros que aparecen e iremos directamente a buscar el botón "Create Environment Light", para a continuación, y sin cerrar la ventana de E-Light, ejecutar un Render del Viewport en Perspectiva:

3ds-cs095.jpg

La vista de la casilla no ha mejorada demasiado, Más bien ha empeorado :twisted: Pero no nos preocupemos, ahora empieza el toqueteo de parámetros y ver el resultado en el Render, volver a ajustar parámetros y vuelta al Render... Pero como norma: "no modificar más de un parámetro antes de ver como afecta al resultado".

Empezaremos por ajustar el Radius, que está por defecto puesto en 1000 metros. Un radio aceptable viene a ser un valor entre tres a cuatro veces la mayor de las dimensiones del objeto a iluminar. En nuestro caso la casilla tiene 6 metros de longitud, por tanto estaríamos en un valor entre 18 y 24 metros. Vamos a fijar 20 metros. Al "tirar" el render vemos que el aspecto de las sombras ha mejorado notablemente, aunque la escena está un tanto oscura.

El siguiente parámetro es Segments. Éste determina la densidad de focos que poseerá la cúpula de luz. A mayor densidad de focos más difuminada resultará la sombra y mejor resultado obtendremos. Quienes poseen experiencia en este modelo de luces aconseja un valor de 5 segmentos.

Respecto a los parámetros de la luz, el Color siempre será el blanco puro. Multiplier determina la cantidad de luz emitida por los focos. Como la escena está muy oscura subiremos este valor hasta 3. Valores superiores de luz nos pueden "quemar" el resultado y hacer desaparecer las sombras.

Por lo que hace referencia a las sombras, el Color será en este caso siempre negro puro. Density viene a determinar la intensidad de las sombras. Para los efectos que buscaremos en el caso de la casilla, un valor de 5 en la densidad de las sombras acentuará éstas en un grado suficiente.

El Map Size no debe hacernos pensar en el tamaño de la textura que hemos usado en su momento para la casilla. Este valor determina el grado de ajuste o dispersión de la sombra. El propio Kuju recomienda trabajar con un valor de 500 para el Map Size. En mi caso he "redondeado" a 512, por aquello de que es un número más "informático", pero puede ser cualquier valor, no debiendo seguir ningún criterio de potencia de dos en absoluto. Una advertencia: no abuséis de este valor, principalmente si vuestro equipo anda "justo" de memoria, pues valores altos de Map Size consumen directamente la memoria del ordenador y puede producir el "cuelgue" de la aplicación al intentar generar un render con esta iluminación.

El "Bias" determina la difuminación global de las sombras. Si éstas están muy marcadas, como debe ser el caso en el momento actual, podemos elevar este parámetro para suavizarlas. En este caso un valor de 0,8 da un aspecto más real. Valores superiores hacen que las sombras tiendan a desaparecer.

Por último el parámetro Sample Range determina, en valores bajos, que la sombra se ciña a los contornos a sombrear y, en valores altos, que la sombra de expanda alrededor de los contornos a sombrear. El valor por defecto de 4 es suficiente en este caso.

Con todo ello el render nos ha quedado así:

3ds-cs096.jpg

Si lo comparamos con los primeros render que hicimos podemos apreciar el efecto de la iluminación, los detalles del modelado se acentúan, y el modelo gana en presencia.

Por supuesto que podéis obtener otros efectos que os gusten más. Puede que los valores de los parámetros se deban ajustar según el tipo de modelo del que estemos tratando. Tomaros un tiempo para practicar con E-Light y ver como afecta en el resultado del modelo.

Si no hubiésemos sustituido la textura original por una textura blanca, podríamos haber obtenido resultados como éste:

3ds-cs097.jpg

Donde podemos apreciar el realismo que aporta una pre-iluminación correcta de la escena. No obstante, este tipo de renders, con texturas, no es lo que necesitamos para aplicar las sombras pre-calculadas a nuestro modelo. Eso si, lo podemos usar para mostrar nuestros trabajos en el foro, pero el resultado será un poco ficticio, pues no es el mismo aspecto que podremos obtener en el simulador (aunque vamos a intentar acercarnos mucho :D ).

Con la escena correctamente pre-iluminada, procederemos a guardar el resultado en el archivo de trabajo de la escena, antes de continuar con el siguiente paso: la creación de la textura con las sombras precalculadas.
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

5.2. Creando las sombras precalculadas - Render to Texture

Notapor Pere » Sab Jul 24, 2010 2:30 pm

5.2. Creando las sombras precalculadas - Render to Texture

Abrimos la escena de trabajo para la pre-iluminación, la que guardamos en su momento con el nombre "ES_Casilla_01_Preilum.max".

Una vez tenemos correctamente iluminado el modelo, necesitamos pasar esas sombras que se proyectan sobre las paredes de la casilla a la hoja de texturas de la misma, y para ello nos valdremos de la función Render to Texture del 3ds Max.

Esta función calcula, para un elemento seleccionado de nuestra escena, las sombras que deberán aplicarse a los mapeos de dicho elemento. Esto quiere decir que podemos calcular las sombras uno a uno a todos los elementos de la casilla, pero como todos los elementos que nos interesan comparten un mismo material, es decir una misma hoja de texturas, agruparemos estos en un único elemento para ahorrarnos trabajo. Si nuestro modelo estuviera texturado en base a dos materiales agruparíamos los elementos siguiendo este criterio: por materiales. Alguien podrá pensar que la casilla realmente tiene dos materiales, la propia casilla y la textura negra de los objetos sombra, pero estos últimos no juegan en este caso, como es de esperar.

Por tanto seleccionaremos la casilla, 1_0128_Casilla, y a éste le agruparemos ("Attach") el resto de elementos: Tejado, Chimenea, Vigas y Lámpara. Como la cúpula de luces nos impide trabajar con comodidad, podemos hacerlo mediante "Select by Name" y "Attach List" (el icono pequeño al lado del botón Attach):

3ds-cs098.jpg

De haber sido previsores podíamos tener preparada esta operación antes de generar la cúpula de luces... No importa, también tenemos instrumentos para llevarla a cabo ahora ;)

Recordemos que esta agrupación la estamos realizando sobre la versión de la casilla para el cálculo de la pre-iluminación, y no sobre la escena original de la casilla.

Una vez preparada la casilla, invocaremos el "Render to Texture" mediante el menú "Rendering -> Render to Texture", o bien la tecla "0" (cero):

3ds-cs099.jpg

En la ventana de diálogo que nos aparece haremos unas pocas operaciones:

Si teníamos el objeto de la casilla seleccionado, éste ya nos aparecerá en la lista de la sección "Objects to Bake". En caso contrario deberemos seleccionarlo e inmediatamente aparecerá en la mencionada lista. En esta misma sección, nos aseguraremos de que el valor de "Padding" sea 3.

En "Mapping Coordinates" verificaremos que está seleccionada la opción "Use Existing Channel" y que el "Channel" sea el 1, que es el canal por defecto en que hemos mapeado nuestra casilla en el material.

Más abajo, en la sección "Output" tenemos una nueva lista que estará vacía. Pulsaremos el botón "Add" para determinar las salidas que deseamos que nos genere la herramienta:

3ds-cs100.jpg

De la lista que se nos presenta elegiremos "CompleteMap" y pulsaremos "Add Elements". Esta acción nos inserta en la lista "Output" un elemento para que se genere el mapa de sombras completo del elemento Casilla, que si recordamos representa todos los elementos que comparten el material "casilla":

3ds-cs101.jpg

El elemento insertado ha tomado por defecto un tamaño de textura de 256x256 píxeles. Lo cambiaremos por el tamaño de nuestra hoja de texturas a 1024x1024.

Aunque esta herramienta permite una gran variedad de opciones, a nosotros no nos queda más que pulsar el botón "Render" y esperar a ver el resultado:

3ds-cs102.jpg

Tras aceptar un mensaje de aviso, se nos mostrará en una ventana el resultado de la operación, donde podemos apreciar los diferentes mapeos de los elementos de nuestro modelo, pero con aplicación de las sombras y luces que les afectan. ¡Fantástico! Pulsaremos el icono del disquette para guardar el resultado en el directorio de las texturas de nuestra casilla, y, dado que 3ds no nos genera el formato .ace, elegiremos el formato .bmp (por ejemplo) y llamaremos a esta hoja de texturas ES_Casilla_preilum.bmp.

5.3. Aplicación de las sombras precalculadas al modelo

Desde el editor de imágenes que tengamos cargaremos la hoja de texturas que acabamos de crear.

Como paso previo, variaremos el brillo de la misma con el fin de convertir el tono gris de las fachadas laterales de la casilla en blanco, manteniendo las sombras:

ps-cs015.jpg

De no realizar esta acción simplemente la luminosidad de las fachadas de la casilla disminuiría (por ese tono gris), pues todo lo que no sea blanco en la textura de sombras se oscurecerá en proporción en el simulador.

Ahora podemos optar por dos sistemas para trasladar esta pre-iluminación al modelo.
  1. Cuando usamos un shader genérico, o como en el presente caso "TrainBasicObjectDiffuse.fx", donde no está previsto que se incluya un mapa de preiluminación, actuaremos fusionando la textura original del modelo con el mapa de luces y sombras que hemos obtenido, de esta forma añadiremos dichas sombras a las texturas del modelo.
  2. En el caso concreto de edificios, Kuju ha previsto un shader específico, denominado "TrainLightMapWithDiffuse.fx", que permite tener separados en un slot el mapa de la textura del modelo y en otro el mapa de luces y sombras, no siendo necesario en este caso su fusión. La ventaja de este shader radica en que el mapa de preiluminación no tiene porqué estar mapeado sobre el mismo patrón que la textura principal (es decir, puede usar un canal de mapeo diferente), aunque este no va a ser el caso presente y el detalle de esta manera de proceder la dejaremos para otro capítulo más específico.
Por tanto veamos como actuar en ambos casos:

5.3.1. Aplicación de las sombras precalculadas con el shader "TrainBasicObjectDiffuse.fx"

La forma tradicional, y también simple, consiste en añadir a la hoja de texturas original una capa con las sombras para a continuación fusionar ambas capas mediante el método "Multiply":

ps-cs016.jpg

Guardaremos la hoja original de texturas con otro nombre, pues la necesitaremos en futuras ocasiones, y esta nueva hoja de texturas, con las sombras aplicadas, la convertiremos en formato .ace sustituyendo a la textura del modelo ES_Casilla.ace. Y con esto podremos ver nuestra casilla, sin necesidad de preilumiar la escena, con las sombras precalculadas aplicadas, por lo que en el simulador también tendrá esta apariencia.

5.3.2. Aplicación de las sombras precalculadas con el shader "TrainLightMapWithDiffuse.fx"

Alternativamente, RW nos aporta como ayuda un shader específico para aplicar sombras precalculadas al modelo: TrainLightMapWithDiffuse.fx. Específicamente pensado para edificios y estaciones (todos los edificios del juego están creados con él), este shader tiene dos slots para texturas: en el slot 1 podemos asignar una textura Diffuse para el modelo (como la que ya teníamos en principio en nuestro material), y en el slot 2 este shader espera una textura de sombras precalculadas como la que acabamos de generar.

Podemos, por tanto, ir al 3ds Max y abrir nuestro proyecto de casilla (el original, no el temporal que hemos usado para la generación del mapa de sombras precalculadas) y actualizar el material "casilla" modificando el shader y asignando al slot 1 la textura "ES_Casilla.ace" y al slot 2 la textura "ES_Casilla_preilum.ace"; en este slot 2 deberemos verificar que el canal de mapeos sea el 1, igual a la textura base (vigilad porque 3ds por defecto asignará el canal 2 al slot 2). En este caso no veremos aplicadas las sombras en los Viewports de 3ds, pero al exportar el modelo para RailWorks el shader nos hará el trabajo en el simulador.


En cualquiera de ambos casos la casilla deberá lucir de esta forma:

rw-cs016.jpg
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

6. Los cimientos de la casilla

Notapor Pere » Sab Jul 24, 2010 4:17 pm

6. Los cimientos de la casilla

Hay ocasiones, y no pocas, en que nuestros edificios deberán colocarse en terrenos no perfectamente llanos. En estas circunstancias ocurrirá indefectiblemente que alguna zona del edificio dejará de tener contacto con el suelo, y éste flotará sobre el terreno (eso si, sin ningún problema ;) ):

rw-cs018.jpg

Si intentamos corregir este defecto "hundiendo" el edificio hasta que el fenómeno de levitación no sea apreciable, nos encontraremos con otro desagradable problema: puede que la puerta del mismo quede enterrada en el suelo y que el acceso al interior de la construcción sea por tanto no creíble.

rw-cs019.jpg

Aún no siendo un terrible drama, podemos evitar estos molestos efectos simplemente dotando a nuestro edificio de unos cimientos adecuados.

Nos bastará una simple operación de rápida ejecución:

Crearemos un cubo de iguales dimensiones a la base de la casilla, y de 1,5 metros de altura, que situaremos justo bajo la estructura del edificio; este cubo representará la estructura de los cimientos para aquellas situaciones en que quede al descubierto. La altura no debe ser estrictamente de un metro y medio (aunque creo que en el presente caso es suficiente) si no que deberá prever la distancia máxima en altura del desnivel en el que nuestro edificio pueda descansar.

Para realizar estos cimientos podríamos crear el cubo como ya tenemos presente, y darle las dimensiones exactas de la base de la casilla, ubicándolo en el mismo centro que esta y desplazándolo exactamente para que enrase con ella. No es complicado en este edificio que es sencillo. Pero en esta ocasión vamos a aprovechar la oportunidad para practicar con la herramienta de "Snaps" del 3ds Max.

3ds-cs106.jpg

El botón para acceder a la herramienta lo tenemos en la barra principal. Esta herramienta se suma al "Select and Move" de forma que al mover un elemento, una arista, un vértice, etc, arrastrando con el ratón, este movimiento no se produce de forma totalmente libre si no que por contra el punto de destino es determinado, como si de un imán se tratase, por el resto de elementos, aristas, vértices, etc, de la escena. Es decir, a título de ejemplo, producirá un ajuste perfecto de un elemento seleccionado sobre una cara, una arista o un vértice de otro elemento.

Para ajustar la forma como actúa "Snaps" (este "imán") bastará con que pulsemos con el botón derecho del ratón sobre el botón "Snaps Toggle" de la barra principal, y se abrirá una ventana de configuración de la herramienta. En ella yo he marcado la opción "Vertex", dado que vamos a producir un ajuste de vértices. También he dejado marcado "Endpoint" y "Midpoint" que marca también como referencia los puntos extremos y medios de una arista, una cara, etc.

Cargamos la casilla y dejamos tan sólo visible el cuerpo "lejano" de la casilla, 2_1250_Casilla, para que no nos molesten otras referencias de la escena.

Iremos a crear un cubo de cualquier dimensión en el viewport Top. Al pasar el ratón sobre la casilla veremos como en azul se marcarán los vértices o las aristas de ésta, con indicación, en el caso de las aristas, del punto extremo o medio de estas.

3ds-cs107.jpg

Por tanto seleccionaremos uno de los vértices de la casilla, como punto inicial de nuestro cubo, y arrastraremos hasta el vértice opuesto para definir la base del mismo.

Una vez definida la base pasaremos a buscar el vértice superior de la casilla para definir la altura.

3ds-cs108.jpg

Podemos probar con diferentes puntos de la casilla. Al final obtendremos cubos ajustados a alguna de las dimensiones definidas por los puntos existentes en ésta.

Una vez creado el cubo vemos que la altura del mismo es de 1 metros (que es la distancia entre los vértices superiores de la casilla y el vértice extremo del tejado). Podemos modificar ésta si queremos a 1,5 metros, y aprovechar para dar nombre al cubo: 1_0256_Base.

Ahora vamos a realizar una última operación con "Snaps": mover la base a su sitio. Con el cubo seleccionado pulsamos "Select and Move" y buscamos, en el viewport lateral, un punto de referencia en la cara superior del cubo.

3ds-cs109.jpg

Pinchamos y arrastramos hasta una referencia en la base de la casilla.

3ds-cs110.jpg

Y allá tenemos el cubo de la base, del tamaño preciso y perfectamente ajustado a la casilla. y sin haber definido sus dimensiones ni posición. En este caso no hubiese sido estrictamente necesario, pero en otras circunstancias tendremos que realizar estas operaciones sobre elementos de los que podemos desconocer con exactitud sus dimensiones o situación de las coordenadas de sus puntos, y la herramienta "Snaps" nos será de gran ayuda. Podemos volver a pulsar el botón "Sanps Toggle" para desactivar la herramienta.

Al cubo resultante podemos eliminarle las caras superior e inferior (pues no se verán).

Por otro lado, necesitaremos una textura que le vaya bien a nuestra base. Lo habitual será alguna de ladrillos, de piedras o de hormigón, entre otras. En este caso, he encontrado por mi ordenador esta que os muestro, y que me ha parecido adecuada pues las paredes de la casilla muestran ladrillos bajo los desconchados:

ps-cs017.jpg
ps-cs017.jpg (46.32 KiB) Visto 23363 veces

La textura la generaremos como archivo .ace en el directorio de texturas de nuestra casilla con el nombre de ES_Base.ace (por ejemplo). Luego podemos ir al 3ds para abrir el editor de materiales (a estas alturas deberemos de dejar de llamarle la "caja de las bolas", que ya parecemos serios y todo) y crear un nuevo material (la tercera bola está libre ;) ) de tipo Kuju, con el shader TrainBasicObjectDiffuse.fx y la textura que acabamos de crear:

3ds-cs105.jpg

Y lo asignamos a la base de la casilla. Como por defecto se mapearán los polígonos en toda la superficie de la textura, y esto ya nos va bien en este caso, no será necesario hacer nada más que exportar la casilla como archivo IGS, y en el Blueprint Editor volver a generarla. De vuelta al simulador podemos ver ahora como la casilla queda mejor integrada en el terreno, aún siendo éste abrupto:

rw-cs020.jpg
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

7. Texturas de nieve

Notapor Pere » Sab Jul 24, 2010 4:40 pm

7. Texturas de nieve

Nuestra casilla se integra perfectamente en el simulador, pero ¿qué ocurre cuando cambia el tiempo y empieza a nevar?

rw-cs021.jpg

Nos lo temíamos, la nieve no surte efecto sobre nuestro edificio, y por tanto desentona terriblemente en estas situaciones.

En la Trensimpedia encontraremos información al respecto en las Consideraciones para la creación en RW y sobre las Texturas Estacionales.

Para rectificar este comportamiento debemos crear unas hojas de texturas alternativas donde debemos representar aquellas superficies superiores de la casilla cubiertas de nieve, básicamente, tejados, balcones, parte superior de cornisas, etc. En nuestro caso, las caras superiores del tejado, de la pantalla de la lámpara, y de los alféizares de las ventanas y la puerta.

Cargaremos la textura de la casilla en el editor de imágenes, la original sin las sombras precalculadas, caso de que no hubiéramos usado el shader TrainLightMapWithDiffuse.fx. Como tratamiento general, rebajaremos la saturación de toda la textura un 10%, a la par que incrementaremos la luminosidad en otro 10%.

ps-cs018.jpg

Con esto hemos rebajado el color e incrementado la luz, lo cual le dará una tonalidad ligeramente más uniforme y blanca a la textura.

A continuación definiremos las zonas que corresponden a los mapeos señalados anteriormente: caras superiores del tejado, de la pantalla de la lámpara, y de los alféizares de las ventanas y la puerta. Sobre esta selección modificaremos la saturación para eliminar totalmente el color:

ps-cs019.jpg

Y sobre la misma selección, modificaremos el brillo y el contraste, aumentando al máximo ambos con el fin de provocar un fuerte contraste entre el blanco y el negro:

ps-cs020.jpg

Una vez tratadas las superficies superiores de la casilla, aplicaremos con el aerógrafo una ligera capa de blanco sobre el borde inferior de las fachadas de la casilla, en la zona donde tendrá contacto con el suelo nevado:

ps-cs021.jpg

El tratamiento explicado para generar una hoja de texturas nevada a partir de la hoja de texturas base no es el mejor ni el peor, es únicamente el método que yo suelo usar. Cualquier otro sistema que permita obtener el mismo resultado (o mejor, a buen seguro) es igualmente válido, pero para quien nunca se ha planteado el cómo hacerlo, creo que éste es suficientemente simple y de resultados aceptables.

A la textura resultante, caso de no usar el shader TrainLightMapWithDiffuse.fx, le deberemos fusionar el mapa de sombras, como ya hiciéramos en su momento con la textura base.

Con la textura así tratada podemos proceder a guardarla con formato .ACE, y le daremos el mismo nombre que la textura base, pero con el sufijo "_wi", es decir: "ES_Casilla_wi.ace". El motivo de tal sufijo es para indicarle al simulador que esta textura deberá sustituir a la original cuando la época del año sea invernal (ver el tratamiento del simulador a los Grupos de Texturas).

Una vez guardada la textura, para que esta sea reconocida tan sólo es necesario repetir el proceso de exportar la casilla desde 3ds Max, sin necesidad de realizar ninguna acción en el editor 3D. El proceso de exportación la reconoce y deja el archivo IGS listo para que la use. Por tanto repetimos dicha exportación desde 3ds y ya podremos abrir el Asset Editor para visualizar la casilla en invierno.

rw-cs017.jpg

Si el aspecto global nos gusta podremos exportarla al juego, y abrir el simulador para ver como se integra ahora nuestro edificio en el clima invernal:

rw-cs022.jpg


Todo lo comentado para las texturas de nieve es válido para otras texturas estacionales, como primavera u otoño, y tanto es de aplicación a edificios como a cualquier clase de creación en el simulador. Por tanto, nada nos impide realizar un vagón que en invierno se vea ligeramente cubierto de nieve, si es el caso ;)
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

8. Efectos de humo

Notapor Pere » Sab Jul 24, 2010 5:02 pm

8. Efectos de humo

Ya que nuestra casilla está dotada de una estufa, cuya chimenea sobresale en el tejado, vamos a dotar de humo el extremo de esta chimenea.

El humo es un componente de RailWorks independiente de la casilla o de cualquier otro objeto, que se define con su propio blueprint, para luego añadirlo al objeto deseado. Adjunto un archivo .zip con algunos elementos que nos facilitarán la creación de un efecto de humo.

Particles.zip
(95.67 KiB) 392 veces

Iremos preparando el terreno creando, en el directorio "Source" y bajo nuestro Developer y Addon, un directorio "Particles":

rw-cs024.jpg
rw-cs024.jpg (43.8 KiB) Visto 23213 veces

Dentro del archivo .ZIP que acompaña el capítulo encontrareis una carpeta "Particles" con cuatro archivos y una subcarpeta. Copiad todo este contenido a vuestra carpeta "Particles", y veamos de que se trata.

En primer lugar, encontraremos el archivo "ParticleGizmo.IGS". Se trata de una malla que define un objeto con la siguiente forma:

rw-cs025.jpg
rw-cs025.jpg (24.45 KiB) Visto 23213 veces

Un cono invertido de 0,125 m de altura y 0,1 m de diámetro mayor. Está texturado con el archivo "Gizmo_noaplha.ace", que se halla en el subdirectorio Textures, y que le da esos colores amarillo y rojo. Esta especie de trompeta no es en realidad importante para el resultado final, puesto que no se visualizará en el simulador, es únicamente la manera para que el Asset Editor nos permita "ver" el punto de salida del efecto de humo, para poder ubicar, de esta forma, el efecto sobre el modelo. Podríamos modelar cualquier otra forma y colores, pero no variarán el resultado en el simulador, por tanto nos quedaremos con ésta, que es el "shape" por defecto que usan las creaciones de Kuju.

Además de los dos archivos comentados, tenemos dos archivos de texturas en la carpeta "Particles" denominados "ExampleSmoke.ace" y "fumes.ace". Como habréis deducido, son archivos con texturas del humo que podemos generar. El archivo "ExampleSmoke.ace" es para un ejemplo de humos de contenido muy simple y el "fumes.ace" viene proporcionada con RailWorks e incluye una textura más utilizable.

Podéis tener tantos de estos como deseéis, os muestro el contenido del "fumes":

rw-cs026.jpg
rw-cs026.jpg (21.55 KiB) Visto 23213 veces

Está dividido en una matriz de 4x4 (la matriz podría ser de otras dimensiones) que permite tener 16 texturas diferentes para el humo, aunque en este caso, por simplicidad, la textura es la misma en todas las ocasiones. Además incorpora un canal alpha para dar semitransparencia a la textura:

rw-cs027.jpg
rw-cs027.jpg (20.67 KiB) Visto 23213 veces

De momento usaremos esta textura, aunque en el futuro podréis realizar vuestras propias texturas según el efecto que deseéis.

Por último hemos copiado también un archivo XML de blueprint denominado "Example_Smoke.xml" con un humo de ejemplo.

Una vez visto lo que acabamos de incorporar a nuestra carpeta, lo primero que haremos es duplicar el blueprint de ejemplo y cambiarle el nombre. Yo le he llamado "Humo_muy_ligero.xml", porque mi intención es conseguir un humo ligero, propio de la combustión de una pequeña estufa.

Ahora abriremos el "Asset Editor" y en la carpeta Particles abriremos el nuevo humo sobre el que vamos a trabajar "Humo_muy_ligero.xml", aunque recordemos que su contenido todavía es el mismo que el del blueprint de ejemplo.

Un primer vistazo rápido al blueprint generado nos dará la impresión de una gran complicación de parámetros, valores y opciones. ¿Os acordáis de cuando abristeis por primera vez el 3ds? La sensación de la acojonalina corriendo por las venas es la misma, pero vamos a ir poco a poco y veréis que no es para tanto, a la par que sumamente divertido, cuando se sabe lo que se toca claro ;) .

En primer lugar pulsaremos sobre el botón "Preview" para ver un humo en acción:

rw-cs028.jpg

Observamos perfectamente el humo, y en su base el objeto (la trompeta amarilla esa) que define el punto por donde se emiten las partículas. No obstante, este humo de ejemplo no nos complace nada para nuestra humilde casilla, pues es demasiado intenso y haría parecer que está ardiendo. Vamos a revisar, y modificar si procede, algunos campos básicos, antes de empezar a tocar el efecto del humo.

De arriba a abajo encontraremos:

rw-cs029.jpg

  • Name - Pondremos "Humo muy ligero"
  • Display Name - en los diferentes idiomas. Si queremos hacer simplemente un humo para que un creador de rutas lo pueda incorporar a una ruta cumplimentaremos estos campos, en caso contrario, como lo es el presente, los dejaremos vacíos.
  • Description - Lo mismo.
  • Category - Caso de que el humo esté disponible para un creador de rutas especificaremos la categoría bajo la cual queremos que aparezca. En el presente caso elegiremos "Exclude from browser list", para que no aparezca en ninguna de ellas.
  • Colapsaremos los apartados "S emmiter properties" y "S particles properties" para facilitar el trabajo, pues por ahora no entraremos en materia con ellos.
  • Tex ID - Cambiaremos el nombre de la textura para el humo por "Particles\fumes.ace", pues la textura de ejemplo no es apropiada en absoluto.
  • I row column size- Deberemos comprobar que tiene el valor 4, pues la textura que vamos a usar tiene una matriz de 4x4. Este es un tamaño de matriz habitual.
  • F frame switch time - Aquí expresaremos el tiempo (en segundos, creo) que indicará cada vez que se cambiará aleatoriamente la textura usada dentro de la matriz definida. Como todas las imágenes de la matriz son idénticas, este valor no tiene importancia. Un valor de 0 indicará que nunca se producirá el cambio de textura.
  • Geometry ID - El nombre del objeto que representará el punto de emisión de partículas en el "Asset Editor". Recuerdo que en el simulador este elemento no será visualizado.
  • Shadow Type - Deberá ser "None", pues no queremos sombra para el humo.
  • Detail level generation range - Estos valores, que ya vimos para la casilla, determinan cuando será visible el humo según el nivel de detalle escogido por el usuario. Unos valores de 2 y 5 son suficientes en nuestro caso.
Ahora podemos volver a previsualizar el humo:

rw-cs030.jpg

Únicamente cambiando la textura el humo parece otro. Ahora podemos ir ajustando las propiedades del humo.

Hay que tener presente que lo que estamos generando es literalmente un "Emisor de partículas". Es decir, un punto desde el cual se generarán "partículas". Para entenderlo debemos saber que una partícula para el simulador es un polígono, y tiene una serie de propiedades:
  • El polígono siempre está orientado hacia la cámara.
  • El polígono está texturado a partir de una matriz de texturas, pero para una misma partícula la textura es invariable a lo largo de la vida de ésta.
  • Las partículas tienen una vida determinada y cierta en el simulador. Aparecen, evolucionan y desaparecen.
  • Las partículas aparecen en el punto de emisión. pero luego evolucionan con una cierta independencia unas de otras.
  • Tienen una velocidad y dirección iniciales, que serán alteradas por factores de azar o fijos.
  • Presentan una "masa" que está afectada por la "gravedad" y el "viento" en la medida que determinemos a lo largo de su vida.
  • Presentan un color y transparencia determinados que puede variarse a los largo de la vida desde unos valores iniciales a otros finales.
  • El tamaño del polígono de las partículas puede ser determinado tanto para el momento inicial como para el final de su vida.
  • El polígono puede girar sobre un punto, incrementando la sensación de dinamismo del conjunto de partículas.
Con estos conceptos nos debe bastar de momento, pero si os dais cuenta, vamos a crear un punto de emisión de partículas que, cual chorro, van a evolucionar en el simulador. Por tanto, el humo no es un cuerpo único y fijo, si no que está compuesto de muchos, variables e independientes. Esta definición nos permite, ajustando texturas y valores, simular tanto un humo como una caída de carbón (en los cargaderos), una nube de polvo levantada por un vehículo o las salpicaduras del agua en una cascada.

Ahora vamos a repasar los parámetros que antes hemos obviado y que afectan a las partículas. En el blueprint podemos ver unos bloques definidos:
  • Emitter component BP que define generalidades del emisor: cantidad de partículas máximas de este, textura usada, etc. A su vez contiene las dos siguientes secciones:
  • S emitter properties que definirá el comportamiento del emisor: cantidad de partículas emitidas, flujo, velocidad inicial, dirección inicial, etc.
  • S particles properties que definirá la vida de cada una de las partículas emitidas: Color inicial y final, tamaño, velocidad de giro de la partícula, etc.

Vamos a revisar los más importantes, y en este caso, tras cada modificación de algún parámetro, solicitaremos una previsualización del resultado para comprobar su efecto.

  • I max particles. Este es el número máximo de partículas vivas que mantendrá el emisor. Si por las características definidas la vida de las partículas es muy larga, o el flujo de estas muy rápido, puede ocurrir que el emisor alcance el máximo fijado por este valor de partículas. En ese caso, el emisor dejará de generarlas hasta que algunas de estas se extingan, el número de ellas activas disminuya, y el emisor se reactive. Es un valor de seguridad para impedir que un emisor genere sin medida partículas y pueda colapsar al simulador. Probad un valor de 20 y veréis esto que comento. Para nuestro humo daremos un valor de 200 partículas como máximo simultáneas.
  • I particles to release. cantidad de partículas emitidas simultáneamente. Con este valor determinaremos cuan "espeso" será nuestro humo. Para nuestro humo daremos un valor de 5 partículas emitidas.
  • V init velocity. Velocidad inicial de las partículas, definida en cada uno de los tres ejes X, Y y Z, y que por tanto también determina la dirección inicial. Como el eje Y es el que apunta hacia arriba (en el simulador) los valores de 0, 1 y 0 determinan que las partículas se emiten directamente hacia el cielo. Podemos modificar estos valores por 5, 0 y 0, lo cual producirá el efecto de que las partículas surjan de forma lateral al emisor, aunque luego por acción de otros parámetros estas se frenen y se eleven hasta desaparecer. Para nuestro humo daremos un valor de 0, 0.1 y 0, con lo que dejaremos que el humo se eleve, pero de forma suave.
  • V Gravity. Similar al anterior, determina la gravedad a la que estarán sometidas las partículas una vez abandonan el emisor. En realidad representa una aceleración (en cada uno de los ejes) que modifica la velocidad inicial de la partícula. Un valor de 0, -1 y 0 (valor negativo en el eje Y) hará que las partículas, una vez abandonado el emisor, caigan hacia el suelo en lugar de elevarse hacia el cielo. Para nuestro humo daremos un valor de 0, 1.5 y 0, con lo que dejaremos que el humo una vez en el aire, se disipe hacia arriba algo más rápidamente de lo que se originó.
  • V 2S pread (En realidad se denomina V2 Spread). Determina un valor de propagación en el plano horizontal del emisor. Afecta tan sólo a los dos ejes X e Y. Si sustituís uno de ellos por el valor 10 veréis claramente lo que ocurre. Se amplía el área del emisor posiblemente este valor indica una distancia en metros. Si dais el valor 10, 10 y 0 obtendremos un emisor sobre un área grande. Para nuestro humo dejaremos los valores de 1, 1 y 1.
  • F emission rate. Aunque no acabo de comprender este valor, dejaremos un valor de 0.2.
  • F velocity variance. Determina la variabilidad en la velocidad y direcciones iniciales determinadas. Un valor muy bajo produce una columna uniforme de partículas, un valor alto produce una gran dispersión de éstas. Probad con los valores 0 y luego con 10 para apreciarlo. Nosotros dejaremos un valor de 0.4.
  • F resistance factor. Determina la resistencia al viento de la columna de partículas. Un valor bajo impide que el viento afecte a la columna, mientras que uno alto la desvía en consecuencia. Nosotros dejaremos un valor de 0.7.
  • Hc initial color. Color y transparencia que se aplicará a la textura de las partículas en el momento de su generación. No obstante, puede que las partículas no lleguen a estar afectadas por este valor. Luego lo vemos.
  • Hc mid color. Color y transparencia que se aplicará a la textura de las partículas en el periodo intermedio de su vida. El tono de gris lo dejaremos en 0.4, 0.4 y 0.4, pero reduciremos el valor del canal alpha a 0.2 para incrementar la transparencia del color.
  • Hc final color. Color y transparencia que se aplicará a la textura de las partículas en al final de su vida. Dejaremos los valores 1, 1 y 1 para el color (blanco) aunque éste no importa puesto que el canal alpha lo dejaremos en 0, con lo que la transparencia será total y hará que a la textura de la partícula se vaya diluyendo en acercarse al final de su vida.
  • F perc switch to mid color. Cuando elevamos este parámetro las partículas emitidas adoptan el color inicial en los primeros momentos. El valor determina la duración de dicho color antes de pasar al color intermedio. Un valor de 0 hace que la partícula se origine directamente en el color intermedio. Nosotros dejaremos un valor de 0.
  • F spin. Velocidad de rotación de las partículas durante su vida. Nosotros dejaremos un valor de 4.
  • F size. Tamaño de las partículas en el momento de su generación. Como queremos un humo discreto, dado el escaso tamaño de nuestra chimenea, le daremos un valor de .2.
  • F final size. Tamaño que llegarán a alcanzar las partículas en el momento final de su vida. Dado el reducido tamaño inicial, le daremos una dispersión hasta un tamaño de .8.
  • F life cycle. Duración de la vida de las partículas. Cuanta mayor duración le demos tendremos que verificar que el emisor pueda mantener todas las partículas deseadas. Así mismo éstas permanecerán por más espacio visibles y llegarán hasta una mayor distancia. Un valor de 5 es suficiente para nuestro humo.
  • F particle mass. Masa de las partículas. Nosotros dejaremos un valor de 0.1.
Ahora nuestro humo se ve más o menos así:

rw-cs031.jpg

Por lo que satisfechos con él guardaremos los cambios en el blueprint y lo exportaremos.

A continuación abriremos el blueprint de la casilla para proceder a añadirle el humo anterior.

Nos dirigiremos a la parte inferior del blueprint hasta el grupo "Container component" y expandiremos el subgrupo "Children". En este grupo podemos especificar otros elementos (blueprints) que queramos asociar a nuestro modelo, pueden ser sonidos, otros modelos o, como en este caso, un emisor de partículas. pulsaremos el botón "Insert First" para insertar un objeto. Expandimos "S child" y cumplimentaremos:
  • Child name. Podemos dar el nombre que queramos al objeto hijo, Este nombre lo usará tan solo la casilla para poderlo referenciar. Pondremos "Humo", por ejemplo.
  • Blueprint set ID. Informaremos aquí el Provider (developer) y el Product (addon) del objeto que queremos incluir. Como somos nosotros mismos pondremos dichos datos de donde se halle el blueprint del humo. En mi caso "Pere" y "Renfe".
  • Blueprint ID. Aquí tenemos que indicar el blueprint del humo, con su ruta desde el Provider/Product. Será "Particles\Humo_muy_ligero.xml"
Ahora podemos previsualizar la casilla. En la ventana inferior izquierda aparecerán los objetos asociados a la casilla, entre ellos uno denominado "Humo" ;) lo seleccionaremos y nos aparecerá el "gizzmo" del objeto (las flechas esas con la bola). Arrastrando dichas flechas debemos colocar el emisor justo sobre la boca de la chimenea:

rw-cs032.jpg

Y una vez esté todo a nuestro agrado podemos exportar la casilla y apreciarla en el simulador.

rw-cs023.jpg

El humo le aporta un cierto dinamismo al edificio (no totalmente apreciable en una captura) a la par que completa el aspecto mejorado que hemos ido introduciendo a la casilla. ¡Cómo ha cambiado el resultado a lo largo de estos capítulos, respecto al obtenido al final del primer tutorial! Y eso que la casilla es la misma :D (pinchad en la imagen final para verla ampliada).
Avatar de Usuario
Pere
grupo TrenSim
 
Mensajes: 5043
Registrado: Jue Ago 28, 2003 11:44 pm
Ubicación: Barcelona

Siguiente

Volver a 3D Studio Max / gmax

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado