Logo POVRay...
Instrucciones para "ACOC.inc" v1.0

Donación de Rafael Angel Campos Vargas, en diciembre del 2010, a la Biblioteca de objetos de POV-Ray v1.0.  Este proyecto se encuentra actualmente inscrito con la patente LGPL;  para libre uso comercial y no comercial del software.

CC-GNU LGPL
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 "ACOC.inc" es muy simple de utilizar.  Crea cuatro diferentes bases para servir comida caliente, con instrucciones para facilitar pequeñas modificaciones.  Define objetos tipo default, permite la modificación vía macros o mediante redefiniciones de textura.  Los usuarios del FreeDOS que utilicen el POVRay 3.1, deberían utilizar el modificador ACOC_POV3_1.

Indice de página:

  1. Instalación de Archivos
  2. Instrucciones básicas
  3. Características del objeto
  4. Modificadores
  5. Notas y Advertencias
  6. Sugerencias de modificación
  7. Sobre LibreN3D

Instalación de Archivos

El procedimiento siguiente es completamente optativo, corresponde simplemente al estándard de la Biblioteca de objetos POV-Ray.
  1. 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.
  2. Copie los archivos "ACOC.inc", y "ACOC_Bod.gif" en dicho subdirectorio; únicamente estos dos son necesarios.  Opcionalmente podría colocar la documentación y demás en el mismo subdirectorio, el estándar ha sido diseñado para evitar problemas de compatibilidad.
  3. 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.
Nota:  El archivo de prueba "AisladorCOC.pov" puede ejecutarse sin ningún proceso de instalación.  Unicamente debería estar ubicado en el mismo folder que "ACOC.inc" y "ACOC_Bod.gif".


Instrucciones básicas

AsientoTerrazaPlasticoDomestico
Muy fácil de usar, tan simple como incluir el archivo, y ubicar el objeto.  Se definen los objetos default ACOC_AisladorFlor, ACOC_AisladorMargarita, ACOC_AisladorHexagonal y ACOC_AisladorBodegon.

Nota:  Las variables fueron definidas para el archivo "stdcam.inc" de la versión POV-Ray 3.6.1, que viene en la distribución.  Podría no funcionar en versiones posteriores.  De cualquier forma, el archivo de prueba "AisladorCOC.pov" da mejores resultados.

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "ACOC.inc"

    object { 
      ACOC_AisladorFlor
    //  ACOC_AisladorMargarita
    //  ACOC_AisladorHexagonal
    //  ACOC_AisladorBodegon
      translate         < -1.9375, +1.6375, -4.75 >   
    }

Se pueden accesar y modificar mediante una macro que tiene el siguiente formato:

    ACOC_AisladorComedorObjetoCaliente( Estilo, Param1, Param2, Param3 )
La variable principal es Estilo.  Los siguientes son los valores reconocidos:

ACOC_Margarita
para referirse al modelo Margarita
  • Param1 :  radio del círculo mayor, default es 66*L.
  • Param2 :  radio del círculo menor, default es 14.5*L.
  • Param3 :  cambiar el grueso como fracción, default es 1.0.

ACOC_Flor
para referirse al modelo Flor
  • Param1 :  diámetro de circulo mayor, default es 141*L.
  • Param2 :  diámetro de circulo menor, default es 107*L.
  • Param3 :  cambiar el grueso como fracción, default es 1.0.

ACOC_Bodegon
para referirse al modelo Bodegon.  Puede llamarse a su condicion default asignando 0 al parámetro Param1.  En tal caso Param2 y Param3 simplemente se ignorarían.
    ACOC_AisladorComedorObjetoCaliente( ACOC_Bodegon, 0, 0, 0 )
Alternativamente, puede cambiarse la imagen según:
  • Param1 :  para indicar el tipo de imagen;  como jpeg, png o tipo sys (targa en FreeDOS).
    • ACOC_jpeg
    • ACOC_png
    • ACOC_sys
  • Param2 :  nombre archivo de imagen como string.
  • Param3 :  vector color de la base inferior.

ACOC_Hexagonal
para referirse al modelo Hexagonal
  • Param1 :  Largo del elemento basico, default es 13*L.
  • Param2 :  Ancho cuadrangular del elemento basico, default es 3.5*L.
  • Param3 :  Factor de amplificación de los elementos del borde;  que pueden ser un poco más grandes que los demás, el factor default es 1.1.

