Tente 3D Wiki
Advertisement

Introducción[]

Cuando uno monta un modelo procura tener las piezas necesarias y una vez hecho le hace unas buenas fotos para mostrarlo a los demás. En Tente 3D el número o el color de las piezas no es un problema y cada vez son menos los tipos de pieza que faltan en su catálogo. Pero en lo que respecta a la foto del resultado, no es suficiente lo que ofrecen los editores (MLCad, LeoCAD) o el visor LDView.

El objetivo de este tutorial es obtener una imagen realista (un rénder) de nuestro modelo hecho con Tente 3D. Para ello se utilizarán los programas gratuitos POV-Ray y MegaPOV.

Colores especiales en LDraw[]

En el formato LDraw existen unos colores predefinidos que van asociados a un número de identificación. Entre ellos hay unos cuantos colores especiales que tienen en cuenta si la pieza es de goma, cromada o transparente. En los editores una goma blanca no se diferencia a simple vista de una pieza blanca, pero sí se nota cuando es plateada o cristalina. Y en los rénders que crearemos más adelante es importante que los colores hayan sido elegidos correctamente durante el montaje del modelo.

Cómo cambiar el color[]

  • MLCad: en el panel de colores (menú Edición -> Color, o bien letra C) aparece una casilla con el número del color. Por ejemplo, el color blanco (White) es el número 15.
  • LeoCAD: no parece que se pueda seleccionar el número del color, pero varios de los colores especiales están en su paleta de colores.
  • A pelo: abrir el fichero LDR o DAT con un editor de textos. Las líneas de las piezas comienzan con un "1" y su segundo número es el del color.

Gomas[]

No aparecen en la paleta de LeoCAD.

256 negra
273 azul
324 roja
375 gris
511 blanca


Cromados[]

En LeoCAD son los dos colores de la última columna de la paleta.

334 Dorado
383 Plateado


Transparentes[]

En LeoCAD son los colores rallados de la segunda fila.

21 fosforescente (brilla)
33 azul
34 verde
36 rojo
37 violeta
40 gris
41 cyan claro
42 lima fluorescente
45 rosa
46 amarillo
47 cristal transparente
57 naranja fluorescente


Además de estos colores estándar, con MLCad se pueden crear transparencias de cualquier color:

  • Elegir el color con el que estará tintada la pieza (blanco para los cristales transparentes y negro para los ahumados).
  • En el panel del color, pulsar el botón "Propios...".
  • En el desplegable que pone "Color Sólido" cambiar a "Color Transparente 24 bits".
  • Pulsar OK. Notar que ya aparece marcada la opción "Transparente" aunque sigue inaccesible.
  • Pulsar OK para confirmar y salir del panel de color.

Exportando desde LDView a formato POV-Ray[]

Ya tenemos orientado nuestro modelo en LDView con el punto de vista que deseamos. Este programa puede servir para conseguir un rénder rápido y básico (ver imagen al lado).

00 LDView

Rénder obtenido con LDView

