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

Donación de Rafael Angel Campos Vargas, en el año 2014, 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.

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 "EBPH.inc" (EscobaBarrerPisoHogar) dibuja una escoba corriente de uso doméstico, incluye una macro para variar caracteristicas fundamentales.  Es compatible con PovRay 3.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 el archivo "EBPH.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.
  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 "EBPH.pov" puede ejecutarse sin ningún proceso de instalación.  Unicamente debería estar ubicado en el mismo folder que "EBPH.inc".


Instrucciones básicas

Escoba
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 "EBPH.inc"
    
    object      {
      EBPH_Escoba()  
      translate                 <-1.75,0.8,-4>           
    }

La macro fundamental carece de parámetros:

    #macro EBPH_Escoba()

Esta otra versión de la macro aumenta el control sobre las características básicas de la escoba. 

    #macro EBPH_EscobaBarrerPisoHogar(
          DiametroPalo, LargoPalo, DiametroAgarre, AltoAgarre,
          BaseReferencia, BaseAncho, BaseGrueso,  
          TotalHileras, GruposPorHilera,
          AltoPelos, DiametroPelos, DensidadPelos
          AnguloPelos, OscilacionAngular,
          TexturaMadera, TexturaPlastica, TexturaPelos )
DiametroPalo :
Diámetro del palo.  Default es 16*L.
LargoPalo :
Largo del palo.  Default es 858*L.
DiametroAgarre :
Diámetro del cilindro de unión del palo de madera.  Default es 21.4*L.
AltoAgarre :
Alto del cilindro de unión del palo de madera.  Default es 20*L.
BaseReferencia :
Referencia para la base del soporte de pelos.  Default es 143*L.
BaseAncho :
Referencia para el ancho del soporte de pelos.  Default es 25*L.
BaseGrueso :
Grueso y soporte de pelos.  Default es 10.7*L.
TotalHileras :
Total de hileras de pelos en el soporte.  Default es 7.
GruposPorHilera :
Grupos de pelos por hilera.  Default es 19.
AltoPelos :
Altura de los pelos de escoba.  Default es 82*L.
DiametroPelos :
Diámetro de los pelos de escoba.  Default es 1*L.
DensidadPelos :
Valor de referencia para controlar la densidad de pelos en un grupo.  Default es 5.
AnguloPelos :
Angulo en grados de inclinación de pelos por hilera.  Default es 15.
OscilacionAngular :
Control de aleatoriedad del ángulo de inclinación de pelos.  Default es 5*L.
TexturaMadera :
Textura del palo de madera.  Default es EBPH_TexturaMadera.
TexturaPlastica :
Textura del soporte de unión de los pelos.  Default es EBPH_TexturaPlastica.
TexturaPelos :
Textura de los pelos.  Default es EBPH_TexturaPelos.

En el siguiente ejemplo, dibujamos el mismo objeto inicial.

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "EBPH.inc"
    
    object      {
      EBPH_EscobaBarrerPisoHogar( 0.016, 0.858, 0.0214, 0.020, 0.143, 0.025,
                 0.0107, 7, 19, 0.082, 0.001, 5, 15, 5,  
                 EBPH_TexturaMadera, EBPH_TexturaPlastica, EBPH_TexturaPelos )
      translate                 <-1.75,0.8,-4>           
    }

Una variante como ejemplo:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "EBPH.inc" 
    #include "metals.inc"   
    #include "textures.inc"
    
    object      {
      EBPH_EscobaBarrerPisoHogar( 0.001, 0.001, 0.0001, 0.001, 0.143, 0.143,
                 0.0407, 7, 19, 0.042, 0.001, 2, 1, 1,  
                 EBPH_TexturaMadera, Yellow_Pine, T_Chrome_1C ) 
      rotate                    50*x           
      translate                 <-1.75,1.2,-4>           
    }


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 Y                      :   -80*L..875*L
    Frente X                    :  -125*L..125*L (variable)
    Frente X (sin pelos)        :   -80*L..80*L
    Profundidad Z               :   -50*L..50*L
    Profundidad Z (sin pelos)	:   -20*L..20*L
Los pelos comienzan en el plano XY, luego se proyectan hacia Y-.

Se generan las siguientes declaraciones que no deberían modificarse.  Para su correcta modificación consultar la sección Modificadores.

EBPH_DefaultTexturaMadera
Textura del palo de madera.
EBPH_DefaultTexturaPlastica
Textura del soporte de los pelos.
EBPH_DefaultTexturaPelos
Textura de los pelos de escoba.


Modificadores

La siguiente es la lista de los modificadores permitidos en la unidad.
    #declare EBPH_Semilla	  		= 2356;
Para iniciar el generador de números aleatorios utilizado en los pelos.

    #declare EBPH_TexturaMadera  		= texture { ... }
Textura del palo de madera.

    #declare EBPH_TexturaPlastica		= texture { ... }
Textura del soporte de los pelos.

    #declare EBPH_TexturaPelos			= texture { ... }
Textura de los pelos de escoba.

    #declare EBPH_POV3_1			= off;
Valor "on" activa modo de compatibilidad con POVRay 3.1.  En algunas versiones se activará automáticamente.  En esta versión no cumple ninguna función.

A manera de ejemplo del uso de los modificadores:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "EBPH.inc"                        
    #include "textures.inc"
           
                                  
    #declare EBPH_Semilla         = 900000;                              
    #declare EBPH_TexturaMadera   = PinkAlabaster  
    #declare EBPH_TexturaPlastica = Yellow_Pine
    #declare EBPH_TexturaPelos    = Chrome_Texture     
    object      {
      EBPH_Escoba()  
      translate                 <-1.75,0.8,-4>           
    }


Notas y Advertencias

Al aplicar la textura de los pelos, la macro utiliza un número aleatorio para desplazar su ubicación en Y.  Esto podría complicar su diseño.  Esta aleatoriedad representa un décimo del alto total.

Varíe los parámetros en forma consistente.  Cambios abruptos en un sólo parámetro tienden a producir defectos muy evidentes.

Para ubicar la escoba al nivel del piso podría aplicar translate 0.082*y, o el valor AltoPelos en la macro.  Este valor provocará que algunos pelillos perforen el piso aleatoriamente.


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 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...(25/noviembre/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.
Logo FreeDOS...
Descarga sistema operativo FreeDOS
Logo FreePascal...
Descarga compilador FreePascal