Un ejemplo sencillo para utilizar la macro, sería el siguiente:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "ACOC.inc"

    object { 
      ACOC_AisladorComedorObjetoCaliente
		( ACOC_Bodegon, ACOC_png, "mtmandj.png", Cyan )  
	// "mtmandj.png" viene en la distribución POV-Ray, 
	// directorio include
      translate         < -1.9375, +1.6375, -4.75 >   
    }


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.  Los diferentes objetos default tienen las siguientes características:
    AisladorMargarita
      Radio        = 67.25*L
      Altura       = 16.75*L
    AisladorFlor
      Radio        = 71.75*L
      Altura       = 15.25*L
    AisladorBodegon
      Radio        = 71.75*L
      Altura       = 10.75*L
    AisladorHexagonal
      Radio        ~ 70*L
      Altura       ~ 3.5*L 
el  <0,0,0>, se ubica directamente centrado en la zona inferior.   La parte superior del Aislador orientada hacia z negativo.


Modificadores

La siguiente es la lista de los modificadores definidos para la unidad (cuando se indica, son valores default).  Comenzaremos con el modelo Margarita.

    #declare ACOC_POV3_1			  = off;
Al activarse con "on", provoca simplificaciones con pérdida de calidad, para lograr compatibilidad con POVRay 3.1.  Se activa automáticamente en algunas versiones de POVRay.
    #declare ACOC_TexturaMetalicaAislador_0    	  = texture { ... }
Para el Aislador metalico de ACOC_Margarita.
    #declare ACOC_TexturaPatitaPlastico_0         = texture { ... }
Para la patita plastica de ACOC_Margarita.

A manera de ejemplo:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #declare ACOC_TexturaMetalicaAislador_0       = texture     { 
      pigment   { color Cyan }
    }
    #declare ACOC_TexturaPatitaPlastico_0         = texture     {
      pigment   { color Blue }
    } 
    #include "ACOC.inc"

    object { 
      ACOC_AisladorComedorObjetoCaliente
		( ACOC_Margarita, 0.060, 0.045, 1.5 )  
      translate         < -1.9375, +1.6375, -4.75 >   
    }
Ahora el modelo Flor:
    #declare ACOC_TexturaMetalicaAislador_1      = texture { ... }
Para el Aislador metalico de ACOC_Flor.
    #declare ACOC_TexturaPatitaPlastico_1        = texture { ... }
Para la patita plastica de ACOC_Flor.

A manera de ejemplo:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #declare ACOC_TexturaMetalicaAislador_1       = texture     { 
      pigment   { color Cyan }
    }
    #declare ACOC_TexturaPatitaPlastico_1         = texture     {
      pigment   { color Blue }
    } 
    #include "ACOC.inc"

    object { 
      ACOC_AisladorComedorObjetoCaliente
		( ACOC_Flor, 0.120, 0.090, 1.5 )  
      translate         < -1.9375, +1.6375, -4.75 >   
    }
Ahora el modelo bodegón.
    #declare ACOC_BodegonImagen      		 = "ACOC_Bod.gif";
String para la imagen default, debe ser jpg (default), útil si no se redefine ACOC_TexturaImagenSuperficie_2.  Debería utilizar un tipo gif si utiliza el POVRay 3.1.
    #include "stdinc.inc"
    #include "stdcam.inc"
    #declare ACOC_BodegonImagen                  = "ACOC_freedosht.jpg"
    #include "ACOC.inc" 

    object { 
      ACOC_AisladorBodegon
      translate         < -1.9375, +1.6375, -4.75 >   
    }
Pero solo sirve con imágenes tipo jpg.  Se considera que utilizar la macro es una mejor alternativa.
    #declare ACOC_TexturaImagenSuperficie_2      = texture { ... }   
Para redefinir la imagen (o textura usual) que se quiera utilizar en la zona plana de ACOC_Bodegon.
    #declare ACOC_TexturaAisladorPlastico_2      = texture { ... }
Textura default de la base del bodegón.

A manera de ejemplo:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #declare ACOC_TexturaImagenSuperficie_2      = texture       {
      pigment   { Pink }
    }   
    #declare ACOC_TexturaAisladorPlastico_2      = texture       {
      pigment   { Pink }
    }
    #include "ACOC.inc"

    object { 
      ACOC_AisladorBodegon
      translate         < -1.9375, +1.6375, -4.75 >   
    }