Para exportar nuestro modelo al formato POV-Ray:

  1. Menú File -> Export...
  2. En el desplegable Tipo seleccionar la opción "POV: POV-Ray Scene File".
  3. Cambiar la carpeta de destino y el nombre del fichero si se quiere.
  4. Pulsar el botón Options... para mostrar todas las opciones de exportación (en negrita las más destacadas):
    • Quality: Normal
    • Aspect Ratio, : indiferente, lo determinará más tarde POV-Ray.
    • Include Floor: marcar si queremos que el modelo aparezca apoyado sobre una superficie lisa (suelo).
    • Reflections: marcado (las piezas reflejan parcialmente la luz).
    • Shadows: si se marca, las sombras que crean las fuentes de luz son visibles.
    • Fix mirrored stud logos: sólo relevante para piezas de Lego.
    • Top/Bottom include filename: dejar vacíos.
    • Primitive substitution: desmarcar, sólo relevante para piezas de Lego.
    • Seam Width: simula el hueco que hay entre piezas reales reduciendo su tamaño.
      • 0: no hay hueco entre las piezas
      • 0.5: valor por defecto que encoge en 0,2 mm el tamaño de cada únidad básica (8 mm).
      • Valores superiores pueden servir para destacar el hueco cuando el modelo está lejos y la resolución de la imagen es baja.
    • Edge Lines: marcar si se quiere que aparezcan pintados las aristas de las piezas, como en algunas instrucciones.
      • Conditional Edge Lines: pinta también el contorno de las piezas curvas. Recomendable marcarlo.
      • Edge line radius: las líneas son realmente cilindros muy finos que tienen radio. El valor por defecto de 0.15 equivale a un trazo real de 0,12 mm de grosor.
    • Native POV Geometry: desmarcar, sólo es relevante para piezas de Lego.
    • Resto de opciones: no modificar.
  5. Pulsar el botón OK para confirmar las opciones seleccionadas.
  6. Pulsar el botón Guardar para que comience el proceso de exportación.

Instalación de POV-Ray[]

Windows[]

El programa de instalación de POV-Ray se puede descargar desde la página http://www.povray.org/download/.

En la instalación para Windows no hay nada especial que comentar. Al final del proceso nos encontraremos un acceso directo en el escritorio y en el menú Inicio.

Linux[]

Mi encarecida recomendación:[]

Compilar e instalar la versión 3.7 beta para tu micro siguiendo este manual.[]

Si no quieres compilar puedes instalar los paquetes, pero tendrás la versión 3.6 que tiene algunas limitaciones.

Ubuntu/Debian[]

Desde consola teclea 'apt-get install povray povray-include' o bien busca estos paquetes con synaptic.

Es posible que haya que crear una carpeta con el siguiente comando:

mkdir -p $HOME/.povray/3.6/

donde 3.6 es la versión de povray, en todo caso si lo ejecuta sin hacer esto sale un error indicando la ruta completa de la carpeta a crear.

En las últimas versiones de Ubuntu, como por ejemplo la 12.04 LTS, por alguna extraña razón han retirado povray del repositorio oficial así que en ese caso nos tendremos que bajar estos archivos:

Una vez descargados todos los paquetes deb los instalamos con el comando:

sudo dpkg -i povray*.deb

Otras distribuciones[]

Descarga la versión adecuada desde http://www.povray.org/download/ y sigue las instrucciones que te indican en la página.

Rénder básico (sin conocimiento de código POV-Ray)[]

Windows[]

El programa POV-Ray se abre automáticamente haciendo doble clic sobre el fichero pov que se ha generado en el apartado anterior. A primera vista vemos que es un editor de código que puede asustar al principio, pero que no es necesario conocer/modificar para realizar un rénder básico:

  1. Seleccionamos el tamaño y la calidad de la imagen final en el desplegable que hay bajo la barra de botones. En este tutorial se ha utilizado la opción [640x480, AA 0.3].
    • La imagen final tendrá 640 píxeles de ancho y 480 de alto.
    • AA se refiere a antialiasing y mejora los contornos de los objetos (0.3 es el valor por defecto en POV-Ray). En caso contrario (opción No AA), los contornos aparecerán pixelados y menos realistas.
  2. Pulsamos el botón Run.
    • Aparece una ventana con el rénder a medida que se va generando
    • Desde POV-Ray podemos pausar el proceso (botón Pause), muy útil cuando en un momento concreto queremos hacer otra cosa con el ordenador pues el renderizado requiere la cpu del ordenador al máximo.
    • Si no estamos contento con lo que estamos viendo, podemos parar el proceso con el botón Stop.
  3. En la misma carpeta del fichero pov aparecerá una imagen con el mismo nombre. En Windows el formato es BMP y en otros sistemas suele ser TGA. Si se ha parado antes de tiempo el rénder, en la imagen estará lo que se haya generado hasta entonces.

