Archivos de esta coleccin.
Necesarios para ejecucin:
MJEI.inc  	: archivo principal
MJEI_DEF.gif	: pantalla juego por defecto, serpientes y escaleras.
MJEI_FRO.gif	: frente por defecto para juego.
MJEI_TIT.gif	: titulo por defecto para juego.
MJEI_LAT.gif	: lateral por defecto para juego.
MJEI_INT.gif	: textura libre por defecto para juego.
MJEI_BOT.gif    : base de boton por defecto.
MJEI_JOY.gif    : base de joystick por defecto.
Extras para visualizacin de manual html, no necesita conservarlos
MJEI.html	: instrucciones en html
MJEI_Thumbnail.jpg	
			: dibujo del objeto en pequeo
MJEI.jpg		: resultado con mejor resolucion
MJEI_logoPOVht.jpg	: logo de POV-Ray
MJEI_fp32ht.jpg		: logo de FreePascal
MJEI_freedosht.jpg	: logo de FreeDOS
MJEI_faltaht.jpg	: imagen de LibreN3D
MJEI_backht.jpg		: fondo de texto html
MJEI_cc-LGPL-a.png	: logo de GNU LGPG
Extras adicionales
MJEI.pov		: archivo de prueba
MJEI_readme.txt		: este documento

Lo que sigue, puede leerse con mayor facilidad con MJEI.html, y su despliegue preferido...
Esta copia es para usuarios que prefieran las instrucciones en formato TXT, o si en el futuro
el lenguaje html queda descontinuado.

MJEI
Instrucciones para "MJEI.inc" v1.0 

Donacin de Rafael Angel Campos Vargas, en el ao 2015, 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. 
   
  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 versin actual v1.0 de "MJEI.inc" (MaquinaJuegosElectronicosImaginaria) 
dibuja un aparato de juegos electrnicos tipo Parque de Diversiones y saln de 
video juegos, muy populares hace unas dcadas.  Se pueden cambiar las imgenes y 
otras caractersticas.  Es compatible con POVRay 3.1. 
Indice de pgina: 
  Instalacin de Archivos

  Instrucciones bsicas

  Caractersticas del objeto

  Modificadores

  Notas y Advertencias

  Sugerencias de modificacin

  Sobre LibreN3D




Instalacin de Archivos
El procedimiento siguiente es completamente optativo, corresponde simplemente al 
estndard de la Biblioteca de objetos POV-Ray. 
  Cree el subdirectorio "ObjectCollections".  Se sugiere un subdirectorio del 
  folder POV-Ray, creado por el instalador en algunas versiones en la seccin de 
  documentos o bien en la de cdigo. 
  Copie los archivo "MJEI.inc", "MJEI_DEF.gif", "MJEI_FRO.gif", "MJEI_TIT.gif", 
  "MJEI_LAT.gif", "MJEI_INT.gif", "MJEI_BOT.gif" y "MJEI_JOY.gif" en dicho 
  subdirectorio;  nicamente stos ocho son necesarios.  En cuanto a la 
  documentacin y dems puede colocarla si desea en el mismo subdirectorio, el 
  estndar ha sido diseado para evitar problemas de compatibilidad. 
  Actualice los archivos buscados por POV-Ray, en algn 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 
  cmo, probablemente convenga leer el manual de referencia en la seccin 
  "Command-line options".   Cada sistema operativo presenta sus propias 
  variantes. 
Nota:  El archivo de prueba "MJEI.pov" puede ejecutarse sin ningn proceso de 
instalacin.  Unicamente debera estar ubicado en el mismo folder que 
"MJEI.inc", "MJEI_DEF.gif", "MJEI_FRO.gif", "MJEI_TIT.gif", "MJEI_LAT.gif", 
"MJEI_INT.gif", "MJEI_BOT.gif" y "MJEI_JOY.gif". 



Instrucciones bsicas
       
      Juegos electrnicos 
