Logo POVRay...
Instrucciones para "TPPR.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 suscrito a 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 "TPPR.inc" (TelevisorPlanoPovRay) dibuja un televisor de pantalla plana similar a los modelos que se han popularizado en Costa Rica últimamente.  Permite agregar imagenes en la pantalla con facilidad, modificar características fundamentales y cambiar texturas.  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 "TPPR.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 "TPPR.pov" puede ejecutarse sin ningún proceso de instalación.  Unicamente debería estar ubicado en el mismo folder que "TPPR.inc".


Instrucciones básicas

Televisor
Muy fácil de usar, tan simple como incluir el archivo y ubicar el objeto.  El siguiente ejemplo ilustra el procedimiento básico. , Para encender el televisor requerirá alguna imagen GIF adicional.

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "TPPR.inc"
    
    object      {
      TPPR_Televisor(off,"",0,true) 
      translate   <-1.806,1.3000,-4.525>
    }

La macro fundamental tiene cuatro parámetros.

    #macro TPPR_Televisor( BanderaEncendido, Imagen,
              		TurbulenciaImagen, BanderaBase )
BanderaEncendido :
"off" apaga el televisor, "on" lo enciende.  Imagen y TurbulenciaImagen se ignoran si apaga el televisor.
Imagen :
Nombre de imagen GIF a dibujar en pantalla.  Para emplear otro formato, consulte la sección Modificadores.
TurbulenciaImagen :
Para agregar algo de turbulencia a la imagen en pantalla.  Utilice valores en milésimos, 0.005 o cero funcionan bien.  Puede usar un vector.
BanderaBase :
"false" no dibuja la base del televisor, "true" si la dibuja.

La siguiente versión de la macro, permite mucho mayor versatilidad.

    #macro TPPR_TelevisorPlanoPovRay(
                BanderaEncendido, Imagen, TurbulenciaImagen,
                AltoPrincipal, FrentePrincipal, ProfundidadPrincipal,
                BordePrincipal, BordeInferior,
                ProfundidadBorde, ProfundidadVisor, CizallaUsual,
                AltoBase, AltoPlacaBase,
                TexturaTelevisorApagado, TexturaTelevisorEncendido,
                TexturaBorde, TexturaPosterior,
                MaterialInfrarrojo, MaterialIndicadorEncendido )
BanderaEncendido :
"off" apaga el televisor, "on" lo enciende.  Imagen y TurbulenciaImagen se ignoran si apaga el televisor.
Imagen :
Nombre de imagen GIF a dibujar en pantalla.  Para emplear otro formato, consulte la sección Modificadores.
TurbulenciaImagen :
Para agregar algo de turbulencia a la imagen en pantalla.  Utilice valores en milésimos, 0.005 o cero funcionan bien.  Puede usar un vector.
AltoPrincipal :
Alto del televisor sin la base.  Default es 350*L.
FrentePrincipal :
Frente X del televisor.  Default es 550*L.
ProfundidadPrincipal :
Profundidad Z total del televisor sin base.  Default es 80*L.
BordePrincipal :
Medidad del marco superior y lateral para la imagen del televisor.  Default es 27*L.
BordeInferior :
Borde extra del marco inferior del televisor, para ubicar los botones.  Default es 20*L.
ProfundidadBorde :
Profundidad Z asignada al marco frontal del televisor.  Default es 14*L.
ProfundidadVisor :
Hundimiento Z de la pantalla respecto al marco.  Default es 4.3*L.
CizallaUsual :
Valor de referencia para recortes angulares decorativos.  Default es 3*L.
AltoBase :
Utilice 0 para no dibujar la base del todo.  Alto de base adicional al total del televisor.  Default es 40*L.
AltoPlacaBase :
Alto de la placa plana inferior de la base.  Default es 11*L.
TexturaTelevisorApagado :
Textura para aplicar a la pantalla apagada.  Default es TPPR_TexturaTelevisorApagado.
TexturaTelevisorEncendido :
Textura para aplicar sobre la imagen del televisor encendido.  Debería tener elevada transparencia.  Default es TPPR_TexturaTelevisorEncendido.
TexturaBorde :
Textura principal del televisor, que se aplica al marco.  Default es TPPR_TexturaBorde.
TexturaPosterior :
Textura a aplicar a la zona posterior del televisor.  Default es TPPR_TexturaPosterior.
MaterialInfrarrojo :
Material a aplicar al lector de infrarrojo.  Default es TPPR_MaterialInfrarrojo.
MaterialIndicadorEncendido :
Material a aplicar al indicador de encendido.  Se aplica unicamente si asigna "on" a BanderaEncendido. Default es TPPR_MaterialIndicadorEncendido.

En el siguiente ejemplo, dibujamos el mismo objeto inicial con una ligera diferencia.  Utilizamos el modificador TPPR_TipoImagen para agregar una imagen JPEG.

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "TPPR.inc"
                                     
    #declare TPPR_TipoImagen    = TPPR_JPEG;                                 
                                     
    object      {
      TPPR_TelevisorPlanoPovRay( on, "TPPR.jpg", 0.005,
          0.350, 0.550, 0.080, 0.027, 0.020,
          0.014, 0.0043, 0.003, 0.040, 0.011,
          TPPR_TexturaTelevisorApagado, TPPR_TexturaTelevisorEncendido,
          TPPR_TexturaBorde, TPPR_TexturaPosterior,
          TPPR_MaterialInfrarrojo, TPPR_MaterialIndicadorEncendido )
      translate   <-1.806,1.3000,-4.525>
    }


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			=   390*L
    Alto base			=    40*L
    Frente total		=   550*L
    Profundidad Z		=  -108*L.. 80*L
    Profundidad sin base	=  - 14*L.. 66*L   