A continuación podemos ver varios ejemplos dependiendo de las opciones que se eligieron al exportar desde LDView:


01 liso

Sin huecos ni bordes

02 bordes

Con bordes

03 huecos

Con huecos (seam=1)

En los tres casos hay suelo y las sombras están activadas. El cielo (no se ve directamente en la imagen) es de color blanco, el mismo que el fondo que teníamos en LDView.

Los defectos de estas imágenes son que la pieza transparente es opaca y que las piezas metálicas parecen reflejar demasiada luz. Esto lo iremos mejorando en los sucesivos apartados.

Linux[]

Para generar el render teclead desde consola: povray nombredelfichero.pov

Con el comando man povray puede obtener ayuda extra para conseguir otras salidas.

Focos de luz[]

En la escena que obtuvimos con LDView hay tres focos de luz que podemos apagar o recolocar:

  • Foco 1: delante del vehículo, formando un ángulo de 45º con respecto al suelo.
  • Foco 2: a la izquierda, 30º hacia atrás, y 30º con respecto al suelo. Es una luz baja.
  • Foco 3: detrás, 60º a la derecha del vehículo, y 60º con respecto al suelo. Es una luz casi cenital.


04 UnaLuz 1

Foco 1

04 UnaLuz 2

Foco 2

04 UnaLuz 3

Foco 3

En este ejemplo, el vehículo nos mira de frente cuando lo vemos en la vista frontal de MLCad. Si por alguna razón montamos nuestro modelo con otra orientación, los focos estarán girados, pero mantendrán sus posiciones/ángulos relativos.


Para obtener las anteriores imágenes hemos tenido que modificar el código del fichero POV-Ray. Las luces están tras la línea

// Lights

Cada luz ocupa un bloque de 6 líneas (se han sustituido algunas líneas con puntos suspensivos por motivos de claridad):

#ifndef (LDXSkipLight1)
...
...
    color rgb <1,1,1>
}
#end

En la primera línea de cada bloque aparece la palabra LDXSkipLight1, LDXSkipLight2 o LDXSkipLight3 que nos va a servir para identificar cada foco de luz.

Eliminación de focos de luz[]

Se puede hacer de dos maneras:

  1. Borrando las líneas de código de los focos de luz que no necesito.
  2. Desactivando las líneas de código de los focos.

La desactivación es lo que en el argot se llama "comentar el código" y en POV-Ray se hace como en el lenguaje de programación C. Consiste en poner al comienzo del código los caracteres /* y al final del código los caracteres */. Por ejemplo, para desactivar/comentar el foco 1 el código quedaría así (y en color verde):

/*
#ifndef (LDXSkipLight1)
light_source {    // Latitude,Longitude: 45,0,LDXRadius*2
    <0*LDXRadius,-1.414214*LDXRadius,-1.414214*LDXRadius> + LDXCenter
    color rgb <1,1,1>
}
#end
*/

La ventaja de comentar código es que si más tarde lo volvemos a necesitar basta con borrar los /* y */ para que vuelve a estar activo, sin tener que volver a escribirlo.

Si no quieres usar focos de luz, comenta/borra el código de los tres focos y salta directamente al apartado de Radiosity.

Recolocando un foco de luz[]

Tal como está escrito el código de los focos, no es fácil recolocarlos. Lo mejor es comentarlos/eliminarlos y añadir el siguiente código por cada foco que se quiera usar:

light_source {
    <0,0,-2*LDXRadius>
    color rgb <1,1,1>
    rotate <-45, 30, 0>
    translate LDXCenter
}

En el código anterior la luz está a 45º sobre el suelo y 30º hacia la derecha. Sólo hay que cambiar los números de la línea del rotate para conseguir otras orientaciones:

  • rotate <0, 0,0>: delante del vehículo.
  • rotate <-90,0,0>: encima del vehículo.
  • rotate <-30,-90,0>: 30º sobre el suelo justo a la derecha,.
  • rotate <-45,0,0>: idéntica al foco 1.
  • rotate <-30,-120,0>: foco 2.
  • rotate <-60,120,0>: foco 3.

