Pequeña duda de modelado y texturizar grandes terrenos en Blender

Fry_hunter - 15/08/2012 15:06
Buenas. Un poco de presentación. Soy programador informático desde hace algunos años y dentro de uno, seré ingeniero superior. Últimamente me ha dado por la programación de videojuegos, y he decidido hacer por mi cuenta mi primer videojuego así bastante sencillo desde el punto de vista de la programación. Sera un juego de carreras arcade al más puro estilo Mario Kart.

El tema es que, a pesar de que la programación la llevo muy bien, la parte del modelado 3d me está suponiendo un infierno. Y aquí viene una de mis duda. He creado un terreno bastante grande en Blender donde poder alojar la primera pista de carreras. Os dejo una imagen. He dibujado la idea que tengo de por dónde ira la pista y esas cosas. Como podéis ver por esos dibujos, soy un artista profesional. También decir que el detalle de la malla final no será este. Que esta tiene unos 800.000 vértices, y para mover esto en el juego. Puedo estarme la vida.


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171025



Lo que ahora no sé es como crear los caminos por dónde pase la pista. Es decir, la carretera en si. Por que la superficie de la montaña es bastante rugosa tal y como podéis comprobar. Seguro que luego será la mayor tontería del mundo, pero bueno. Básicamente me gustaría un poco de consejo. Que métodos de modelado usaríais para hacer el camino y esas cosas. Yo había pensado en hacer la pista con curvas Bézier y luego toquetear algo (que no sé el que) para que el terreno se adapte a la línea Bézier. Pero no sé si existe algo así.

Y la segunda duda es a la hora de texturizar. El terreno es bastante grande y creo que es inviable hacer una imagen de textura para todo el terreno. Más que nada por que pesaría muchísimo. Como se hacen este tipo de texturizaciones normalmente? Gracias y, saludos.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171025

Soliman - 15/08/2012 16:17
No sé si funcionara, pero la única forma que se me ocurre de hacer lo que quieres es con Sculpt, se trataría de cambiar a Sculpt y seleccionar un pincel que dejase plana la superficie por dónde pintes (esculpas), pero ya te digo que no sé si te saldrá bien.


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171032



-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171032

Fry_hunter - 15/08/2012 19:20
Vaya. He probado a hacerlo con lo que comentas. La verdad es que lo veo factible, pero me llevará más trabajo del que pensaba a priori. A ver si a alguien se le ocurre otra cosa. Muchas gracias por la respuesta.
urlia - 16/08/2012 09:37
Prueba lo que te ha dicho, el smooth, con strength = 1 y curve el que tiene forma de grapa.
Fry_hunter - 17/08/2012 01:35
Hola de nuevo. Bueno, al final he seguido vuestros consejos y lo he hecho con el Sculpt. Creo que ha quedado bastante resultón.

Pero tengo una nueva duda.

A la hora de texturizar voy a hacer una base de textura de hierba para todo el terreno e ir añadiendo texturas por encima mediante una máscara. Para hacer la base de hierba mi intención es coger el Tile de hierba y hacer que se repita por todo el terreno. La duda que tengo es:
Si pongo, por ejemplo, 200 repeticiones de la textura, el programa redimensionara la textura para que quepan exactamente 200 en el terreno? O simplemente cogerá el tamaño original y repetirá hasta que cubra todo el terreno? Sin llegar a hacer falta las 200 quizás.

Y por supuesto, si estoy haciendo una aberración a la hora de querer texturizar así decídmelo por favor. Saludos.
Soliman - 17/08/2012 10:00
Si pones 200 serán 200
El problema es que, si se ve desde lejos, se va a notar mucho la repetición, a no ser que mezcles diferentes texturas, un ejemplo de césped a 5 y a 20 para que veas lo que te comento.


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171074


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171075



-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171074



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171075

Azrael^^ - 18/08/2012 18:35
Yo para la textura lo que haría sería pintarla. Últimamente lo he hecho un par de veces y creo que podría quedar muy resultón para lo que estás buscando, ahorrándote de paso los problemas del tileado y la repetición de la que te bien Solimán.
¿Cómo? Pues mira, te haces Unwrap de la malla y te creas una imagen vacía de base desde el UV/Image Editor. Una vez hecho, te vas al modo Texture Paint te añades una nueva textura tipo imagen para el pincel, de cgtextures, por ejemplo, esta, y vas pintando la malla. Dejando el modo blend en mix y jugando con el color base, puedes ir pintando y consiguiendo algo guay, que le das un color base marrón, pues pintaras más terroso, que pones un color verdoso, pues pintaras zona con más hierba.