Muy fcil de usar, tan simple como incluir el archivo y ubicar el objeto.  El 
siguiente ejemplo ilustra el procedimiento bsico. 
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "MJEI.inc"
    
    object      {
      MJEI_MaquinaJuegos( "", MJEI_DefaultArregloImagenes ) 
      translate         <-1.5,0.3,-3>
    }
La macro fundamental tiene dos parmetros. 
    #macro MJEI_MaquinaJuegos( GIFImagenPantalla, ArregloImagenes )         
GIFImagenPantalla : 
  Imagen GIF a desplegar en la pantalla.  Un string null "" utiliza la imagen 
  por defecto "MJEI_DEF.gif". 
  ArregloImagenes : 
  Arreglo de siete strings con nombres de imagenes gif.  Puede utilizar el valor 
  MJEI_DefaultArregloImagenes, que genera propaganda para "Nudos iniciales".  { 
  Frontal, Ttulo, LateralDerecha, LateralIzquierda, ZonasLibres, BaseBoton, 
  BaseJoystick } que por defecto se asignan a los archivos { "MJEI_FRO.gif", 
  "MJEI_TIT.gif", "MJEI_LAT.gif", "MJEI_LAT.gif", "MJEI_INT.gif", 
  "MJEI_BOT.gif", "MJEI_JOY.gif" }. 
En el siguiente ejemplo cambiamos las imagenes: 
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "MJEI.inc"
                       
    #declare ArregloImagenes    = array [7]
      { "MJEI_INT.gif", "MJEI_INT.gif", "MJEI_INT.gif", "MJEI_INT.gif",
        "MJEI_INT.gif", "MJEI_INT.gif", "MJEI_INT.gif" }                    
                        
    object      {
      MJEI_MaquinaJuegos( "MJEI_BOT.gif", ArregloImagenes ) 
      translate         <-1.5,0.3,-3>
    }
La macro detallada tiene diecinueve parmetros. 
    #macro MJEI_MaquinaJuegos( GIFImagenPantalla, ArregloImagenes,         
      	Frente, Altura, Profundidad,
      	LateralPantalla, AlturaBotones, AltoCartelSuperior, 
      	ProfundidadBotones, ProfundidadCartelSuperior, ProfundidadSalienteSuperior,
      	GruesoMadera, AltoPalanca, DiametroBoton,   
      	TexturaMetal, TexturaPlastico,
      	TexturaVidrio, TexturaPosterior, TexturaEnvejecer )  
GIFImagenPantalla : 
  Imagen GIF a desplegar en la pantalla.  Un string null "" utiliza la imagen 
  por defecto "MJEI_DEF.gif". 
  ArregloImagenes : 
  Arreglo de siete strings con nombres de imagenes gif.  Puede utilizar el valor 
  MJEI_DefaultArregloImagenes, que genera propaganda para "Nudos iniciales".  { 
  Frontal, Ttulo, LateralDerecha, LateralIzquierda, ZonasLibres, BaseBoton, 
  BaseJoystick } que por defecto se asignan a los archivos { "MJEI_FRO.gif", 
  "MJEI_TIT.gif", "MJEI_LAT.gif", "MJEI_LAT.gif", "MJEI_INT.gif", 
  "MJEI_BOT.gif", "MJEI_JOY.gif" }. 
  Frente : 
  Frente X del aparato.  Valor por defecto 490*L. 
  Altura : 
  Altura total Y del aparato.  Valor por defecto 1340*L. 
  Profundidad : 
  Profundidad Z del aparato sin liberador de monedas.  Valor por defecto 550*L. 
  LateralPantalla : 
  Tamano X de laterales de pantalla.  Valor por defecto 50*L. 
  AlturaBotones : 
  Altura sobre el piso de los botones.  Valor por defecto 800*L. 
  AltoCartelSuperior : 
  Tamano en Y del cartel para ttulo.  Valor por defecto 120*L. 
  ProfundidadBotones : 
  Para ubicar en Z los botones.  Valor por defecto 179*L. 
  ProfundidadCartelSuperior : 
  Para ubicar en Z cartel superior.  Valor por defecto 100*L. 
  ProfundidadSalienteSuperior : 
  La zona superior en Z se encuentra ligeramente retirada.  Valor por defecto 
  25*L. 
  GruesoMadera : 
  Grueso bsico de madera.  Valor por defecto es 5*L. 
  AltoPalanca : 
  Referencia alto del Joystick.  Valor por defecto 50*L. 
  DiametroBoton : 
  Dimetro de botones.  Valor por defecto 20*L. 
  TexturaMetal : 
  Textura para aplicar al metal.  Valor por defecto MJEI_TexturaMetal. 
  TexturaPlastico : 
  Textura para aplicar al plastico.  Valor por defecto MJEI_TexturaPlastico. 
  TexturaVidrio : 
  Textura para aplicar al vidrio protector.  Valor por defecto 
  MJEI_TexturaVidrio. 
  TexturaPosterior : 
  Textura para la zona posterior.  Valor por defecto MJEI_TexturaPosterior. 
  TexturaEnvejecer : 
  Textura adicional que se aplica a las imgenes para envejecerlas.  La textura 
  por defecto es completamente transparente.  Valor por defecto 
  MJEI_TexturaEnvejecer. 
