Hola. Necesito crear una escena con la cámara muy cerca del suelo. ¿Alguien sabe cómo hacer un césped realista en Pov-Ray? No me refiero a una simple textura sino a alguna forma de ver el césped eleve.
Versión para imprimir
Hola. Necesito crear una escena con la cámara muy cerca del suelo. ¿Alguien sabe cómo hacer un césped realista en Pov-Ray? No me refiero a una simple textura sino a alguna forma de ver el césped eleve.
Exite todavía el Pov-Ray? Que sorpresa. Pero no te puedo decir cómo hacer césped con este programa. Sale muy chulo en ZBrush y otros. Saludos.
A mí la verdad es que me gusta bastante ese programa, he probado el ZBrush y también me gusta, pero es que, no me quiero dejar la vida pagando esos programas para los que tengo que hipotecarme.
Bueno, si alguien sabe cómo hacerlo, por favor, que me lo explique. Gracias de todas formas.
Hostias. Pov-ray. Hacia tiempo que no oía hablar de él, de hacho fue mi primer software 3d y lo recuerdo con mucho cariño, qué tiempos aquellos del 386, los largos renders, bueno eso aún persiste.
Bueno, lo del césped, recuerdo una escena que hice un campo de césped, lo hice mediante un bucle que repartía aleatoriamente un objeto (la hierba). Primero construï una hoja de césped, creo que utilice un triángulo (no lo recuerdo bien) o dos, recuerdo que había una función(creo que era Mesh) que permitía instanciar objetos con muchos polígonos sin untilizar apenas recursos, mira de hacer una brizna con bastante detalle y utiliza Mesh para distribuirla. Una vez tengas el objeto a distribuir haces un bucle donde te reparta x objetos en determinada zona, dentro del bucle, las coordenadas de cada objeto tienes que, añadirle un número aleatório (creo que era la función Rand()), de esta forma los briznos de hierba se repartirán de forma no uniforme por el espacio, le puedes añadir un poco de rotación a cada elemento para que sea un poco más real.
Vaya. No sé si te sirve, mediante bucles y un poco de ingenio puedes crear matrices de miles de objetos de manera automática, mírate la ayuda, seguro que encuentras información sobre esto. Saludos pov-adictos.
Posdata: otro software 3d libre que está muy bien es Blender, yo utilizo 3ds Max pero me estoy pensando pasar a Blender, es muy potente.
Hola. En Pov-Ray hago el pasto de la siguiente forma. Descárgate estos tres archivos que adjunto al final con los siguientes nombres:
-Pasto_pov_main, ini.
Pasto_pov_geom, inc.
Pasto_pov_mat, inc.
En este último puedes cambiar el material del pasto.
Los pones en el mismo directorio y el único que tienes que incluir en tu escena es pasto_pov_geom, inc.
Con esto creo una área de pasto como la de la figura.
https://www.foro3d.com/images/upload.../2005/12/2.png
En base a esto lo que hago es crear como una matriz de varias áreas de este objeto.
Uso las siguientes variables para definir la matriz de áreas con sus dimensiones (o repeticiones) en el eje X y el eje Z.
M_x=16; 16 objetos en x.
M_z=16; 16 en z.
Y con el código siguiente puedes obtener una imagen como esta.
https://www.foro3d.com/images/upload...005/12/123.jpg
Uso Rand para que el pasto no se muestre uniforme.
La escena Pov-Ray puedes hacerla como esta:
#include colors, inc.
#include textures, inc.
#include pasto_pov_geom, inc //archivo con la geometría del pasto.
Global_settings { //ajustes de gama y trazado.
Assumed_gamma 1.
Max_trace_level 10.
}.
//cámara.
Camera{location<3,2,-12>.
Lok_at <3,0,1>.
}.
Light_source{<500,500,-500> color RGB 1}.
//background.
Background { color RGB<0.9254902,0.9137255,0.8470588> }.
//un plano para el ejemplo.
Plane{y,0 pigment{rgb <.8.2.2>}}.
//ahora lo que hago es declarar variables para manejar semillas para Rand.
#declare r1 = sed(0).
#declare r2 = sed(2).
#declare r3 = sed(3).
#declare r4 = sed(3),//escalado en y.
//estas son las dimensiones de un área de pasto.
#declare m_x=16; //número de áreas a poner a lo largo del eje x.
#declare m_z=16; //número de áreas a poner a lo largo del eje Z.
//aquí hago la unión de varias áreas y hago uso de Rand para que el pasto no sea uniforme.
Union{.
#declare count_x=0; //declaro un contador de áreas en x.
#while (count_x<=m_x) //mientras count_x sea menor que el número de áreas que quiero en x.
#declare count_z=0; //declaro un contador de áreas en z.
#while (count_z<=m_z) //mientras count_x sea menor que el número de áreas que quiero en y.
Object{ //llamo al objeto pasto.
Pasto_ //llamo al objeto pasto_.
Scale 15 //lo escalo.
Rotate y*(Rand(r3)*180) //le doy una rotación aleatoria en el eje Y.
Scale y*(1+Rand(r4)*.5) //lo escalo aleatoriamente en el eje Y.
Translate<count_x+(-.35+Rand(r1)*.7),0, count_z+(-.35+Rand(r1)*.7)>.
Esto último es para posicionarlo aleatoriamente trasladándolo en cada paso en +/-.35 como máximo.
}.
#declare count_z=count_z+1; //incremento count_z.
#end //fin del while interno.
#declare count_x=count_x+1; //incremeto count_x.
#end // fin de while externo.
Translate x*-8 //y bueno este tralado lo puedes pasar por alto, lo puse para centrar el pasto con respecto a x.
}.
Espero te sirva. Saludos.
-- IMÁGENES ADJUNTAS --
https://www.foro3d.com/attachment.ph...chmentid=23952
Muchas gracias a todos. Creo que voy a usar el método de alexv. Yo también uso otros modeladores (el Blender no, por que es complicado) pero pretendía hacer la escena solo con pov. Saludos.