cg-Cad

Software Grafico »pkVrml » storico

Versione 0.5 (28 Luglio 2006)

  • Superficie di Möbius
  • Implementa la variabile clock di POV-Ray. La variabile adesso è sempre presente nei sorgenti nel formato POV generati da pkVrml anche se in sé e per sé è silente e cioè "se non impostiamo il valore di clock e non usiamo il loop di animazione interno a POV-Ray la variabile clock è sempre definita come uguale a zero, quindi è possibile impostare un file scena pensato per l'animazione e renderizzarlo come immagine ferma, durante la fase di progettazione della scena." (dal manuale POV).
    Per generare l'animazione con il software POV è sufficiente inserire poche istruzioni all'interno di un file .INI di POV, ad esempio per generare 20 frame nel formato BMP di 200x200 pixel:
    Initial_Frame = 1
    Final_Frame = 20

    Width=200
    Height=200
    Antialias=On
    Antialias_Threshold=0.3

Versione 0.4 (1 Febbraio 2006)

  • Selezione del colore in notazione HSV (hue, saturation, value).
  • Salva nel formato POV l'istruzione background, (legge i valori contenuti nel file PKVRML.INI).
  • Salva nei formati POV e WRL2 da un minimo di 2 ad un massimo di 1000 gradazioni di tono sul colore HSV (solo con modelli formati da sfere, no punti).
ESEMPIO (in POV):

C:\cg-lab\pkvrml\versione04>pkvrml

pkVrml 0.4 2006/02/01
Copyright (C) 2005-2006 Claudio Piccini. All rights reserved.
www.cg-cad.com * piccinik@mclink.it

PKVRML.INI...
 Background: < 1.00  0.00  0.00>
 SpotLight :
   direction < 0.00  0.00 -1.00>
   location  < 5.00 20.00 -3.00>

Modello 3d [?,a,l,s] <x=quit/$>: l
Tipo Lissajous [?,1,2] <x=menu/$>: 1
Formula [1-4] <x=menu/$>: 4
Tipo codice [?,a,b,c]: c
POV-Ray

*** 3D Lissajous ***
Numero sfere [100-1000] <200>: Invio
Raggio del solido <3.0>: Invio
Frequenza asse X <2.0>: Invio
Frequenza asse Y <2.0>: Invio
Fase asse X <1.0>: Invio
Fase asse Y <1.0>: Invio
Raggio delle sfere [0.1-1.0] <0.3>: .2

Colore della luce [a=white,b=color]: a

Selezione colore oggetto
(1) Colore con Nome
(2) Colore HSV
(3) Colore HSV-multiplo
[1-3]: 3
Colore HSV-multiplo:
Tonalita' (Hue) [0-360]: 240
Saturazione (Saturation) [0-100]: 100
Valore (Value) [0-100]: 100
Red = 0.000000 Green = 0.000000 Blue = 1.000000
modello salvato in 001lissaj1.pov

001lissaj1.pov

#include "colors.inc"
#include "textures.inc"

background {rgb < 1.000000  0.000000  0.000000>}

camera {
   location  <0,  0, -10>
   direction <0,  0,   1>
   look_at   <0,  0,  0>
}

light_source { <5, 20, -3>, rgb < 1.000000, 1.000000, 1.000000>} //WHITE

object {
   union {
      sphere { < 0.375258,  2.976344,  0.023609>,  0.200000 
               pigment { color < 0.000000, 0.000000, 0.005000> }} //   1
      ...via via...
      sphere { <-0.000000,  3.000000,  0.000000>,  0.200000 
               pigment { color < 0.000000, 0.000000, 1.000000> }} // 200
      texture {
         finish {
            ambient 0.3
            diffuse 0.7
            phong   1
         }
      }
   }
   rotate <0, 270, 0>
}

Versione 0.3b (4 Dicembre 2005)

  • Selezione del colore della luce nel formato POV, cioè bianca o colorata.
    Esempio, nelle vers. precedenti pkVrml salvava così:
    light_source { <5, 20, -3> color White}
    ora così:
    light_source { <5, 20, -3>, rgb < 1.000000, 1.000000, 1.000000>} // WHITE
ESEMPIO:

#include "colors.inc"
#include "textures.inc"

camera {
   location  <0,  0, -10>
   direction <0,  0,   1>
   look_at   <0,  0,  0>
}

light_source { <5, 20, -3>, rgb < 1.000000, 1.000000, 0.000000>} // YELLOW

object {
   union {
      sphere { < 0.251083,  3.992107,  0.004734>,  0.300000 } //   1
     ...via via...
      sphere { <-0.000000,  4.000000,  0.000000>,  0.300000 } //1000
      texture {
         pigment { color < 1.000000, 0.498039, 0.000000> } // CORAL
         finish {
            ambient 0.3
            diffuse 0.7
            phong   1
         }
      }
   }
   rotate <0, 270, 0>
}