En el siguiente ejemplo repetimos la imagen inicial: 
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "MJEI.inc"
    
    object      {
      MJEI_MaquinaJuegosElectronicosImaginaria( "", MJEI_DefaultArregloImagenes,   
              0.490, 1.340, 0.550, 0.050, 0.800, 0.120, 
              0.179, 0.100, 0.025, 0.005, 0.050, 0.020,
              MJEI_TexturaMetal, MJEI_TexturaPlastico,
              MJEI_TexturaVidrio, MJEI_TexturaPosterior, MJEI_TexturaEnvejecer )
      translate         <-1.5,0.3,-3>
    }



Caractersticas del objeto
Mis dibujos estn en unidades L (Lisa).  1 L equivale a 0.055063 pulgadas 
definido como 0.001 para POVRAY.  El objeto tiene las siguientes 
caractersticas: 
    PuntoMinimo			= < -Frente/2, 0, -1.06*Profundidad >
    PuntoMaximo			= < +Frente/2, Altura, 0 >
    Frente X			=  490*L
    Altura Y			= 1340*L
    Profundidad Z	        =  583*L (incluye 1.06)
El frente de la mquina mira hacia Z-.  Descansa sobre los planos XY y XZ, con 
gravedad Y-. 
Se generan las siguientes declaraciones que no deberan modificarse.  Para su 
correcta modificacin consultar la seccin Modificadores. 
  MJEI_DefaultArregloImagenes 
  Arreglo de string, para imgenes GIF del decorado.  Su objetivo es servir como 
  parmetro ArregloImagenes en las macros.  En orden su contenido corresponde a: 
        Frontal"MJEI_FRO.gif"
        Ttulo"MJEI_TIT.gif"
        Lateral derecho"MJEI_LAT.gif"
        Lateral izquierdo"MJEI_LAT.gif"
        Zonas libres"MJEI_INT.gif"
        Base botn"MJEI_BOT.gif"
        Base joystick"MJEI_JOY.gif"

  MJEI_DefaultTexturaMetal 
  Textura que se aplica a zonas metalizadas. 
  MJEI_DefaultTexturaPlastico 
  Textura que se aplica a botones y esfera del joystick. 
  MJEI_DefaultTexturaVidrio 
  Textura que se aplica al vidrio protector. 
  MJEI_DefaultTexturaPosterior 
  Textura que se aplica a zona posterior. 
  MJEI_DefaultTexturaEnvejecer 
  Textura que se aplica para envejecer las imgenes.  Se define por defecto 
  transparente. 



Modificadores
La siguiente es la lista de los modificadores permitidos en la unidad. 
    #declare MJEI_TexturaMetal			=
	texture  { MJEI_DefaultTexturaMetal }
Textura que se aplica a zonas metalizadas. 
    #declare MJEI_TexturaPlastico		=
        texture  { MJEI_DefaultTexturaPlastico }
