pues una vez confirmado que no hay problemas con MegaPOV ahora nos queda aplicar mapas HDRI a nuestras escenas de Eagle 3D, siguiendo básicamente las instrucciones dadas por Jaime Vives en su web (
http://www.ignorancia.org/es/index.php?page=eagle3d ).
pero antes vamos a preparar un poco el terreno:
- cargo en Eagle la pcb que quiero pasar a una imagen 3D y me aseguro en el Panel de Control de Eagle 3D que no se mostrará la imagen de entorno (el típico fondo marino...) y que en la pestaña 'Color' esté seleccionado un perfil de color predeterminado, ya que la opción 'Definido por usuario' genera un código pov diferente. en mi caso usaré el perfil por defecto (FR4 con Máscara de Soldadura (Muecke)) y como pcb demo3.brd localizada en la carpeta tutorial de Eagle y no MoDsMega.brd para evitar tiempo de render.
- a continuación, en POVRay verifico que no falten componentes y que el punto de vista elegido sea el correcto. no pasaré al trabajo con MegaPOV antes de dar por terminado el trabajo en POVRay. recordar que si necesitamos modificar algo en Eagle o Eagle 3D el archivo será sobreescrito y los cambios se perderán...
- necesito el mapa HDRI que Jaime usa en su código, de manera que lo descargo del enlace que nos proporciona (cocina) y lo copio a la carpeta donde se haya el archivo .pov a renderizar.
- descargo una imagen para el fondo desde Accustudio o similar. en mi caso lo hago desde esta dirección:
http://textures.forrest.cz/ y es la primera imagen de la categoría 'marble'... únicamente por hacerlo diferente. la copio igualmente a la carpeta del archivo .pov
y ahora paso por fin a MegaPOV...
- abro el archivo y añado un par de barras de comentario a la línea '#version 3.5;' para dejarla en '//#version 3.5;'
- copio a continuación el código del primer recuadro proporcionado por Jaime Vives en la línea siguiente:
//#version 3.5;
#version unofficial MegaPov 1.21;
// radiosity control
...
global_settings {
...
// default finish for all textures:
...
// HDRI environment
...
hago unos pequeños cambios en la imagen de fondo, así que este código:
// wood table
plane{y,-3
texture{
pigment{image_map{jpeg "oakdoor.jpg"}} // use any jpg of your choice
normal{bump_map{jpeg "oakdoor.jpg"}}
finish{reflection{0,.1}}
translate -.5 rotate <90,90,0> scale <10,10,5>*30
}
}
se queda así:
// fondo de mármol
plane{y,-3
texture{
pigment{image_map{jpeg "ambrosia.jpg"}} //jpeg descargado previamente
//normal{bump_map{jpeg "ambrosia.jpg"}} //prescindo de esta línea al tratarse de una superficie pulida
finish{reflection{0,.1}}
translate -.5 rotate <90,90,0> scale <10,10,5>*10 //cambio la escala para adaptarla al tamaño de la imagen
}
}
desciendo a continuación por el código hasta localizar las luces y les añado una apertura y cierre para que lo tome como comentarios, quedando así:
/*
light_source{<lgt1_pos_x,lgt1_pos_y,lgt1_pos_z> White*lgt1_intense}
light_source{<lgt2_pos_x,lgt2_pos_y,lgt2_pos_z> White*lgt2_intense}
light_source{<lgt3_pos_x,lgt3_pos_y,lgt3_pos_z> White*lgt3_intense}
light_source{<lgt4_pos_x,lgt4_pos_y,lgt4_pos_z> White*lgt4_intense}
*/
ahora guardo el archivo y renderizo (Run) para que me lleve al error de 'environment'. en la versión 1.10RC3 de Eagle 3D esa variable ha sido renombrada a 'env' pero se sigue conservando su definición en el archivo user.inc. le cambiamos el nombre tal como sugiere Jaime y lo intentamos de nuevo para obtener algo parecido a esto:
no hay texturas todavía definidas o cambiadas en los .inc de Eagle 3D y por ello no tenemos el realismo que esperábamos, pero esta imagen nos certifica que se están aplicando las cosas de manera correcta.
veremos después los problemas que nos pueden surgir en función de como hayamos configurado Eagle 3D->POVRay y alguna que otra cosilla más
un saludo