pkVrml 0.3b (render con POV-Ray)

Versione 0.3a (10 Settembre 2005)

  • Gestione errori-input.
  • Corretti piccoli errori formali nel codice sorgente.

Versione 0.3 (11 Agosto 2005)

  • Genera modelli di figure Lissajous da 4 formule.
  • = mostra lo stato delle opzioni switch al presente. Esempio:
    C:\>pkvrml %
     Nodo SpotLight............ON
       ...
    Modello 3d [?,a,l,s] <x=quit/$>: L
    Tipo Lissajous [?,1,2] <x=menu/$>: =
     [VRML 1.0] Nodo Material.................OFF <*>
     [VRML 1.0] Nodo SpotLight................ON  <%>
     [VRML 1.0] Nodo Texture2 [POV] Image_map OFF <@>
     [VRML 2.0] Nodo TimeSensor...............OFF <+>
     [VRML 2.0] Nodo ColorInterpolator........OFF <->
     [VRML 2.0] Nodo Material.................ON (read only)
     [VRML 2.0] Nodo SpotLight................ON (read only)
     [VRML 2.0] ImageTexture..................ON (read only)
  • Se presente il segno $ nel menu è possibile switchare.
  • Il file di output ha la seguente forma: 000Modello[Tipo].est
    Ad esempio 001lissaj1.wrl è un modello tridimensionale di una curva di Lissajous formata da un insieme di sfere.
  • Corretti piccoli errori formali nel codice sorgente.
  • Compilato con Free Pascal Compiler version 2.0.0 [2005/05/08] for i386

Versione 0.2 (3 Agosto 2005)

  • Genera Shell e Lissajous da un insieme di sfere (.WRL e .POV) e da un insieme di punti (.WRL).
  • Salva nel formato POV-Ray.
  • Configura i nodi Background e SpotLight (Vrml 2.0) leggendo i valori contenuti nel file PKVRML.INI (formato TXT):
    0.196078* Background Red
    0.6*      Background Green
    0.8*      Background Blue
    0*   direction X 
    0*   direction Y
    -1*  direction Z
    5*   location X
    20*  location Y
    -3*  location Z
    
    Esempi
    
    SI:
    1*     red
    0*      green
    0*    blue
    0* dX
    -1* dY
    0*          dZ
    0* lX
    1*             lY
    0*       lZ
    
    NO:
    red* red ->0
    0* green 
    0* blue
    direction:
    0*
    -1*
      10 * ->0
    location:
    0   * ->0
    1*
    
    0*
    Il valore numerico deve essere seguito dal simbolo * (asterisco) e non ci devono essere spazi prima del numero e prima del simbolo *.
    Se pkVrml non trova il file pkvrml.ini nella cartella dipinge lo sfondo di bianco e setta i valori del nodo SpotLight in direction 0.000000 0.000000 -1.000000 e location 5.000000 20.000000 -3.000000.
  • Modelli 3D di 2 attrattori strani (tasto A)
  • Nuovo comando switch --> VRML 2.0: Nodo ColorInterpolator ON/OFF (default OFF).
    pkvrml - interpola 2 colori.
    Esempio 1:
    Modello 3d [?,a,l,s] (x=quit): -
    Nodo ColorInterpolator ON
    Selezione primo colore da interpolare...
    Nome colore [?]: blue
    Red : 0.000000
    Green: 0.000000
    Blue : 1.000000
    Modello 3d [?,a,l,s] (x=quit): L
    Tipo codice [?,a,b,c]: a
    WRL (VRML 2.0)
    3D Lissajous
    Numero sfere [200-1000] (es. 200): 200
    Raggio del solido (es 3.0): 3
    Angolo Theta (es 2.0): 2
    Angolo Phi (es 1.0): 1
    Raggio delle sfere [0.1-1.0] (es. 0.3): 0.2
    Nome colore [?]: red
    Red : 1.000000
    Green: 0.000000
    Blue : 0.000000
    modello salvato in L1.wrl.
    Esempio 2:
    Modello 3d [?,a,l,s] (x=quit): +
    Nodo TimeSensor ON
    Numero di secondi per una rotazione completa [6..60]: 15
    Modello 3d [?,a,l,s] (x=quit): -
    Nodo ColorInterpolator ON
    Selezione primo colore da interpolare...
    Nome colore [?]: coral
    Red : 1.000000
    Green: 0.498039
    Blue : 0.000000
    Modello 3d [?,a,l,s] (x=quit): l
    Tipo codice [?,a,b,c]: a
    WRL (VRML 2.0)
    3D Lissajous
    Numero sfere [200-1000] (es. 200): 200
    Raggio del solido (es 3.0): 3
    Angolo Theta (es 2.0): 8
    Angolo Phi (es 1.0): 2
    Raggio delle sfere [0.1-1.0] (es. 0.3): .2
    Nome colore [?]: red
    Red : 1.000000
    Green: 0.000000
    Blue : 0.000000
    modello salvato in L1.wrl
    Compie una rotazione completa in 15 secondi e cambia colore in cicli di 10 sec.
  • pkVrml riconosce (per nome) i seguenti colori: Aquamarine, BakersChoc, Black, Blue, Blue Violet, Brass, Bright Gold, Brown, Bronze, Cadet Blue, Cool Copper, Copper, Coral, Corn Flower Blue, Cyan, Dark Brown, Dark Green, Dark Green Copper, Dark Olive Green, Dark Orchid, Dark Purple, Dark Slate Grey, Dark Tan, Dark Turquoise, Dark Wood, Dusty Rose Feldspar, Firebrick, Forest Green, Gold, Goldenrod, Grey, Green Green Copper, Green Yellow, Hunter Green, Indian Red, Khaki Light Blue, Light Grey, Light Steel Blue, Light Wood, Lime Green Magenta, Mandarian Orange, Maroon, Medium Aquamarine, Medium Blue, Medium Forest Green, Medium Goldenrod, Medium Orchid, Medium Sea Green, Medium Slate Blue, Medium Spring Green, Medium Turquoise, Medium Violet Red, Medium Wood, Midnight Blue, Navy Blue, Neon Blue, Neon Pink, Old Gold, Orange, Orange Red, Orchid, Pale Green, Pink, Plum, Quartz, Red, Rich Blue, Salmon, Scarlet, Sea Green, Semi-Sweet Chocolate, Sienna, Silver, Sky Blue, Slate Blue, Spicy Pink, Spring Green, Steel Blue, Summer Sky, Tan, Thistle, Turquoise, Very Dark Brown, Very Light Grey, Violet, Violet Red, Wheat, White, Yellow Green, Yellow.
  • Corretti piccoli errori formali nel codice sorgente.