Luces sin sombras[]

Si al exportar desde LDView olvidaste desactivar la opción Shadows (elimina las sombras), sólo tienes que añadir la palabra shadowless a la línea que empieza por color:

color rgb <1,1,1> shadowless

Desaparecerán las sombras, pero también los destellos de luz en las superficies curvas, como sucede en la cúpula.


Textura metalizada[]

La textura que crea LDView para las piezas metálicas resulta demasiado luminosa. El código que controla dicha textura empieza con las siguientes líneas:

#macro LDXChromeColor(r, g, b)
#if (version >= 3.1) material { #end
    texture {
        pigment { rgbf <r,g,b,0> }
#if (LDXQual > 1)
        finish { ambient LDXAmb diffuse LDXDif }
        finish { phong LDXPhong phong_size LDXPhongS reflection LDXChromeRefl brilliance ...

Basta con cambiar las dos últimas líneas por las siguientes:

        finish { ambient 0 diffuse LDXDif }
        finish { reflection LDXChromeRefl }

Por otro lado, la reflectividad de la textura metalizada viene dada por la línea:

#declare LDXChromeRefl = 0.85;

Con un valor de 1.0 sería un espejo perfecto. En este tutorial vamos a usar el valor 0.95.

#declare LDXChromeRefl = 0.95;

Radiosidad: más realismo[]

El cálculo de la radiosidad (radiosity) produce imágenes más realistas que las vistas hasta ahora, pero requiere más tiempo de cálculo. En nuestro ejemplo vamos a comentar/eliminar todas las fuentes de luz, con lo que la iluminación proviene del cielo blanco y la luz que rebota en cada objeto. El resultado es parecido al de meter nuestro modelo en una "caja de luz". Primero veremos los resultados con los valores predefinidos que trae POV-Ray. Mas tarde utilizaremos parámetros personalizados.

Radiosidad predefinida[]

Al principio de nuestro fichero pov, justo después de la línea verde que acaba en "...further details.", insertamos las siguientes líneas de código:

#include "rad_def.inc"
global_settings {
   radiosity {
      Rad_Settings(Radiosity_Debug, off, off)
   }
}

De este modo podremos utilizar una serie de radiosidades predefinidas que podrían ser suficiente para lo que queremos. Basta con cambiar la palabra "Radiosity_Debug" con cualquiera de las siguientes:

  • Radiosity_Debug: el rénder es rápido, el resultado no es bueno, sólo sirve para comprobar posibles problemas.
  • Radiosity_Fast: no tan rápida, pero mejora el resultado.
  • Radiosity_Normal: valores por defecto.
  • Radiosity_2Bounce: como el Normal, pero considerando dos rebotes en la luz.
  • Radiosity_Final: alta calidad que costará mucho tiempo de cálculo.
  • Radiosity_OutdoorLQ: escena en exteriores sin focos de luz (baja calidad para ahorrar tiempo).
  • Radiosity_OutdoorHQ: como la anterior, pero de alta calidad (mucho tiempo de cálculo).
  • Radiosity_OutdoorLight: escena en exteriores con un foco de luz (sol).
  • Radiosity_IndoorLQ: escena en interiores (baja calidad).
  • Radiosity_IndoorHQ: escena en interiores (alta calidad, si bien depende de cada escena).

06 rad Debug

Radiosity_Debug

06 rad Fast

Radiosity_Fast

06 rad Normal

Radiosity_Normal

06 rad 2Bounce

Radiosity_2Bounce

06 rad Final

Radiosity_Final

06 rad OutLQ

Radiosity_OutdoorLQ

06 rad OutHQ

Radiosity_OutdoorHQ

06 rad OutLight

Radiosity_OutdoorLight

06 rad IndLQ

Radiosity_IndoorLQ

06 rad IndHQ

Radiosity_IndoorHQ

En los resultados anteriores, además del diferente brillo de las piezas, se puede observar que la semicúpula blanca presenta en algunos casos como manchas o parches. En la opción Debug se ve claramente y por eso esta opción sirve para ver qué parte de nuestra escena va a dar más problemas. Entre la Fast y la Normal hay una mejora en los neumáticos. La 2Bounce produce piezas más iluminadas, pero las metalizadas aparecen quemadas (la culpa es del blanco puro del cielo). La Final no aporta una mejora con respecto a la Normal en esta escena. La OutdoorLQ presenta tonos rojos (artefactos) en la semicúpula blanca que desaparecen en la versión de alta calidad (OutdoorHQ). La versión OutdoorLight es peor que la LQ, quizás porque esta escena no tiene ningún foco de luz. Las versiones Indoor son más luminosas y de nuevo se nota la diferencia de calidad entre la LQ y la HQ.

Radiosidad personalizada[]

Si ninguno de los valores predefinidos de la radiosidad nos resulta razonable, podemos utilizar una radiosidad personalizada asignando valores a los diferentes parámetros que la definen. En lugar del código del código del apartado de radiosidad predefinida vamos a insertar lo siguiente al principio de nuestro fichero pov:

global_settings {
    radiosity {
      pretrace_start 0.08
      pretrace_end   0.01
      count 500
      nearest_count 10
      error_bound 0.02
      recursion_limit 1
      low_error_factor 0.2
      gray_threshold 0.0
      minimum_reuse 0.015
      brightness 1
      adc_bailout 0.01/2
    }
  }
06 radiosity

Radiosidad personalizada

El rénder puede llegar a costar más de una hora dependiendo de la potencia de nuestro ordenador. Si lo comparamos con los predefinidos encontramos que:

  • Los parches son sólo pequeñas motas en la semicúpula blanca.
  • Alrededor de las ruedas vemos zonas algo más sombreadas (más realista) ya que las ruedas impiden que llegue toda la luz difusa del entorno.
  • Las piezas metálicas siguen estando algo quemadas, pero es por culpa del blanco puro del cielo.

Una de las pegas de esta escena es que el reflejo del cristal y otras piezas es muy aburrido, ya que salvo por las piezas que se reflejan sobre otras, lo demás no es más que un cielo blanco y un suelo gris. En el apartado de iluminación HDR solucionaremos este aspecto.

Textura de cristal[]

Al igual que sucedía con la textura metalizada, el código generado por LDView para las piezas transparentes no funciona bien. La siguiente corrección se puede hacer desde el primer momento (es independiente de que se use radiosidad o no).

Buscamos la línea con el código

#macro LDXTransColor(r, g, b)

y cuatro líneas más adelante nos encontraremos lo siguiente:

        finish { ambient LDXAmb diffuse LDXDif }
        finish { phong LDXPhong phong_size LDXPhongS reflection LDXTRefl }

Esas dos líneas hay que cambiarlas por estas otras:

        finish { ambient 0 diffuse LDXDif }
        finish { reflection LDXTRefl }
07 cristal

Transparencia corregida

Si se van a utilizar focos de luz, la segunda línea se puede dejar intacta, ya que esta corrección elimina el truco de los destellos de brillo.

En la imagen de al lado se ha utilizado la misma escena del apartado anterior: sin focos de luz y con radiosidad personalizada.

Ahora la pieza de cristal ya tiene transparencia y puede verse a través del mismo la base de la semicúpula blanca.

Para conseguir un cristal totalmente transparente, el color de la pieza debe ser blanco en lugar del gris oscuro que se ha utilizado en la semicúpula.

En piezas con más grosor (por ejemplo, en los tetones de jácenas transparentes) se pueden ver los efectos de refracción típicos de un cuerpo transparente.

Iluminación HDR[]

Es muy difícil simular un entorno real sólo con unos pocos focos de luz y un cielo aburrido. Si bien en POV-Ray se pueden crear cielos más complejos, lo mejor es usar iluminación HDR, que consiste en una imagen de alto rango dinámico de un entorno (real o sintético).

Las imágenes HDR (HDRi) se pueden crear a partir de fotos de un entorno real o bien de forma artificial con un programa 3D. Afortunadamente en la Red hay imágenes HDR disponibles (la mayoría se descargan usando el enlace Download que hay en la misma página):

  1. Imágenes sintéticas creadas por Zbyg que simulan diferentes entornos de iluminación.
  2. Imágenes reales y sintéticas creadas por Dan Meyer.
  3. Imágenes de cielos por just-Nate.
  4. Fondos reales de accustudio (pulsar en el icono de la caja que acompaña cada imagen).
  5. Imágenes reales de Keith Bruns.
    • http://unparent.com
    • Ir al menú photography -> HDR probes.
    • Elegir una de las bolas pequeñas y hacer clic sobre la versión grande si queremos descargarla.

Este tipo de imágenes suelen aparecen de dos formas diferentes:

  • Rectángular: son como mapamundis que abarcan 360º en horizontal y 90º hacia arriba y hacia abajo.
  • Circular: son fotos de bolas metálicas que abarcan el mismo ángulo que las rectangulares.

Cualquiera de los dos tipos es igual de válido, sólo se diferencian en el tipo de proyección empleado.

Hasta la versión 3.7, POV-Ray no estaba preparado para este tipo de imágenes y en su lugar se usaba una modificación llamada MegaPOV que sí incluía la opción de iluminación HDR. A continuación indicamos cómo usar iluminación HDR en ambos programas.

Iluminación HDR con POV-Ray 3.7[]

Aunque la versión 3.7 todavía está en fase beta (la oficial de momento sigue siendo la 3.6), es totalmente funcional y además permite utilizar todos los núcleos de nuestra CPU, es decir, los renders se generan en menos tiempo. Además hay versión para ordenadores de 32 bits y 64 bits. Por eso es recomendable utilizar la versión 3.7 en lugar de la 3.6 o MegaPOV.

Instalación de POV-Ray 3.7[]

Código en POV-Ray 3.7[]

En el editor añadimos al principio, antes del bloque de la radiosidad, el siguiente código:

#version 3.7;

sky_sphere{
  pigment{
    image_map{
      exr "studio032.exr"
      map_type 1 interpolate 2
    }
  }
  rotate 180*z
  rotate 220*y 
}

El bloque "sky_sphere" es una "esfera celeste" muy lejana sobre la que se ha proyectado la imagen HDR. Algunos parámetros se pueden personalizar:

  • Se pueden usar imágenes en formato "hdr" y "exr". Sólo hay que indicarlo debajo de la línea "image_map". A continuación se indica el nombre de la imagen HDR, que debe estar en la misma carpeta que el fichero pov.
  • Si la imagen HDR no es rectangular, sino un círculo, entonces hay que usar "map_type 7".
  • La línea "rotate 220*y" sirve para girar la esfera celeste de modo que si hay un sol en ella, éste quede iluminando la escena por delante, a la derecha, etc.

A la hora de comprobar cómo afectan los cambios en esos parámetros es mejor desactivar el bloque de la radiosidad para acelerar el rénder. Para ello sólo hay que comentar el código colocando un /* antes de "global_settings {" y un */ después del último "}" del bloque de radiosidad.

Mejora del brillo y los colores[]

Los siguientes consejos también se pueden aplicar en los apartados anteriores, pero es con la iluminación HDR y la radiosidad cuando más se notan los problemas que vamos a solucionar.

En primer lugar, como las piezas son espejadas y se está usando la radiosidad, es recomendable cambiar las tres líneas:

#declare LDXAmb = 0.4;
#declare LDXDif = 0.4;
...
#declare LDXPhong = 0.5;

por las siguientes:

#declare LDXAmb = 0;
#declare LDXDif = 1;
...
#declare LDXPhong = 0;


Respecto a los colores básicos, el negro es algo grisáceo, el rojo tiende al rosa y otros problemas similares. Si se usa alguno de estos colores o el color goma de rueda, aparecerán algunas de estas líneas:

#declare LDXColor0 = LDXOpaqueColor(0.129412,0.129412,0.129412)
...
#declare LDXColor1 = LDXOpaqueColor(0,0.2,0.698039)
...
#declare LDXColor4 = LDXOpaqueColor(0.768627,0,0.14902)
...
#declare LDXColor256 = LDXRubberColor(0.129412,0.129412,0.129412)

que hay que cambiar por las siguientes:

#declare LDXColor0 = LDXOpaqueColor(0.0129412,0.0129412,0.0129412)
...
#declare LDXColor1 = LDXOpaqueColor(0,0,0.8698039)
...
#declare LDXColor4 = LDXOpaqueColor(1,0,0.014902)
...
#declare LDXColor256 = LDXRubberColor(0.0129412,0.0129412,0.0129412)

En el caso de las cúpulas transparentes negras, tenemos que buscar una línea que contenga "= LDXTransColor(" y cambiar los tres números del final de esa línea por tres ceros o tres valores bajos como por ejemplo 0.1.

Con todos estos cambios, aplicando una radiosidad de tipo "Radiosity_OutdoorHQ" y utilizando diferentes tipos de iluminación HDR obtenemos los siguientes resultados:

08 AstroSencillo pov37 hdr04

studio004

08 AstroSencillo pov37 hdr08

studio008

08 AstroSencillo pov37 hdr15

studio015

Iluminación HDR con MegaPOV[]

Esta sección se conserva por ser el método que antiguamente se usaba para iluminación HDR. Sin embargo es mejor utilizar POV-Ray 3.7 en lugar de MegaPOV (ver sección anterior).

Instalación de MegaPOV[]

La instalación de MegaPOV no tiene nada de especial y el único requisito es que debe haberse instalado antes POV-Ray.

  1. Descargamos MegaPOV en el apartado Download de su sitio web.
    • Windows: descomprimimos el ZIP en la carpeta donde esté instalado POV-Ray.
    • Linux: además del código fuente existe una versión compilada para x86 y otra para AMD64.
  2. Ejecutamos MegaPOV.
    • Windows: ejecutamos el programa MPENGINE.EXE que encontraremos en la carpeta BIN.
    • Linux: (en construcción).

Código en MegaPOV[]

En el editor de MegaPOV añadimos al principio, antes del bloque de la radiosidad, el siguiente código:

#version unofficial megapov 1.1;

sphere {0,10000000
  pigment { image_map { hdr "studio004.hdr" once interpolate 2 map_type 1 } } 
  finish { ambient 1 diffuse 0 }
  scale <-1,1,1>
  rotate -90*y
  hollow
}

La primera línea es para dejar claro que el fichero pov ya no es compatible con POV-Ray.

El resto del código crea una gran esfera hueca sobre cuya superficie se proyecta la imagen HDR. Algunos parámetros se pueden personalizar:

  • Tras "hdr" se indica la imagen HDR. En el ejemplo se ha usado la imagen studio004.hdr del pack 1 de Zbyg.
  • Si la imagen HDR no es rectangular, sino un círculo, entonces hay que usar "map_type 7".
  • Para cambiar la luminosidad de la esfera sólo hay que aumentar o reducir el valor que va tras "ambient"
  • La línea "rotate ..." gira la esfera alrededor de nuestro modelo. En el ejemplo, las paredes más brillantes quedan delante y detrás del vehículo al girar la esfera -90º.

A la hora de comprobar cómo afectan los cambios en esos parámetros es mejor desactivar el bloque de la radiosidad para acelerar el rénder. Para ello sólo hay que comentar el código colocando un /* antes de "global_settings {" y un */ después del último "}" del bloque de radiosidad.

A continuación puede verse el resultado con varias imágenes HDR y con la radiosidad activada:

08 megapov hdr04

studio004

08 megapov hdr08

studio008

08 megapov hdr15

studio015

Las imágenes son algo oscuras (habría que aumentar el brillo con el parámetro "ambient"), pero los reflejos son realistas y las partes metálicas no aparecen quemadas.

Otras mejoras[]

Suelo espejado[]

Si queremos que la mesa o suelo sobre el que se apoya nuestro modelo sea reflectante, sólo hay que cambiar el código que hay al final del fichero. Esto es válido también para POV-Ray (si no hay código exclusivo de MegaPOV como el de la iluminación HDR).


Antes:

// Floor
#if (LDXFloor != 0)
object {
    plane { LDXFloorAxis, LDXFloorLoc hollow }
    texture {
        pigment { color rgb <LDXFloorR,LDXFloorG,LDXFloorB> }
        finish { ambient LDXFloorAmb diffuse LDXFloorDif}
    }
}
#end

Después:

#include "textures.inc"
// Floor
#if (LDXFloor != 0)
object {
    plane { LDXFloorAxis, LDXFloorLoc hollow }
    texture {
      Chrome_Metal
      finish { ambient LDXFloorAmb diffuse LDXFloorDif reflection .25 }
   }
}
#end

El resultado es una superficie cromada cuya reflectividad viene controlada por el valor que acompaña a "reflection".


En la siguiente imagen se ha utilizado radiosidad y la imagen HDR "Factory Lighting" de la web accustudio con ambient 2.

09 mesa

Superficie líquida[]

Una superficie líquida no es más que una cromada con turbulencias para simular las olas, siempre que no se esté teniendo en cuenta la transparencia del agua. Este tipo de superficies resultan adecuadas para los barcos.


El código para el suelo debe quedar así:

#include "textures.inc"
// Floor
#if (LDXFloor != 0)
object {
    plane { LDXFloorAxis, LDXFloorLoc hollow }
    texture { Polished_Chrome }
    normal {
        bumps 0.03  *25
        scale <1, 0.25, 0.25> *25
        turbulence 0.6
    }
}
#end

Se pueden modificar varios parámetros:

  • bumps: es el tamaño de los baches que simulan las olas. El factor global *25 se debe a la escala LDraw.
  • scale: son tres factores de escala, uno para cada eje. El factor global *25 se debe a la escala LDraw.
  • turbulence: distorsiona los baches para que no se note que siguen una pauta regular.

Por otro lado, si no tenemos a mano una imagen HDR de un cielo real, nos podemos apañar con el foco de luz 1 (activarlo si está comentado) y con un fondo artificial de cielo (añadir al final de todo el código):

sky_sphere{ pigment{ Blue_Sky scale 3} }
10 mar

Con radiosidad, sin HDR.


Suelo de madera[]

El código para el suelo debe quedar así:

// Floor
#if (LDXFloor != 0)
#include "woods.inc"
object {
   plane { LDXFloorAxis, LDXFloorLoc hollow }
        texture {
         T_Wood6
         scale 2*3000/6
         rotate y*30
         translate x*1
         finish {
            ambient LDXFloorAmb  
            diffuse LDXFloorDif  
            reflection { 0.031, .21 }
          }
        }
   }
}
#end

Se pueden modificar varios parámetros:

  • T_Wood6: hay 35 tipos de madera, desde T_Wood1 hasta T_Wood35.
  • scale: para cambiar el tamaño del veteado de la madera.
  • rotate: para girar el veteado.
  • reflection: para que la mesa sea algo espejado. Si se elimina esa línea, la mesa será mate.

La siguiente imagen ha sido realizada con los parámetros indicados en el apartado de "Iluminación HDR con POV-Ray 3.7".

Combi1-6

Combi 1 6

Advertisement