Donación de Rafael Angel Campos Vargas, en el año 2013, a la Biblioteca de objetos de POV-Ray. Este proyecto se encuentra actualmente inscrito con la patente LGPL; para libre uso comercial y no comercial del software.
The primary purpose of this collection is to make items publicly available under a common license that permits use, modification and re-distribution. To support this contributions are donated to the collection with consent for their use under the terms of the Creative Commons - Lesser General Purpose License (CC-GNU LGPL).
Chris Bartlett 2007
La versión actual v1.0 de "ILFD.inc" (InstrumentalLaboratorioFantasiaDomestico) dibuja un laboratorio imaginario, los aparatos y diseños son ficticios. Lamentablemente esta versión es muy poco versátil, no obstante, permite modificar las texturas con facilidad. No es compatible con PovRay 3.1.
A parte de su valiosa y suficiente importancia pedagógica y académica. ¿Para qué sirven las funciones #include "functions.inc" en videos 3D?. Con esta pregunta en mente me propuse el siguiente "juego". Con su calculadora y la tecla "random", elija sin reemplazo cuatro figuras del archivo "funcions.inc" al azar y diseñe un aparato para un laboratorio del universo imaginario. Se permite agregar algunos cilindros, esferas y cajas sin abusar. El resultado fue decepcionante; pero decidí que en vez de distribuir feas figuras individualmente debería acomodarlas como un conjunto... y este archivo fue lo que resultó.
Incorporé además funciones del subdirectorio objects\quartic\*.pov de las distribución POV-Ray 3.5. cuyo autor fue Alexander Enzmann. Se puede considerar que son copia casi textual y yuxtapuesta de los ejemplos.
Indice de página:
- Instalación de Archivos
- Instrucciones básicas
- Características del objeto
- Modificadores
- Notas y Advertencias
- Sugerencias de modificación
- Sobre LibreN3D
Instalación de Archivos
El procedimiento siguiente es completamente optativo, corresponde simplemente al estándard de la Biblioteca de objetos POV-Ray.Nota: El archivo de prueba "ILFD.pov" puede ejecutarse sin ningún proceso de instalación. Unicamente debería estar ubicado en el mismo folder que "ILFD.inc".
- Cree el subdirectorio "ObjectCollections". Se sugiere un subdirectorio del folder POV-Ray, creado por el instalador en algunas versiones en la sección de documentos o bien en la de código.
- Copie el archivo "ILFD.inc" en dicho subdirectorio; únicamente éste es necesario. En cuanto a la documentación y demás puede colocarla si desea en el mismo subdirectorio, el estándar ha sido diseñado para evitar problemas de compatibilidad.
- Actualice los archivos buscados por POV-Ray, en algún archivo ini pertinente. Por ejemplo "POVRay.ini"; agregue el comando Library_Path="C:\FDOS\POVRAY31\ObjectCollections"; o el que corresponda a su sistema operativo. POV-Ray ofrece muchas formas de realizar esto. Si no sabe cómo, probablemente convenga leer el manual de referencia en la sección "Command-line options". Cada sistema operativo presenta sus propias variantes.
Instrucciones básicas
Muy fácil de usar, tan simple como incluir el archivo y ubicar el objeto. El siguiente ejemplo ilustra el procedimiento básico.
![]()
#include "stdinc.inc" #include "stdcam.inc" #include "ILFD.inc" object { ILFD_Laboratory(200) translate <-1.21875,0.34375,-3.375> }La macro tiene un parámetro únicamente:
#macro ILFD_Laboratory( Semilla )
- Semilla :
- Para inicializar el generador de números aleatorios, mismo valor genera el mismo dibujo.
Características del objeto
Mis dibujos están en unidades L (Lisa). 1 L equivale a 0.055063 pulgadas definido como 0.001 para POVRAY. El objeto default tiene las siguientes características:Alto total : 1425*L Fondo : 500*L aprox Frente : -1220*L..1000*LSe dibuja casi centrado en Z sobre el plano XZ. El frente sobresale en dirección Z-, con gravedad Y-.Se generan las siguientes declaraciones que no deberían modificarse. Para su correcta modificación consultar la sección Modificadores.
- ILFD_TexturaCrisol
- Textura del crisol de porcelada.
- ILFD_TexturaPistilo
- Textura del pistilo del crisol de porcelana.
- ILFD_TexturaContacto
- Textura para la zona de contacto crisol y pistilo.
- ILFD_TexturaMadera
- Textura para las repisas del laboratorio.
- ILFD_TexturaSoporteDestiladores
- Textura para la base del destilador.
- ILFD_TexturaTapa
- Textura de las tapas del horno magnético.
- ILFD_MaterialEspiral
- Material de la espiral del horno magnético.
- ILFD_MaterialCilindro
- Material del vidrio del horno magnético y de los perfiles de vidrio libres.
- ILFD_MaterialDestilador
- Material principal del destilador.
- ILFD_MaterialCuelloDestilador
- Material del colector del destilador.
- ILFD_TexturaAgarre
- Textura de agarre de la espiral del horno magnético.
- ILFD_MaterialMagneto
- Material del magneto del horno.
- ILFD_MaterialSuperior6
- Material del descanso superior del colector distribuidor de flujo.
- ILFD_MaterialSoporte6
- Material de la capa del colector distribuidor de flujo.
- ILFD_MaterialExtractor6
- Material del generador de vacío.
- ILFD_MaterialPata6
- Material de los colectores del colector distribuidor de flujo.
Modificadores
La siguiente es la lista de los modificadores permitidos en la unidad.
#declare ILFD_DefaultTexturaCrisol = texture { ... }Textura a aplicar al crisol de porcelana.
#declare ILFD_DefaultTexturaPistilo = texture { ... }Textura del pistilo para el crisol de porcelana.
#declare ILFD_DefaultTexturaContacto = texture { ... }Textura para la zona de contacto crisol y pistilo.
#declare ILFD_DefaultTexturaMadera = texture { ... }Textura para las repisas del laboratorio.
#declare ILFD_DefaultTexturaSoporteDestiladores = texture { ... }Textura para la base del destilador.
#declare ILFD_DefaultTexturaTapa = texture { ... }Textura de tapas del horno magnético.
#declare ILFD_DefaultMaterialEspiral = material { ... }Material de espiral del horno magnético.
#declare ILFD_DefaultMaterialCilindro = material { ... }Material del vidrio del horno magnético, y de los perfiles de vidrio libres.
#declare ILFD_DefaultMaterialDestilador = material { ... }Material principal del destilador.
#declare ILFD_DefaultMaterialCuelloDestilador = material { ... }Material del colector del destilador.
#declare ILFD_DefaultTexturaAgarre = texture { ... }Textura de agarre de la espiral del horno magnético.
#declare ILFD_DefaultMaterialMagneto = material { ... }Material del magneto del horno.
#declare ILFD_DefaultMaterialSuperior6 = material { ... }Material del descanso superior del colector distribuidor de flujo.
#declare ILFD_DefaultMaterialSoporte6 = material { ... }Material de la capa del colector distribuidor de flujo.
#declare ILFD_DefaultMaterialExtractor6 = material { ... }Material del generador de vacío.
#declare ILFD_DefaultMaterialPata6 = material { ... }Material de los colectores del colector distribuidor de flujo.
#declare ILFD_BanderaTexto = on;Valor "on" visualiza el texto, "off" no lo dibuja.
#declare ILFD_Texto = "f(x)"Texto decorativo del estante de laboratorio.
#declare ILFD_FactorXTexto = 1.0;Valor fraccionario para variar proporcionalmente el largo de la barrita horizontal de soporte del texto.
#declare ILFD_TranslateTexto = <0,0,0>;Para corregir la posición del texto con un translate adicional.A manera de ejemplo del uso de los modificadores:
#include "stdinc.inc" #include "stdcam.inc" #include "textures.inc" #include "ILFD.inc" #declare ILFD_BanderaTexto = off; #declare ILFD_DefaultTexturaCrisol = texture { pigment { Blue } } #declare ILFD_DefaultTexturaPistilo = texture { pigment { Cyan } } #declare ILFD_DefaultTexturaContacto = texture { pigment { Yellow } } #declare ILFD_DefaultTexturaMadera = texture { average texture_map { [ 0.5 ILFD_TexturaMadera ] [ 0.5 Rust ] } } #declare ILFD_DefaultTexturaSoporteDestiladores = texture { pigment { Blue } } #declare ILFD_DefaultTexturaTapa = texture { pigment { Red } } #declare ILFD_DefaultMaterialEspiral = material { texture { pigment { Yellow } } } #declare ILFD_DefaultMaterialCilindro = material { texture { pigment { Yellow transmit 0.80 } } } #declare ILFD_DefaultMaterialDestilador = material { texture { pigment { Yellow } } } #declare ILFD_DefaultMaterialCuelloDestilador = material { texture { pigment { Red } } } #declare ILFD_DefaultTexturaAgarre = texture { pigment { Red } } #declare ILFD_DefaultMaterialMagneto = material { texture { pigment { Green } } } #declare ILFD_DefaultMaterialSuperior6 = material { texture { pigment { Cyan } } } #declare ILFD_DefaultMaterialSoporte6 = material { texture { pigment { Gray50 } } } #declare ILFD_DefaultMaterialExtractor6 = material { texture { pigment { Blue } } } #declare ILFD_DefaultMaterialPata6 = material { texture { pigment { Gold } } } object { ILFD_Laboratory(200) translate <-1.21875,0.34375,-3.375> }Y otro ejemplo más:
#include "stdinc.inc" #include "stdcam.inc" #include "ILFD.inc" #declare ILFD_BanderaTexto = on; #declare ILFD_Texto = "POV-Ray"; #declare ILFD_FactorXTexto = 8.5; #declare ILFD_TranslateTexto = -0.2*y; object { ILFD_Laboratory(200) translate <-1.21875,0.34375,-3.375> }
Notas y Advertencias
Se produce superposición de objetos con frecuencia. Podría ser útil probar varios valores semilla para disminuir el efecto.El objeto inferior no es conexo. El efecto se refuerza según el ángulo.
Es probable que el texto quede flotando cuando lo modifique, utilice los modificadores ILFD_TranslateTexto y ILFD_FactorXTexto para corregir esto.
Sugerencias de modificación
- Crear variables autogeneradas para facilitar interacción con el objeto.
- Aumentar la versatilidad de la macro para crear variantes estructurales.
- El ejercicio matemático resulta interesante, ¿pero vale la pena arriesgar la calidad del video final, por reglas de juego demasiado estrictas?. Convendría tomar precauciones en beneficio del usuario.
Sobre LibreN3D
En la actualidad dedico casi unas dos horas todos los días, para desarrollar el programa de animación LibreN3D con el compilador FreePascal para FreeDOS. El objetivo era en un origen, realizar animaciones de "baja" calidad, con progreso lento y paulatino. Desconocía en ese entonces del programa POV-Ray. Creo que con ayuda de dicho proyecto, podría lograr mucho mejores resultados desde un principio. Confío que para el 2020 pueda lograr animaciones completas de aceptable calidad. En la actualidad, intento agregarle características elásticas a los objetos. He tenido numerosos retrasos, así que todavía no funciona. Lo siento...(12/marzo/2013), pero me siento muy seguro de que pronto lo lograré. De momento, no tiene interface con el usuario, pero se encuentra en desarrollo como intérprete de renglón al estilo DOS.
Me sería de muchísima ayuda, que el grupo POV-Ray siguiera desarrollando la versión para DOS. Los siguientes son enlaces que podrían ser de utilidad para el interesado en los proyectos FreePascal y FreeDOS. Lamentablemente en la actualidad son altamente inestables, debido probablemente a dificultades con la adaptación al modo de 64 bits.
Descarga sistema operativo FreeDOS
Descarga compilador FreePascal