Versione 0.1 (26 Luglio 2005)

  • Modelli 3D della Spirale logaritmica (tasto S)
  • Modelli 3D delle Curve di Lissajous (tasto L)
  • Salva nel formato WRL (Vrml 1.0)
  • Salva nel formato WRL (Vrml 2.0)
  • Opzioni switch del programma:
    * -> VRML 1.0: Nodo Material ON/OFF (default OFF)
    ^ -> VRML 1.0: Nodo SpotLight ON/OFF (default OFF)
    @ -> VRML 1.0: Nodo Texture2 ON/OFF (default OFF)
    # -> VRML 1.0: Nodi Material + SpotLight + Texture2 ON/OFF (se Material=OFF ->nodi ON, se Material=ON ->nodi OFF)
    + -> VRML 2.0: Nodo TimeSensor ON/OFF (default OFF)

    Esempio: pkVrml @ applica la texture presente nella cartella di pkVrml, 01.jpg (il programma cerca nella cartella il file 01.jpg, se non c'è applica il colore, sempre in Vrml 2.0, solo se Material=ON in Vrml 1.0).

    Esempio: pkVrml + ruota il modello (se salvato in Vrml 2).

    I nodi SpotLight, Material e Texture nel file salvato in Vrml 2.0 sono sempre presenti.
  • pkVrml riconosce (per nome) i seguenti colori: Aquamarine, Chocolate, Black, Blue, Blue Violet, Brass, Bright Gold, Brown, Bronze, Cadet Blue, Cool Copper, Copper, Coral, Corn Flower Blue, Cyan, Green, Magenta, Orange, Red, Salmon, Sky Blue, White, Yellow.
  • Salva il log nel file pkvrml.txt. Esempio:
    2005/07/26
    3D Lissajous R.= 3.00 Ang. theta= 2.00 Ang. phi= 1.00 R. sfere= 0.30 N. sfere= 200
    L1.wrl
    3D Shell Beta=-2.00 Gamma= 0.90 V= 0.15 K= 1.00 N. sfere= 200
    S2.wrl
    3D Lissajous R.= 2.50 Ang. theta= 1.00 Ang. phi= 0.90 R. sfere= 0.10 N. sfere= 200
    L3.wrl
    3D Lissajous R.= 3.00 Ang. theta= 2.00 Ang. phi= 1.00 R. sfere= 0.30 N. sfere= 200
    L4.wrl
  • Salva gli stessi dati all'inizio del file WRL. Esempio:
    #VRML V2.0 utf8
    # pkVrml v0.1 (C)2005 by C. Piccini - http://www.cg-cad.com
    # 3D Lissajous R.= 3.00 Ang. theta= 2.00 Ang. phi= 1.00 R. sfere= 0.30 N. sfere= 200
  • I file WRL (Vrml 1.0 e 2.0) sono stati testati con i plug-in Cortona e Cortona VRML 1.0 Converter in Internet Explorer