Introduzione al linguaggio di descrizione di scene del raytracer POV-Ray         pagina 10
di Friedrich A. Lohmüller
English English English
Français français
Deutsch Deutsch

Home
- POV-Ray Tutorials
 
   Introduzione a POV-Ray
   Indice del contenuto
 
  1. Usare POV-Ray:
      "Insert Menu Add-on".
  2. Principi fondamentali
      Comme descrivere una scena?
      Coordinate 3D,
      Numeri e vettori
  3. Struttura di Scena
      Esempio di Base.
  4. Scene file header:
      #include files,
      camera, light_source.
  5. Oggetti geometrici di base
      sphere, box, cylinder,
      cone, torus, plane.
      et altri oggetti
  6. Trasformazioni
      scala, rotazione,
      translazione e altri.
      CSG: union,
      difference, intersection.
  7. Colori e superfici
      texture, pigment, normal, finish
  8. #declare, #local, #macro.
      Variabili e oggetti flessibili.
  9. #while - loops, cicli.
      Esempi di Base.
>10. #include, include files.
      Oggetti riutilizzabili.
 11. Efficienza,
      velocità, flessibilità,
      lavorare con moduli.
      Adattare di 3.1 a 3.5;3.6
      Adattare di 3.5;3.6 a 3.7
      POV-Ray + Windows Vista.
 
  - Insert Menu Add-on
    & Download
                                                     
#include "MyObject.inc" - Elementi prefabbricati per l'uso multiplo!
   Oggetti, costruitti una volta, si può definire come oggetti pronto per l'uso in un proprio include file. Con questo metodo oggetti si può riutilizza in ogni altra scena senza riscrivere o copiare della definizione completa!
    Suddividere scene più grandi in component più piccole par usare include file è una tecnica elementare technology di lavorare modulare - senza questa è quasi impossibile di realizzare scene veramente grande e complesso.
Oggetto esempio:
Prima definisscono un oggetto 'Column_1' come macro:
//----------------- macro Column_1(...)
#macro Column_1( H_C,  // column height
                 R_B,  // base radius
                 R_min,// border radius
                 T_S,  // top scale
               ) //---------------------
union{
 cone{ <0,0,0>,R_B,<0,H_C,0>,R_B*T_S}
 torus{ R_B,R_min translate<0,R_min,0>}
 torus{ R_B*T_S,R_min*T_S
        translate<0,H_C-R_min*T_S,0>}
 }// end Column
#end //------------------- end of macro 

Creare un include file:
Per un include file di un oggetto singolo
si è raccomando di scegliere il nome del include
file in conformità al nome del oggetto!

  Per la scelta di nomi q.v. le regole in "#declare"!
Qui facciamo un file 'Column_1.inc':
// POV-Ray include file "Column_1.inc"
//-------------------------------------
#ifndef( Column_1_Inc_Temp)
#declare Column_1_Inc_Temp = version;
#version 3.6;
//-------------------------------------
#macro Column_1( H_C,  // column height
                 R_B,  // base radius
                 R_min,// border radius
                 T_S,  // top scale
               ) //--------------------
//-------------------------------------
union{
 cone{ <0,0,0>,R_B,<0,H_C,0>,R_B*T_S}
 torus{ R_B,R_min translate<0,R_min,0>}
 torus{ R_B*T_S,R_min*T_S
        translate<0,H_C-R_min*T_S,0>}
 }// end Column
#end// ------------------- end of macro
//-------------------------------------
#version Column_1_Inc_Temp;
#end 
// ---------------- end of include file 
Questo file dobbiamo memorizzare nella stessa
directory come il file di nostra scena o in una directory
di include file disponibile nel include file path
(Library_Path) di POV-Ray.


Column_1 macro
La macro Column_1( ... ) chiamata con:
object{Column_1(3.5, // height
                0.5, // base r
                0.06,// border r
                0.75,// top scale
              ) //---------------
  texture{
    pigment{color rgb<1,0.9,0.8>}
    normal{ bumps 0.5 scale 0.01}
    finish{ phong 0.1 }
  } // end texture
  translate<0,0,0>
} //-------------------------- 
File de la scena macro-test: Column_1_macro_test.pov

Note: Le parti rosse del testo di include file sono aggiunte per evitare che lo stesso oggetto é dichiarato ripetutamente se il è gia inserito una volta.
E questi parti chambiano anche la versione di POV-Ray usato version indietro a la versione per laquale questo testo è scritto, anche se un bel giorno usiamo una versione più nuovo.

Note: Se inseriamo un include file con il comando #include "MyObject.inc", il testo di questo file sara inserito di POV-Ray carattere per carattere esatto al posto del comando during durante il parsing del file. Questo deve essere sempre davanti al posto dove usamo l'oggetto di questo include file.
Se questo testo del include file definisce un oggetto completo, che vogliamo usare ripetutamente in una scena, dobbiamo inserire il include file solo una volta!

Calling an object from an include file:
Qui inseriamo 'Column_1.inc':   (solo una volta!)
//---------------------------------------
#declare Column_Texture =
 texture{ pigment{ color rgb<1,0.95,0.8>}
          normal { bumps 0.5 scale 0.01}
          finish { phong 0.1 }
        } // end of texture
//-------------------------------------// 
#include "Column_1.inc"
//-------------------------------------//
union{ //--------------------------------
 #local Nr = 0;     // start
 #local EndNr = 10; // end
 #while (Nr< EndNr)
 union{ // inner union
   object{ Column_1(3.5, 0.5, 0.06, 0.75)
           translate<-2,0,0>}
   object{ Column_1(3.5, 0.5, 0.06, 0.75)
           translate< 2,0,0>}
   translate<0,0,Nr*2.5>
 } // end inner union
 #local Nr = Nr + 1;  // next Nr
 #end // --------------- end of loop
texture{  Column_Texture }
rotate<0,0,0>
translate<0,0,0>
} // end of union -----------------------



Column_1_rows
File di colonne

Descrizione della scena per POV-Ray:
file di scena: Column_1_Row.pov
include file: Column_1.inc


Con questo meccanismo si può anche conservare le sue texture speciale e le sue colori speciali
come un file per esempio chiamato "My_tex.inc"! Anche un magazzino di mobili ed anche una colleczione di aeroplani o di veicoli spaziali si può conservare con questo metodo!!!


parte 0 | parte 1 | parte 2 | parte 3 | parte 4 | parte 5 | parte 6 | parte 7 | parte 8 | parte 9 | parte 10 | parte 11

top

© Friedrich A. Lohmüller, 2014
homepage:www.f-lohmueller.de