Ahora el modelo Hexagonal:
    #declare ACOC_S      			= 2234;
Para semilla aleatoria, útil en ACOC_Hexagonal.
    #declare ACOC_DistanciaBasico_3       	=  13*L;
Permite cambiar el largo default del elemento básico de ACOC_Hexagonal.
    #declare ACOC_AnchoBasico_3           	=  3.5*L;
Permite cambiar el ancho cuadrangular default del elemento básico de ACOC_Hexagonal.
    #declare ACOC_TexturaHilo_3    		= texture { ... }
Util si no se redifine ACOC_FiguraBasico_3, permite cambiar la textura del hilo blanco en ACOC_Hexagonal.
    #macro ACOC_FiguraBasico_3 ( Distancia, Ancho )  
Redefinible para ACOC_Hexagonal.  Se supone crea una figura sustituta para el elememento básico hexagonal.  El parámetro Distancia es el largo básico de la figura, y Ancho se refiere a una base cuadrada.
    #declare ACOC_TexturaMaderaAislador_3  	= texture { ... }
Para la textura de madera basica de ACOC_Hexagonal.
    #declare ACOC_TexturaMaderaVerde_3    	= texture { ... }
Para la textura de madera verde en el default de ACOC_Hexagonal, redefina a gusto.  Por default, combina el color verde con ACOC_TexturaMaderaAislador_3.
    #declare ACOC_TexturaMaderaRojo_3    	= texture { ... }
Para la textura de madera rojo en el default de ACOC_Hexagonal, redefina a gusto.  Por default, combina el color rojo con ACOC_TexturaMaderaAislador_3.
    #declare ACOC_TexturaMaderaAzul_3    	= texture { ... }
Para la textura de madera azul en el default de ACOC_Hexagonal, redefina a gusto.  Por default, combina el color azul con ACOC_TexturaMaderaAislador_3.
    #declare ACOC_TexturaMaderaBorde_3   	= texture { ... }
Permite redefinir la textura del borde de ACOC_Hexagonal, por default se define idéntica a ACOC_TexturaMaderaAislador_3.

Por ejemplo esta variante del modelo Hexagonal:

    #include "stdinc.inc"
    #include "stdcam.inc" 
    #declare ACOC_S                             = 10; 
    #declare ACOC_TexturaMaderaVerde_3          = texture       {
      pigment   { Green  }
    }
    #declare ACOC_TexturaMaderaRojo_3           = texture       {
      ACOC_TexturaMaderaVerde_3
    }
    #declare ACOC_TexturaMaderaAzul_3           = texture       {
      ACOC_TexturaMaderaVerde_3
    }
    #declare ACOC_TexturaMaderaBorde_3          = texture       {
      ACOC_TexturaMaderaVerde_3
    }
    #declare ACOC_LargoBasico_3                 = 0.015;
    #declare ACOC_AnchoBasico_3                 = 0.002;
    #declare ACOC_TexturaHilo_3                 = texture       {
      pigment   { Black }
    }  
    #include "ACOC.inc"

    object { 
      ACOC_AisladorHexagonal
      translate         < -1.9375, +1.6375, -4.75 >   
    }
O bien esta otra, que cambia la macro:
    #include "stdinc.inc"
    #include "stdcam.inc" 
    #include "metals.inc"
    #macro ACOC_FiguraBasico_3 ( Distancia, Ancho ) 
      cylinder  {
        -Distancia/2*x,
        +Distancia/2*x,
        Ancho/2
      }
    #end
    #declare ACOC_TexturaMaderaAislador_3        = texture       {
      T_Chrome_4D
    } 
    #include "ACOC.inc"

    object { 
      ACOC_AisladorComedorObjetoCaliente
        ( ACOC_Hexagonal, 0.020, 0.001, 1.1 )
      translate         < -1.9375, +1.6375, -4.75 >   
    }

Notas y Advertencias

El modelo Hexagonal produce superposición física.  Esto podría evitarse con un análisis algo más detallado del algoritmo.  El error se encuentra en la variable local ApotemaTriangulo que se usa indistintamente para huecos romboides y triangulares.


Sugerencias de modificación


Sobre LibreN3D

Algo hace falta 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 en unos diez años poder 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...(21/diciembre/2010), 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.
Logo FreeDOS...
Descarga sistema operativo FreeDOS
Logo FreePascal...
Descarga compilador FreePascal