RS:Objetos procedurales - Modelado
De TrenSimpedia
(→El elemento procedural) |
|||
Línea 61: | Línea 61: | ||
===El elemento procedural=== | ===El elemento procedural=== | ||
- | + | Empezaremos construyendo el muro en sí, que es el elemento procedural. | |
Una vez iniciado el programa [[D3D:3D Canvas|3D Canvas]] obtenemos una escena vacía. | Una vez iniciado el programa [[D3D:3D Canvas|3D Canvas]] obtenemos una escena vacía. | ||
- | Seleccionamos el [[D3D:3D_Canvas:_Component_Panel|Component Panel]] para a continuación pinchar y arrastrar la ''primitiva'' "Cube" hasta algún lugar de la escena. Nos aparece un cubo en el sitio donde hemos arrastrado la primitiva. Este cubo tiene como dimensiones 1 metro tanto en alto, ancho y largo. | + | [[Imagen:Canvas-01.jpg|thumb]]Seleccionamos el [[D3D:3D_Canvas:_Component_Panel|Component Panel]] para a continuación pinchar y arrastrar la ''primitiva'' "Cube" hasta algún lugar de la escena. Nos aparece un cubo en el sitio donde hemos arrastrado la primitiva. Este cubo tiene como dimensiones 1 metro tanto en alto, ancho y largo. |
[[Imagen:Canvas-02.jpg|thumb]]A continuación seleccionamos el [[D3D:3D_Canvas:_Scene_Hierarchy_Panel|Scene Hierarchy Panel]] que nos mostrará la jerarquía de elementos que componen nuestra escena. En esta jerarquía podemos observar la presencia de un punto de luz, una cámara y tres focos, uno de ambiente y dos direccionales, todos ellos elementos comunes a cualquier escena Canvas. Pero además de estos, ha aparecido un grupo denominado "Group" que contiene un elemento denominado "Cube". Éste último es la primitiva que acabamos de añadir a la escena. Como que toda primitiva debe estar asociada a un grupo, también se nos ha generado en la jerarquía el grupo necesario. | [[Imagen:Canvas-02.jpg|thumb]]A continuación seleccionamos el [[D3D:3D_Canvas:_Scene_Hierarchy_Panel|Scene Hierarchy Panel]] que nos mostrará la jerarquía de elementos que componen nuestra escena. En esta jerarquía podemos observar la presencia de un punto de luz, una cámara y tres focos, uno de ambiente y dos direccionales, todos ellos elementos comunes a cualquier escena Canvas. Pero además de estos, ha aparecido un grupo denominado "Group" que contiene un elemento denominado "Cube". Éste último es la primitiva que acabamos de añadir a la escena. Como que toda primitiva debe estar asociada a un grupo, también se nos ha generado en la jerarquía el grupo necesario. | ||
- | + | Si pinchamos en el grupo "Group" de la jerarquía podremos editar su nombre, cosa que haremos para pasar a denominarle "1_1000_Muro". La nomenclatura de los grupos en RS se describe en el artículo [[RS:Consideraciones_generales_de_creación_en_RS|Consideraciones generales de creación en RS]]. También podemos pinchar en el elemento "Cube" y cambiarle el nombre por "Ladrillos". | |
- | Podemos dirigirnos a la Herramienta [[D3D:3D_Canvas:_Visible_Objects|Visible Objects]], en la barra de herramientas superior, que determina de que forma se representan los objetos visibles en la escena. Se desplegará un menú contextual en el cual podemos elegir "Wireframe" para ver el cubo compuesto únicamente por sus aristas. De esta forma vemos en el centro del mismo un Gizzmo que representa el eje de la pieza, y que no debemos confundir con el centro de la escena, que también está representado por un Gizzmo en el centro del damero de la base de la escena. | + | [[Imagen:Canvas-03.jpg|thumb]]Podemos dirigirnos a la Herramienta [[D3D:3D_Canvas:_Visible_Objects|Visible Objects]], en la barra de herramientas superior, que determina de que forma se representan los objetos visibles en la escena. Se desplegará un menú contextual en el cual podemos elegir "Wireframe" para ver el cubo compuesto únicamente por sus aristas. De esta forma vemos en el centro del mismo un Gizzmo que representa el eje de la pieza, y que no debemos confundir con el centro de la escena, que también está representado por un Gizzmo en el centro del damero de la base de la escena. |
- | + | Seleccionaremos el cubo introducido en la escena y desplegaremos el menú contextual del grupo pulsando el botón derecho del ratón. Del menú que aparece seleccionaremos la última opción: "Properties". Se nos abrirá una ventana con las propiedades del grupo del cubo (recordemos que en Canvas los elementos no tienen propiedades, sólo las tienen el grupo del que dependen en la jerarquía). Nos interesa modificar la posición del grupo dando a los tres parámetros "X", "Y" y "Z" el valor cero. De esta forma situaremos el eje del grupo en el centro de la escena, condición necesaria para una vez generado el objeto éste se sitúe correctamente en la simulación de RS ([[RS:Consideraciones_generales_de_creación_en_RS#Orientaci.C3.B3n_y_origen|Orientación y origen]]). Una vez confirmados los nuevos valores de posición del grupo observamos que el cubo aparece semienterrado en el suelo de la escena. No debemos alarmarnos pues a su debido tiempo lo remediaremos. | |
- | [[Imagen:Canvas- | + | [[Imagen:Canvas-04.jpg|thumb]]Pasaremos a dar las dimensiones deseadas a la pared de ladrillos. Una longitud de 5 metros (entre columnas), una altura de 2,5 metros y un grosor de 20 centímetos nos parecerán suficientes. Para ello abriremos el [[D3D:3D_Canvas:_Object_Operation_Panel|Object Operation Panel]], que nos mostrará todas las herramientas que tenemos para modificación de objetos, y seleccionaremos la herramienta '''Scale Selection''', que nos permite especificar las nuevas dimensiones del objeto. Aplicaremos los valores a los tres ejes: |
* X = 0,2 | * X = 0,2 | ||
* Y = 2,5 | * Y = 2,5 | ||
* Z = 5,0 | * Z = 5,0 | ||
- | + | Como el elemento está centrado en el escenario, lo deberemos elevar hasta el nivel del suelo, pero sin alterar la posición de su eje, que debe permanecer al nivel 0. Para ello usaremos la herramienta de seleccionar ''Group Selection Tool'', del menú de herramientas lateral, con el fin de seleccionar todos los puntas del muro y proceder a desplazarlos al punto adecuado, pero como sólo desplazaremos los puntos del objeto su eje permanecerá en el centro de la escena que es lo que deseamos. | |
- | Para garantizar que seleccionamos todos los puntos del objeto cambiaremos perspectiva de la vista pulsando con el botón derecho del ratón en cualquier punto de la escena para mostrar el menú contextual del que seleccionaremos '''View > Orthographic > Top''' | + | [[Imagen:Canvas-05.jpg|thumb]]Para garantizar que seleccionamos todos los puntos del objeto cambiaremos perspectiva de la vista pulsando con el botón derecho del ratón en cualquier punto de la escena para mostrar el menú contextual, del que seleccionaremos '''View > Orthographic > Top''' para tener una vista cenital del objeto. A continuación activamos la herramienta ''Group Selection Tool'' y pincharemos y arrastraremos en la escena con el fin de crear un área de selección que rodee completamente el muro. Se remarcarán los puntos del objeto indicando que están seleccionados. |
+ | [[Imagen:Canvas-06.jpg|thumb]]Con todos los puntos del muro seleccionados abriremos el [[D3D:3D_Canvas:_Object_Operation_Panel|Object Operation Panel]] y seleccionaremos la herramienta '''Shift Selection''', que nos permite desplazar y/o rotar en cualquiera de los tres ejes una cantidad deseada, en metros para los desplazamientos y en grados para las rotaciones. Desplazaremos el muro en el eje Y 1,25 metros, la mitad de su altura, para ubicarlo justo sobre el nivel del suelo (Valor 0 en el eje Y), y desplazaremos el eje Z 2,5 metros, la mitad de su longitud, para que el frontal del objeto se sitúe también en el valor 0 del eje Z. | ||
+ | Este ajuste al plano definido por la coordenada 0 en el eje Z es preciso pues, para un objeto procedural, RS sólo tendrá en cuenta la sección que formarán aquellos puntos y vértices que se hallen en dicho plano. El resto del objeto será ignorado para la generación de la malla en el simulador, usándose solamente la longitud que demos en el editor para ajustar la textura al nuevo objeto que se renderice en el juego. | ||
- | + | Aplicaremos los valores a los dos ejes: | |
+ | * Y = 1,25 | ||
+ | * Z = 2,50 | ||
+ | |||
+ | {{Mensaje_En_Curso}} | ||
===El elemento repetitivo=== | ===El elemento repetitivo=== |
Revisión de 21:27 22 mar 2009
Con el presente artículo se pretende introducir al aficionado en el modelado de objetos procedurales para Rail Simulator.
El editor utilizado en el ejemplo es 3D Canvas, pero podría ser cualquier otro editor 3D con el que el autor se sienta más confortable.
Así mismo se abordarán conceptos de creación de texturas en las que no se entrará al detalle, aunque quien lo desee puede revisar el artículo: Creación de texturas con Gimp.
La creación del Blueprint y la inclusión del modelo en Rail Simulator se abordan en otro artículo.
Contenido |
Introducción
Un objeto procedural es un elemento 3D del cual tan solo se informa al simulador de su perfil, procediendo el motor de la simulación a generar el volumen del objeto por extrusión de dicho perfil, ajustando dicho desarrollo a un perfil curvilíneo que se determine.
Un objeto procedural se puede completar con un elemento fijo en cada uno de sus extremos, además de otro objeto fijo que se puede repetir a lo largo del perfil de desarrollo a espacios regulares predeterminados.
Típicamente se construyen con estos elementos: Muros, vallas, andenes, carreteras, caminos, riachuelos, acequias, vías, puentes, etc...
El modelo escogido
Para esta ocasión se ha elegido un muro, con algún elemento decorativo adicional.El muro, conceptualizado en el dibujo adjunto (no necesariamente a escala), estará formado por una pared de ladrillo, rematada en su parte superior por unas losas de piedra. Estará enmarcado y sustentado por unas columnas de hormigón, rematadas también en hormigón por una pirámide achatada de base cuadrada.
El muro es puramente imaginario, y la mezcla de materiales de construcción: ladrillo, piedra y hormigón, se ha forzado para mostrar las posibilidades de texturado.
No obstante lo anteriormente señalado, este elemento nos permite explorar las diferentes posibilidades de los objetos procedurales, y, por tanto, permitirá entender las claves para la elaboración de cualquier otro elemento similar que se desee recrear.
Las texturas
Para este ejemplo no se ha buscado un muro existente, al cual se podría haber fotografiado para obtener así sus texturas, por preferir mostrar las posibilidades de la web CGTextures. Como dice el manifiesto de intenciones de su autor, Marcel Vijfwinkel:
CGTextures se esfuerza por ser el mejor sitio de texturas. Siendo yo mismo un artista 3D, sé lo difícil que es crear texturas de materiales sin una buena foto. La realización de texturas debe ser una tarea de creatividad, no de pasar horas buscando la imagen apropiada en Internet. Espero que mediante el suministro de texturas de buena calidad de una manera organizada, su trabajo cotidiano será más fácil y más agradable. |
Obtención de las texturas
Procederemos a la localización de las texturas que nos parezcan más apropiadas para el caso que nos centra.Accedemos a la web www.cgtextures.com y observamos que en la página principal ya se nos muestra las diferentes tipologías de texturas que allí se pueden encontrar. La tercera de las tipologías Brick nos llama la atención, pues se trata de texturas de ladrillos. Pulsamos sobre ella y observamos que en la web las texturas de ladrillos están clasificadas en 7 subcategorías, de las cuales nos decantaremos por Modern Small. Esta tipología nuevamente se divide en hasta 13 subcategorías, de ellas nos puede interesar la primera Brown. Aquí encontramos 136 texturas diferentes de Ladrillos modernos pequeños marrones, cualquiera de las cuales nos puede interesar, pero a mi me llama la atención la tercera, sobre la cual procedemos a pulsar con el ratón.
Observamos que esta textura se denomina BrickSmallBrown0064, es una contribución de Jacobo Cortés Ferreira y la tenemos disponible en tres resoluciones posibles. Elegiremos la menor de 1024x518, pues será suficiente para nuestro propósito.
Retrocedemos hasta el menú de la categoría Briks para esta vez acceder a la subcategoría Modern Large donde elegiremos el tipo Blocks y nos fijaremos en la tercera de las texturas que aparecen, que bien pudiera servirnos, una de las hileras de bloques, para texturar las losas de piedra que rematarán el muro de ladrillos. En esta ocasión la textura está marcada con la palabra SET, ello indica que no se trata de una textura aislada, si no de un conjunto de texturas (dos o más) sobre un mismo tema u objeto. Al acceder a la textura observamos que se denomina BrickLargeBlocks0007, es una contribución del autor de la página web, se trata de un conjunto de dos fotografías del mismo muro y están disponibles en tres resoluciones. Nos interesará la primera de las texturas del conjunto, puesto que deseamos dar un acabado más sucio al muro, y nos bastará con la resolución más baja.
Por último buscaremos una textura de hormigón para las columnas. Regresaremos a la página principal de la web y seleccionaremos la categoría Concrete y la subcategoría Bare. La tercera textura de la segunda fila nos parece que bien pudiera adecuarse a nuestro modelo, más en esta ocasión la textura, además de estar marcada con la palabra SET, también está marcada con la palabra TILED, ello indica que el autor de la textura la ha adecuado para que esta pueda ser acoplada en mosaico con el fin de recubir un área mayor, si es necesario, si que se produzcan l'ineas de unión entre repeticiones de la textura. Accedemos a ella y observamos que se denomina ConcreteBare0022 y que la tercera del conjunto es la que nos parece más apropiada. Por tanto la descargaremos como las anteriores.
Preparación de los archivos de textura
Crearemos dos archivos de textura:
- Uno para la columna
- Y otro para el muro de ladrillo y el remate de piedra
Para el primero usaremos la textura de cemento, que no necesita demasiada preparación. Bastará escalar dicha textura a un tamaño de 512x512, pues el original quizás es excesivo, y la guardaremos en formato .bmp con un nombre que nos sea significativo. Podemos nombrarla según su contenido (p.e. TxCemento01.bmp) o bien según su uso (p.e. TxMuroTut01.bmp).
Para el segundo crearemos un archivo de 512x256 píxeles (512 de ancho y 256 de alto). En él copiaremos en la parte alta una hilera de bloques de la textura de bloques de piedra, que deberá ocupar el 10% de la hoja de textura en altura (26 píxeles) y todo el ancho. El resto, la zona inferior de 512x230, la ocupará la textura de ladrillos. El conjunto lo deberemos rotar 90º, pues los objetos procedurales toman la repetición de la textura a lo largo del eelemento generado en el eje Y de la misma (norte-sur). El resultado será similar a la imagen adjunta y la denominaremos TxMuroTut02, en formato .bmp.
Modelado
Para el modelado del muro se utilizará, como se ha comentado, 3D Canvas. No es pretensión de este artículo mostrar en detalle el funcionamiento de dicho programa, no obstante, los pasos a seguir se mostrarán con el detalle suficiente.
El artículo Descripción de la interfase en 3D Canvas explica en mayor profundidad el uso de este programa.
El elemento procedural
Empezaremos construyendo el muro en sí, que es el elemento procedural.
Una vez iniciado el programa 3D Canvas obtenemos una escena vacía.
Seleccionamos el Component Panel para a continuación pinchar y arrastrar la primitiva "Cube" hasta algún lugar de la escena. Nos aparece un cubo en el sitio donde hemos arrastrado la primitiva. Este cubo tiene como dimensiones 1 metro tanto en alto, ancho y largo. A continuación seleccionamos el Scene Hierarchy Panel que nos mostrará la jerarquía de elementos que componen nuestra escena. En esta jerarquía podemos observar la presencia de un punto de luz, una cámara y tres focos, uno de ambiente y dos direccionales, todos ellos elementos comunes a cualquier escena Canvas. Pero además de estos, ha aparecido un grupo denominado "Group" que contiene un elemento denominado "Cube". Éste último es la primitiva que acabamos de añadir a la escena. Como que toda primitiva debe estar asociada a un grupo, también se nos ha generado en la jerarquía el grupo necesario.Si pinchamos en el grupo "Group" de la jerarquía podremos editar su nombre, cosa que haremos para pasar a denominarle "1_1000_Muro". La nomenclatura de los grupos en RS se describe en el artículo Consideraciones generales de creación en RS. También podemos pinchar en el elemento "Cube" y cambiarle el nombre por "Ladrillos".
Podemos dirigirnos a la Herramienta Visible Objects, en la barra de herramientas superior, que determina de que forma se representan los objetos visibles en la escena. Se desplegará un menú contextual en el cual podemos elegir "Wireframe" para ver el cubo compuesto únicamente por sus aristas. De esta forma vemos en el centro del mismo un Gizzmo que representa el eje de la pieza, y que no debemos confundir con el centro de la escena, que también está representado por un Gizzmo en el centro del damero de la base de la escena.Seleccionaremos el cubo introducido en la escena y desplegaremos el menú contextual del grupo pulsando el botón derecho del ratón. Del menú que aparece seleccionaremos la última opción: "Properties". Se nos abrirá una ventana con las propiedades del grupo del cubo (recordemos que en Canvas los elementos no tienen propiedades, sólo las tienen el grupo del que dependen en la jerarquía). Nos interesa modificar la posición del grupo dando a los tres parámetros "X", "Y" y "Z" el valor cero. De esta forma situaremos el eje del grupo en el centro de la escena, condición necesaria para una vez generado el objeto éste se sitúe correctamente en la simulación de RS (Orientación y origen). Una vez confirmados los nuevos valores de posición del grupo observamos que el cubo aparece semienterrado en el suelo de la escena. No debemos alarmarnos pues a su debido tiempo lo remediaremos.
Pasaremos a dar las dimensiones deseadas a la pared de ladrillos. Una longitud de 5 metros (entre columnas), una altura de 2,5 metros y un grosor de 20 centímetos nos parecerán suficientes. Para ello abriremos el Object Operation Panel, que nos mostrará todas las herramientas que tenemos para modificación de objetos, y seleccionaremos la herramienta Scale Selection, que nos permite especificar las nuevas dimensiones del objeto. Aplicaremos los valores a los tres ejes:- X = 0,2
- Y = 2,5
- Z = 5,0
Como el elemento está centrado en el escenario, lo deberemos elevar hasta el nivel del suelo, pero sin alterar la posición de su eje, que debe permanecer al nivel 0. Para ello usaremos la herramienta de seleccionar Group Selection Tool, del menú de herramientas lateral, con el fin de seleccionar todos los puntas del muro y proceder a desplazarlos al punto adecuado, pero como sólo desplazaremos los puntos del objeto su eje permanecerá en el centro de la escena que es lo que deseamos.
Para garantizar que seleccionamos todos los puntos del objeto cambiaremos perspectiva de la vista pulsando con el botón derecho del ratón en cualquier punto de la escena para mostrar el menú contextual, del que seleccionaremos View > Orthographic > Top para tener una vista cenital del objeto. A continuación activamos la herramienta Group Selection Tool y pincharemos y arrastraremos en la escena con el fin de crear un área de selección que rodee completamente el muro. Se remarcarán los puntos del objeto indicando que están seleccionados. Con todos los puntos del muro seleccionados abriremos el Object Operation Panel y seleccionaremos la herramienta Shift Selection, que nos permite desplazar y/o rotar en cualquiera de los tres ejes una cantidad deseada, en metros para los desplazamientos y en grados para las rotaciones. Desplazaremos el muro en el eje Y 1,25 metros, la mitad de su altura, para ubicarlo justo sobre el nivel del suelo (Valor 0 en el eje Y), y desplazaremos el eje Z 2,5 metros, la mitad de su longitud, para que el frontal del objeto se sitúe también en el valor 0 del eje Z.Este ajuste al plano definido por la coordenada 0 en el eje Z es preciso pues, para un objeto procedural, RS sólo tendrá en cuenta la sección que formarán aquellos puntos y vértices que se hallen en dicho plano. El resto del objeto será ignorado para la generación de la malla en el simulador, usándose solamente la longitud que demos en el editor para ajustar la textura al nuevo objeto que se renderice en el juego.
Aplicaremos los valores a los dos ejes:
- Y = 1,25
- Z = 2,50
Este artículo o sección se encuentra en fase de desarrollo por parte de un contribuidor. Es posible que la información suministrada aquí no sea completa. Ampliándolo ayudarás a mejorar la TrenSimpedia, pero recuerda que alguien posiblemente ya tiene en mente completarlo.
|
El elemento repetitivo
Este artículo o sección se encuentra en fase de desarrollo por parte de un contribuidor. Es posible que la información suministrada aquí no sea completa. Ampliándolo ayudarás a mejorar la TrenSimpedia, pero recuerda que alguien posiblemente ya tiene en mente completarlo.
|