Archivos de esta coleccin.
Necesarios para ejecucin:
NVFA.inc  	: archivo principal
Extras para visualizacin de manual html, no necesita conservarlos
NVFA.html	: instrucciones en html
NVFA_Thumbnail.jpg	
			: dibujo del objeto en pequeo
NVFA.jpg		: resultado con mejor resolucion
NVFA_logoPOVht.jpg	: logo de POV-Ray
NVFA_fp32ht.jpg		: logo de FreePascal
NVFA_freedosht.jpg	: logo de FreeDOS
NVFA_faltaht.jpg	: imagen de LibreN3D
NVFA_backht.jpg		: fondo de texto html
NVFA_cc-LGPL-a		: logo de GNU LGPL
Extras adicionales
NVFA.pov		: archivo de prueba
NVFA_readme.txt		: este documento

Lo que sigue, puede leerse con mayor facilidad con NVFA_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 quede descontinuado.

NVFA
Instrucciones para "NVFA.inc" v1.0 

Donacin de Rafael Angel Campos Vargas, en el ao 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. 
   
  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 "NVFA.inc" dibuja nubes 3D con volumen, muy poco 
flexibles.  Fueron diseadas para evitar el uso de interior {}.  Simplemente son 
"fractales pintados y enrollados en el espacio".  No es compatible con PovRay 
3.1.  
La forma de las nubes es el resultado de sumar un fractal y una funcin de 
perturbacin.  Tanto el fractal como la funcin de perturbacin pueden 
eliminarse, como se aprecia ante una lectura superficial del cdigo.  Lo dems 
es bsicamente gracias a las texturas.  
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 el archivo "NVFA.inc" en dicho subdirectorio;  nicamente ste es 
  necesario.  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 "NVFA.pov" puede ejecutarse sin ningn proceso de 
instalacin.  Unicamente debera estar ubicado en el mismo folder que 
"NVFA.inc". 



Instrucciones bsicas
       
      Nubes 
Muy fcil de usar, tan simple como incluir el archivo y ubicar el objeto.  Sin 
embargo, requerir elevar el valor de la variable global max_trace_level, para 
evitar desagradables puntos negros.  El siguiente ejemplo ilustra el proceso 
bsico. 
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "NVFA.inc"
    global_settings	{
      max_trace_level	10
    }
                          
    object      {
      NVFA_Nube1(off) 
      // NVFA_Nube2(off)       
      // NVFA_Nube3(off)       
      // NVFA_Nube4(off)       
      // NVFA_Nube5(off,0)       
      // NVFA_Nube6(off)       
      // NVFA_Nube7(off)
      // NVFA_Nube8(off,0.99,0)       
      // NVFA_Nube9(off)       
      // NVFA_Nube10(off,1.2)       
      translate      < -1.75,  1.30, -4.00 >   
      no_shadow
    }
El dibujo resulta algo decepcionante, pero ilustra el proceso bsico.  Para 
lograr mejores resultados, conviene combinar con fog {} y utilizar un fondo 
sky_sphere {}. 
La siguiente es la lista exhaustiva de macros en el archivo: 
    #macro NVFA_Nube1 ( BoxSphere )                                        
    #macro NVFA_Nube2 ( BoxSphere )                                        
    #macro NVFA_Nube3 ( BoxSphere )                                        
    #macro NVFA_Nube4 ( BoxSphere )                                        
    #macro NVFA_Nube5 ( BoxSphere, VectorMovimiento )                                        
    #macro NVFA_Nube6 ( BoxSphere )                                        
    #macro NVFA_Nube7 ( BoxSphere )                                        
    #macro NVFA_Nube8 ( BoxSphere, NuevoThreshold, VectorMovimiento )                                        
    #macro NVFA_Nube9 ( BoxSphere )                                        
    #macro NVFA_Nube10( BoxSphere, NuevoThreshold )                                        
BoxSphere : 
  "on" ajusta el contenido a box { -1,1 }.  "off" ajusta el contenido a sphere { 
  0, 1 }. 
  VectorMovimiento : 
  Para desplazar como vector el centro de evaluacin funcional.  Util para 
  acumular varios grupos de nubes adyacentes. 
  NuevoThreshold : 
  Modifica el valor threshold de la isosurface {}.  El efecto de cambiar el 
  valor ser diferente segn el tipo de nube.  Recomendamos un valor de 0.99 
  para la NVFA_Nube8(), y de 1.2 para NVFA_Nube10(). 