Textura que se aplica a botones y esfera del joystick. 
    #declare MJEI_TexturaVidrio			=
	texture  { MJEI_DefaultTexturaVidrio }
Textura que se aplica al vidrio protector. 
    #declare MJEI_TexturaPosterior		=
	texture  { MJEI_DefaultTexturaPosterior }
Textura que se aplica a zona posterior. 
    #declare MJEI_TexturaEnvejecer		=
	texture  { MJEI_DefaultTexturaEnvejecer }
Textura que se aplica para envejecer las imgenes. Se define por defecto 
transparente. 
    #declare MJEI_POV3_1			= off;
Para activar modo de compatibilidad con POVRay 3.1.  En algunas versiones se 
activar automticamente.  
A manera de ejemplo del uso de los modificadores: 
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "MJEI.inc"  
    
    #declare MJEI_TexturaPlastico       = MJEI_DefaultTexturaMetal
    #declare MJEI_TexturaMetal          = MJEI_DefaultTexturaPlastico
    #declare MJEI_TexturaVidrio         = MJEI_DefaultTexturaEnvejecer   
    
    object      {
      MJEI_MaquinaJuegos( "", MJEI_DefaultArregloImagenes )       
      rotate            -10*x
      translate         <-1.5,0.3,-3>
    }
Otro ejemplo visto desde atrs: 
    
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "MJEI.inc"  
    #include "textures.inc"      
    
    #declare MJEI_TexturaEnvejecer      =
      texture                           {
        pigment                         { 
          bumps
          pigment_map                   {
            [ 0.50 Clear ]
            [ 0.75 Green ]
          }
        } 
      } 
    #declare MJEI_TexturaPosterior      = 
      texture                           {
        average
        texture_map                     {
          [ 0.7 MJEI_DefaultTexturaPosterior ]
          [ 0.3 Rust ]
        }
      }  
        
    object      {
      MJEI_MaquinaJuegos( "", MJEI_DefaultArregloImagenes )       
      rotate            120*y
      translate         <-1.5,0.3,-3>
    }



Notas y Advertencias
Existe un espejo interior en un ngulo de 45 grados.  Con el objetivo de 
acomodar este espejo interior, deber variar los parmetros en forma 
consistente. 
No podr utilizar texture_map con el parmetro TexturaEnvejecer, ni con su 
modificador. 
La versin para POVRay 3.1. presente una pantalla algo ms oscura, debido a las 
modificaciones por compatibilidad. 



Sugerencias de modificacin
  Que los parmetros permitan modificaciones ms profundas de forma. 
  Agregar movimiento a palancas y botones. 
  Generar variables internas para facilitar interaccin con personajes. 



Sobre LibreN3D
 En la actualidad dedico casi unas dos horas todos los das, para desarrollar el 
programa de animacin LibreN3D con el compilador FreePascal para FreeDOS.  El 
objetivo era en un origen, realizar animaciones de "baja" calidad, con progreso 
lento y paulatino. Desconoca en ese entonces del programa POV-Ray.  Creo que 
con ayuda de dicho proyecto, podra lograr mucho mejores resultados desde un 
principio.  Confo que para el 2020 pueda lograr animaciones completas de 
aceptable calidad.   En la actualidad, intento agregarle caractersticas 
elsticas a los objetos.  He tenido numerosos retrasos, as que todava no 
funciona.  Lo siento...(2/enero/2015), pero me siento muy seguro de que pronto 
lo lograr.  De momento, no tiene interface con el usuario, pero se encuentra en 
desarrollo como intrprete de rengln al estilo DOS. 
Me sera de muchsima ayuda, que el grupo POV-Ray siguiera desarrollando la 
versin para DOS.   Los siguientes son enlaces que podran 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 
adaptacin al modo de 64 bits. 
      Descarga sistema operativo FreeDOS 

      Descarga compilador FreePascal 



Dedicado a Jess y Mara.
Sugerencias a :
RofoelCompos@hotmail.com
Apdo. 964-1250. Escaz, San Jos, Costa Rica
http://rofoelcompos.hi5.com
Ultima modificacin del documento: 01/02/2015 19:21:40