Pruébalo. Yo cuando lo descubrí, me sorprendió bastante el mundo de posibilidades que te abre el sistema.
Beral - 20/08/2012 19:06
A ver en primer lugar, cuando desarrollas un juego con el motor de Blender ge, tienes que tener en cuenta las limitaciones del mismo, o tienes un superordenador de la nasa o es muy difícil que con un mapa de 800.000 vértices, más texturas, modelos te vaya a más de 1fps. Que quiere decir esto? Que cuando desarrolles un juego en Blender una única palabra tiene que rondar tu cabeza desde el principio hasta el fin de tu proyecto, low poly (bueno son dos más bien). Igual es más difícil hacer modelos y mapas con pocos polígonos y que tengan un acabado decente, pero hay esta la gracia de todo. Que al ser el motor que es tienes que estar constantemente pensando en el rendimiento, no puedes hacer un mapa con una Mesh de 800.000 vértices porque simplemente cuando le das al play, Blender te hace una peineta y te saca al escritorio. Debes enfocar tus modelos, en torno más a una textura de calidad, que ha una malla superpoblada de vértices, no sé si me entiendes. Aclarado esto, y ya que es un juego de carreras, es decir vas a tener NPC que van a tener que ir por esas carreteras y va a tener que programar una IA, yo lo que haría es hacer las carreteras como un objeto distinto al mapa, así te será más fácil texturizarlas y jugar con ellas en vista a la futura IA, además que no tendrás que modificar demasiado el mapa, solo aplanar un poco algunas zonas para que no quede al poner las carreteras, con lo que ahorraras polígonos y mejoraras el rendimiento espero que te sirva. Un saludo.
Fry_hunter - 21/08/2012 03:57
En primer lugar, gracias por responder beral. Pero como ya he dicho en el primer mensaje, la malla mostrada no es la que usaré en el juego. Lo que hago para hacer la malla Low poly es generar el mapa de normales a partir de la malla de alto detalle, y lo aplico como textura a la malla Low poly. De esta manera consigo un resultado bastante satisfactorio desde el punto de vista de calidad gráfica, y a la vez sigo teniendo un alto rendimiento. He leído por ahí que está técnica se llama Bump mapping o algo así.

También decir que no voy a usar el Game Engine de Blender. Voy a usar el Ogre 3d y C++ a pelo. Más que nada por que con este proyecto pretendo hacerme un poco de currículum. Y me parece más interesante hacerlo con C++, ya que hay bastante demanda.

En cuanto a lo de las carreteras me ha parecido interesante tu propuesta. Pero como las modelarías aparte? Teniendo en cuenta que se supone que son el propio camino de la montaña? Es que soy bastante novato en esto del modelado.

Y gracias a todos por las respuestas.
Fry_hunter - 21/08/2012 13:54
Perdón por el doble mensajes. Me ha surgido una duda respecto al Unwrap de la malla. Os dejo un par de imágenes para explicar.


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171197



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171198



Básicamente, es normal el Unwrap que me ha hecho? Todos los Unwrap que he visto en tutoriales y tal, los cuadrados del UV test son homogéneos. A mí como podéis ver me varían según la localización en la malla. Y según he leído, esto es que, algo falla. Si me ha hecho algo mal, ¿cómo lo puedo solucionar?

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171197



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171198

Soliman - 21/08/2012 14:08
En la forma de selección del uv. Por ejemplo, no es lo mismo el Unwrap que un Project from view. Esta segunda opción, quiere decir que se hace una proyección de la vista del objeto, para hacer la prueba, te pones en vista superior y estando en Edit Mode presionas letra u y selecciona el Project from view.

Y te tiene que salir más o menos el plano de vértices desde vista superior, también puedes probar a mirar en la barra del UV/Image Editor, en el apartado de UVS que hay dos opciones, una es Control + a average islands scale.

Otra es Control + v minimize strech.

No conozco la parte técnica, pero parece que distribuye mejor la malla en objetos complicados.
Fry_hunter - 21/08/2012 14:55
Ah vale. Ahora si me sale como pienso que tendría que salir. Gracias de nuevo.
Beral - 21/08/2012 15:23
Vaya cierto, fallo mío. Modelarlas aparte como un objeto distinto a la malla del mapa, es decir en primer lugar haces el mapa, y sobre el pones una malla nueva que sea tu circuito, en vez de que las carreteras estén directamente texturizadas sobre el, te pongo un ejemplo con una imagen, la malla verde es tu mapa y la negra tus carreteras. Así creo que podrías jugar con los ocluders y el Low poly para ocultar las secciones que no se ven o cambiarlas por un modelo de menor número de polígonos, lo cual te permitiría hacer recorridos con mayor detalle sin que el rendimiento bajase al estar cargando el mapa constantemente, es lo que haría yo, pero igual vamos no es tu única opción. Un saludo.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #171200