Caractersticas del objeto
No se supone que las nubes tengan un tamao "verdadero".  Fueron creadas con un 
dimetro planeado de 2.0 unidades POVRay, con amplia tolerancia.  Aplique scale 
a gusto. 
En el siguiente ejemplo ilustramos la formacin de un grupo rectangular de nubes 
pequeas.  Note el uso del parmetro Movimiento. 
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "NVFA.inc"
    global_settings	{
      max_trace_level	10
    }
    union               {  
      #local C          = 0;
      #while ( C < 10 )                  
        object      {
          NVFA_Nube8(off,0.8,120*C*x)
	  // El parametro 120 es arbitrario
          scale             0.1    
          translate      < -1.75,  1.30, -4.00 >+0.1*(C-4)*x   
          no_shadow
        }                
        #local C                = C+1;
      #end    
    }
Se define la siguiente textura base que no debera modificarse. 
  #declare NVFA_DefaultTexturaNubeGeneral 
  Define la textura principal de este archivo. 



Modificadores
Este archivo posee los siguientes modificadorse de textura.  Todos tienen el 
mismo valor default. 
    #declare NVFA_TexturaNube1			= texture { NVFA_DefaultTexturaNubeGeneral }
    #declare NVFA_TexturaNube2			= texture { NVFA_DefaultTexturaNubeGeneral }
    #declare NVFA_TexturaNube3			= texture { NVFA_DefaultTexturaNubeGeneral }
    #declare NVFA_TexturaNube4			= texture { NVFA_DefaultTexturaNubeGeneral }
    #declare NVFA_TexturaNube5			= texture { NVFA_DefaultTexturaNubeGeneral }
    #declare NVFA_TexturaNube6			= texture { NVFA_DefaultTexturaNubeGeneral }
    #declare NVFA_TexturaNube7			= texture { NVFA_DefaultTexturaNubeGeneral }
    #declare NVFA_TexturaNube8			= texture { NVFA_DefaultTexturaNubeGeneral }
    #declare NVFA_TexturaNube9			= texture { NVFA_DefaultTexturaNubeGeneral }
    #declare NVFA_TexturaNube10			= texture { NVFA_DefaultTexturaNubeGeneral }
Aplican al mismo nmero de macro, como indica su nombre.  Al definir la textura 
considere que probablemente convenga utilizar un valor elevado de la variable 
ambient.  
El siguiente ejemplo ilustra el uso de los modificadores. 
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "NVFA.inc"
    global_settings	{
      max_trace_level	10
    }     
                         
    #declare Textura1           = 
      texture { pigment { Yellow transmit 0.5 } finish { ambient 0.8 diffuse 0.2 } }
                         
    #declare NVFA_TexturaNube1  = 
    // #declare NVFA_TexturaNube2  = 
    // #declare NVFA_TexturaNube3  = 
    // #declare NVFA_TexturaNube4  = 
    // #declare NVFA_TexturaNube5  = 
    // #declare NVFA_TexturaNube6  = 
    // #declare NVFA_TexturaNube7  = 
    // #declare NVFA_TexturaNube8  = 
    // #declare NVFA_TexturaNube9  = 
    // #declare NVFA_TexturaNube10 = 
      texture                   {  
        average
        texture_map             { 
          [ 0.8 NVFA_DefaultTexturaNubeGeneral ]
          [ 0.2 Textura1 ]
        }
      }
                          
    object      {
      NVFA_Nube1(off) 
      // NVFA_Nube2(off)       
      // NVFA_Nube3(off)       
      // NVFA_Nube4(off)       
      // NVFA_Nube5(off,0)       
      // NVFA_Nube6(off)       
      // NVFA_Nube7(off)
      // NVFA_Nube8(off,0.99,0)       
      // NVFA_Nube9(off)       
      // NVFA_Nube10(off,1.2)       
      translate      < -1.75,  1.30, -4.00 >   
      no_shadow
    }



Notas y Advertencias
No olvide elevar el valor de max_trace_level, de lo contrario podran aparecer 
puntitos negros antiestticos. 
La textura default utiliza un valor elevado de ambient, debido a ello no 
funcionarn bien en escenas oscuras. 
No debe confiar en que las nubes funcionarn bien con un elevado acercamiento.  
Utiliza otro objeto, o intente prueba y error, hasta conseguir el efecto 
deseado. 



Sugerencias de modificacin
  Ofrecer parmetros para aumentar la variabilidad de diseo. 
  Agregar la textura como un parmetro. 
  Disear algoritmos para generacin de escenarios completos de nubes. 



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...(12/marzo/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 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: 03/12/2014 14:31:44