El objeto se dibuja sobre el plano XZ hemisferio Y positivo, parcialmente centrado en el origen.  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.

TPPR_SYS
Valor entero de cero.  Selector para TPPR_TipoImagen, corresponde al formato de imagen propio del sistema operativo.
TPPR_GIF
Valor entero de uno.  Selector para TPPR_TipoImagen, corresponde al formato GIF.
TPPR_JPEG
Valor entero de dos.  Selector para TPPR_TipoImagen, corresponde al formato JPEG.
TPPR_TGA
Valor entero de tres.  Selector para TPPR_TipoImagen, corresponde al formato TGA.
TPPR_PNG
Valor entero de cuatro.  Selector para TPPR_TipoImagen, corresponde al formato PNG.
TPPR_DefaultTexturaTelevisorApagado
Textura para aplicar a la pantalla apagada.
TPPR_DefaultTexturaTelevisorEncendido
Textura para aplicar sobre la imagen del televisor encendido.  Debería tener elevada transparencia. 
TPPR_DefaultTexturaBorde
Textura principal del televisor, que se aplica al marco.
TPPR_DefaultTexturaPosterior
Textura a aplicar a la zona posterior del televisor.
TPPR_DefaultMaterialInfrarrojo
Material a aplicar al lector de infrarrojo.
TPPR_DefaultMaterialIndicadorEncendido
Material a aplicar al indicador de encendido.


Modificadores

La siguiente es la lista de los modificadores permitidos en la unidad.

    #declare TPPR_TipoImagen				= TPPR_GIF;
Valor entero que sirve de selector para el tipo de imagen.  Consultar la sección
Características del objeto para posibles valores reconocidos.

    #declare TPPR_TexturaTelevisorApagado      		= 
		texture { TPPR_DefaultTexturaTelevisorApagado }      
Textura para aplicar a la pantalla apagada.

    #declare TPPR_TexturaTelevisorEncendido             = 
		texture { TPPR_DefaultTexturaTelevisorEncendido }      
Textura para aplicar sobre la imagen del televisor encendido.  Debería tener elevada transparencia.

    #declare TPPR_TexturaBorde         			= 
		texture { TPPR_DefaultTexturaBorde }
Textura principal del televisor, que se aplica al marco.

    #declare TPPR_TexturaPosterior         	        = 
		texture { TPPR_DefaultTexturaPosterior }
Textura a aplicar a la zona posterior del televisor.

    #declare TPPR_MaterialInfrarrojo                    = 
		material { TPPR_DefaultMaterialInfrarrojo }
Material a aplicar al lector de Infrarrojo.

    #declare TPPR_MaterialIndicadorEncendido            = 
		texture { TPPR_DefaultMaterialIndicadorEncendido }      
Material a aplicar al indicador de encendido.

    #declare TPPR_POV3_1				= off;
Para activar modo de compatibilidad con POVRay 3.1.  En algunas versiones se activará automáticamente.

A manera de ejemplo del uso de los modificadores:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "TPPR.inc"
    #include "textures.inc"   
    
    #declare TPPR_TexturaBorde  = 
      texture                   {   
        average
        texture_map             {  
          [ 0.5 TPPR_DefaultTexturaBorde ]
          [ 0.5 Rust ]
        }
      }   
     
    #declare TPPR_TexturaTelevisorApagado       = PinkAlabaster   
    
    #declare TPPR_TexturaTelevisorEncendido     =
      texture { pigment { Clear } } 
   
    #declare TPPR_TexturaPosterior              = Cork   
    
    #declare TPPR_MaterialInfrarrojo            =
      material { texture { pigment { White } } }
                                                            
    #declare TPPR_MaterialIndicadorEncendido    =
      material { texture { pigment { Black } } }                                                        
                                                                 
    #declare TPPR_TipoImagen                    = TPPR_JPEG;                                
                                     
    object      {
      TPPR_Televisor( on, "TPPR.jpg", 0.000, true ) 
      translate   <-1.806,1.3000,-1.025>
    }

    object      {
      TPPR_Televisor( off, "", 0.000, true ) 
      translate   <-1.806,1.3000,-4.525>
    }


Notas y Advertencias

Al encender el televisor se activan varias luces adicionales.  Si esto produjera alguna sombra no deseada, desactive y utilice TexturaTelevisorApagado para ubicar la imagen.

El parámetro MaterialIndicadorEncendido es muy difícil de percibir pues queda casi cubierto con el LED rojo que se activa al encender el televisor. 

Para ubicar en una pared considere aplicar translate -(ProfundidadPrincipal-ProfundidadBorde)*z.  Luego de desactivar la base, el televisor sobresale directamente en el plano XY, en sentido Z-.

Si modifica la textura para el televisor encendido, considere que necesita una elevada transparencia para apreciar con claridad la imagen de video.


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...(29/enero/2014), 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