Scenegraph/it: Difference between revisions

From FreeCAD Documentation
(Created page with 'traduzione provvisoria (renatorivo) =Grafico di scena= FreeCAD è sostanzialmente un collage di potenti librerie. [http://en.wikipedia.org/wiki/Open_CASCADE openCascade] è la…')
 
No edit summary
Line 1: Line 1:
traduzione provvisoria (renatorivo)
traduzione provvisoria (renatorivo)


=Grafico di scena=
=Grafo della scena=




FreeCAD è sostanzialmente un collage di potenti librerie. [http://en.wikipedia.org/wiki/Open_CASCADE openCascade] è la più importante ed è utilizzata per la gestione e la costruzione della geometria, [http://en.wikipedia.org/wiki/Coin3D Coin3d] serve per visualizzare questa geometria, e [http://en.wikipedia.org/wiki/Qt_(toolkit) Qt] per disporre il tutto in una gradevole interfaccia grafica (GUI).
FreeCAD è sostanzialmente un collage di potenti librerie. [http://en.wikipedia.org/wiki/Open_CASCADE OpenCascade] è la più importante ed è utilizzata per la gestione e la costruzione della geometria, [http://en.wikipedia.org/wiki/Coin3D Coin3d] serve per visualizzare questa geometria, e [http://en.wikipedia.org/wiki/Qt_(toolkit) Qt] per disporre il tutto in una gradevole interfaccia grafica (GUI).


Le geometrie che appaiono nelle viste 3D di FreeCAD sono renderizzate dalla libreria Coin3D. Coin3D è un'implementazione dello standard [http://en.wikipedia.org/wiki/Open_Inventor OpenInventor]. Il software openCascade fornisce anche la stessa funzionalità, ma fin dagli inizi dello sviluppo di FreeCAD, è stato deciso di non utilizzare il visualizzatore di OpenCascade e di sostituirlo con il software più performante coin3D. Un buon modo per conoscere questa libreria è quello di consultare il libro [http://www-evasion.imag.fr/Membres/Francois.Faure/doc/inventorMentor/sgi_html/ Open Inventor Mentor].
Le geometrie che appaiono nelle viste 3D di FreeCAD sono visualizzate (renderizzate) dalla libreria Coin3D. Coin3D è un'implementazione delle funzionalità standard di[http://en.wikipedia.org/wiki/Open_Inventor OpenInventor]. Anche il software openCascade fornisce queste funzionalità, ma, fin dagli inizi dello sviluppo di FreeCAD, è stato deciso di non utilizzare il visualizzatore di OpenCascade e di sostituirlo con il software coin3D in quanto più performante. Un buon modo per conoscere questa libreria è quello di consultare il manuale [http://www-evasion.imag.fr/Membres/Francois.Faure/doc/inventorMentor/sgi_html/ Open Inventor Mentor].


[http://en.wikipedia.org/wiki/Open_Inventor OpenInventor] è in realtà un linguaggio di descrizione della scena 3D. La scena descritta in OpenInventor viene renderizzata sul vostro schermo con OpenGL. Coin3D si occupa di fare questo, quindi non è necessario che il programmatore tratti complesse chiamate a OpenGL, deve solo fornire un codice OpenInventor valido. Il vantaggio principale è che OpenInventor è uno standard molto conosciuto e ben documentato.
[http://en.wikipedia.org/wiki/Open_Inventor OpenInventor] è in realtà un linguaggio di descrizione della scena 3D. La scena descritta in OpenInventor viene renderizzata (visualizzata) sul vostro schermo con OpenGL. Coin3D si occupa di questo processo, quindi non è necessario che il programmatore tratti complesse chiamate a OpenGL, ma deve solo fornire un codice OpenInventor valido. Il vantaggio principale è che OpenInventor è uno standard molto conosciuto e ben documentato.


Uno dei lavori più importanti che FreeCAD esegue per noi è sostanzialmente quello di tradurre le informazioni sulla geometria OpenCascade in linguaggio OpenInventor.
Sostanzialmente, uno dei lavori più importanti che FreeCAD esegue per noi consiste nel tradurre le informazioni sulla geometria OpenCascade in linguaggio OpenInventor.


OpenInventor descrive una scena 3D in forma di [http://en.wikipedia.org/wiki/Scene_graph grafico di scena] (Scenegraph), come quello seguente:
OpenInventor descrive una scena 3D in forma di [http://en.wikipedia.org/wiki/Scene_graph grafo di scena] (Scenegraph), come quello seguente:


[[Image:Scenegraph.gif]]
[[Image:Scenegraph.gif]]
image from [http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html Inventor mentor]
image from [http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html Inventor mentor]


Un grafico di scena di OpenInventor descrive tutto ciò che fa parte di una scena 3D, come ad esempio la geometria, i colori, i materiali, le luci, ecc, e organizza tutti i dati in una struttura pratica e chiara. Tutto può essere raggruppato in sotto-strutture, il che consente di organizzare i contenuti di scena più o meno nel modo desiderato. Ecco un esempio di un file di OpenInventor:
Un grafo di scena di OpenInventor è una struttura di tipo "grafico ad albero" e descrive tutto ciò che fa parte di una scena 3D, come ad esempio la geometria, i colori, i materiali, le luci, ecc, e organizza tutti i dati in una struttura gerarchica, pratica e chiara. Tutto può essere raggruppato in sotto-strutture (nodi-figlio), il che consente di organizzare i contenuti della scena più o meno nel modo desiderato. Ecco un esempio di un file di OpenInventor:


#Inventor V2.0 ascii
#Inventor V2.0 ascii
Line 42: Line 42:
}
}


Come potete vedere, la struttura è molto semplice. Si utilizzano separatori per organizzare i dati in blocchi, un po' come si fa per organizzare i file in cartelle. Ogni dichiarazione riguarda ciò che viene in seguito, per esempio i primi due elementi del nostro separatore radice sono una rotazione e una traslazione, entrambi agiscono sull'elemento successivo, che è un separatore. In tale separatore è definito un materiale e un'altra trasformazione. Il nostro cilindro pertanto sarà influenzato da entrambe le trasformazioni, quella che è stata applicata direttamente ad esso e quella che è stata applicata al suo separatore genitore.
Come potete vedere, la struttura è molto semplice. Si utilizzano nodi (separator) per organizzare i dati in blocchi, un po' come si fa per organizzare i file in cartelle e sottocartelle. Ogni dichiarazione riguarda ciò che viene in seguito, per esempio, i primi due elementi del nostro nodo radice (root separator) sono una rotazione e una traslazione e agiscono entrambi sull'elemento successivo, che è un nodo (separator). In tale nodo sono definiti un materiale e un'altra trasformazione. Pertanto, il nostro cilindro sarà influenzato da entrambe le trasformazioni, da quella che è stata applicata direttamente ad esso e da quella che è stata applicata al suo nodo (separator) genitore.


Per organizzare la nostra scena, sono disponibili molti altri tipi di elementi, come gruppi, commutatori o annotazioni. Possiamo definire dei materiali molto complessi per i nostri oggetti, con colori, texture, modalità di ombreggiatura e trasparenza. Possiamo anche definire luci, telecamere e perfino il movimento. È anche possibile incorporare parti di script nei file di OpenInventor, per definire comportamenti più complessi.
Per organizzare la nostra scena, sono disponibili molti altri tipi di elementi, come gruppi, commutatori o annotazioni. Possiamo definire dei materiali molto complessi per i nostri oggetti, con colori, texture, modalità di ombreggiatura e trasparenza. Possiamo anche definire luci, punti di vista (camera) e perfino il movimento. È anche possibile incorporare parti di script nei file di OpenInventor, per definire comportamenti più complessi.


Se siete interessati a saperne di più su OpenInventor, consultate direttamente il suo manuale più famoso, il libro [http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html Inventor mentor].
Se siete interessati a saperne di più su OpenInventor, consultate direttamente il suo manuale più famoso: il libro [http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html Inventor mentor].


In FreeCAD, normalmente, non abbiamo bisogno di interagire direttamente con il grafico di scena di OpenInventor. Ogni oggetto in un documento di FreeCAD, sia che si tratti di un mesh, di una forma parte o di qualsiasi altra cosa, viene automaticamente convertito in codice OpenInventor e inserito nel grafico di scena principale che appare in una vista 3D. Questo grafico di scena viene aggiornato continuamente tutte le volte che si apportano modifiche, si aggiungono o si rimuovono gli oggetti nel documento. In realtà, ogni oggetto (nell'ambito App) ha un fornitore di vista (un corrispondente oggetto nell'ambito Gui), responsabile del rilascio del suo codice OpenInventor.
Normalmente, in FreeCAD, non è necessario interagire direttamente con il grafo della scena di OpenInventor. Ogni oggetto in un documento di FreeCAD, sia che si tratti di un Mesh, di una forma Parte o di qualsiasi altra cosa, viene automaticamente convertito in codice OpenInventor e inserito nel grafo di scena principale che appare in una vista 3D. Questo grafo di scena viene aggiornato continuamente tutte le volte che si apportano modifiche, si aggiungono o si rimuovono gli oggetti nel documento. In realtà, ogni oggetto (nell'ambito App) ha un fornitore di vista (un corrispondente oggetto nell'ambito Gui), responsabile del rilascio del codice OpenInventor.


Però, potere accedere al direttamente al grafico di scena presenta molti vantaggi. Ad esempio, possiamo modificare temporaneamente la visualizzazione di un oggetto, oppure possiamo aggiungere alla scena oggetti che, nel documento di FreeCAD, non hanno esistenza reale, come la geometria di costruzione, i riferimenti, i suggerimenti grafici oppure strumenti quali manipolatori oppure informazioni sullo schermo.
Però, potere accedere al direttamente al grafico di scena presenta molti vantaggi. Ad esempio, possiamo modificare temporaneamente la visualizzazione di un oggetto, oppure possiamo aggiungere alla scena oggetti che, nel documento di FreeCAD, non hanno esistenza reale, come la geometria di costruzione, i riferimenti, i suggerimenti grafici oppure strumenti quali manipolatori oppure informazioni sullo schermo.
Line 58: Line 58:
print viewprovider.toString()
print viewprovider.toString()


Inoltre, abbiamo anche un modulo Python che consente l'accesso completo a tutto quanto gestito da Coin3D, come il grafico di scena di FreeCAD. Quindi, continuate la lettura in [[Pivy/it|Pivy]].
Inoltre, abbiamo anche un modulo Python che consente l'accesso completo a tutto quello che è gestito da Coin3D, come il grafico di scena di FreeCAD. Quindi, continuate la lettura in [[Pivy/it|Pivy]].


{{docnav/it|[[Mesh to Part/it|Da Mesh a Parte]]|[[Pivy/it|Pivy]]}}
{{docnav/it|[[Mesh to Part/it|Da Mesh a Parte]]|[[Pivy/it|Pivy]]}}

Revision as of 18:15, 18 May 2012

traduzione provvisoria (renatorivo)

Grafo della scena

FreeCAD è sostanzialmente un collage di potenti librerie. OpenCascade è la più importante ed è utilizzata per la gestione e la costruzione della geometria, Coin3d serve per visualizzare questa geometria, e Qt per disporre il tutto in una gradevole interfaccia grafica (GUI).

Le geometrie che appaiono nelle viste 3D di FreeCAD sono visualizzate (renderizzate) dalla libreria Coin3D. Coin3D è un'implementazione delle funzionalità standard diOpenInventor. Anche il software openCascade fornisce queste funzionalità, ma, fin dagli inizi dello sviluppo di FreeCAD, è stato deciso di non utilizzare il visualizzatore di OpenCascade e di sostituirlo con il software coin3D in quanto più performante. Un buon modo per conoscere questa libreria è quello di consultare il manuale Open Inventor Mentor.

OpenInventor è in realtà un linguaggio di descrizione della scena 3D. La scena descritta in OpenInventor viene renderizzata (visualizzata) sul vostro schermo con OpenGL. Coin3D si occupa di questo processo, quindi non è necessario che il programmatore tratti complesse chiamate a OpenGL, ma deve solo fornire un codice OpenInventor valido. Il vantaggio principale è che OpenInventor è uno standard molto conosciuto e ben documentato.

Sostanzialmente, uno dei lavori più importanti che FreeCAD esegue per noi consiste nel tradurre le informazioni sulla geometria OpenCascade in linguaggio OpenInventor.

OpenInventor descrive una scena 3D in forma di grafo di scena (Scenegraph), come quello seguente:

image from Inventor mentor

Un grafo di scena di OpenInventor è una struttura di tipo "grafico ad albero" e descrive tutto ciò che fa parte di una scena 3D, come ad esempio la geometria, i colori, i materiali, le luci, ecc, e organizza tutti i dati in una struttura gerarchica, pratica e chiara. Tutto può essere raggruppato in sotto-strutture (nodi-figlio), il che consente di organizzare i contenuti della scena più o meno nel modo desiderato. Ecco un esempio di un file di OpenInventor:

#Inventor V2.0 ascii
Separator { 
    RotationXYZ {	
       axis Z
       angle 0
    }
    Transform {
       translation 0 0 0.5
    }
    Separator {	
       Material {
          diffuseColor 0.05 0.05 0.05
       }
       Transform {
          rotation 1 0 0 1.5708
          scaleFactor 0.2 0.5 0.2
       }
       Cylinder {
       }
    }
}

Come potete vedere, la struttura è molto semplice. Si utilizzano nodi (separator) per organizzare i dati in blocchi, un po' come si fa per organizzare i file in cartelle e sottocartelle. Ogni dichiarazione riguarda ciò che viene in seguito, per esempio, i primi due elementi del nostro nodo radice (root separator) sono una rotazione e una traslazione e agiscono entrambi sull'elemento successivo, che è un nodo (separator). In tale nodo sono definiti un materiale e un'altra trasformazione. Pertanto, il nostro cilindro sarà influenzato da entrambe le trasformazioni, da quella che è stata applicata direttamente ad esso e da quella che è stata applicata al suo nodo (separator) genitore.

Per organizzare la nostra scena, sono disponibili molti altri tipi di elementi, come gruppi, commutatori o annotazioni. Possiamo definire dei materiali molto complessi per i nostri oggetti, con colori, texture, modalità di ombreggiatura e trasparenza. Possiamo anche definire luci, punti di vista (camera) e perfino il movimento. È anche possibile incorporare parti di script nei file di OpenInventor, per definire comportamenti più complessi.

Se siete interessati a saperne di più su OpenInventor, consultate direttamente il suo manuale più famoso: il libro Inventor mentor.

Normalmente, in FreeCAD, non è necessario interagire direttamente con il grafo della scena di OpenInventor. Ogni oggetto in un documento di FreeCAD, sia che si tratti di un Mesh, di una forma Parte o di qualsiasi altra cosa, viene automaticamente convertito in codice OpenInventor e inserito nel grafo di scena principale che appare in una vista 3D. Questo grafo di scena viene aggiornato continuamente tutte le volte che si apportano modifiche, si aggiungono o si rimuovono gli oggetti nel documento. In realtà, ogni oggetto (nell'ambito App) ha un fornitore di vista (un corrispondente oggetto nell'ambito Gui), responsabile del rilascio del codice OpenInventor.

Però, potere accedere al direttamente al grafico di scena presenta molti vantaggi. Ad esempio, possiamo modificare temporaneamente la visualizzazione di un oggetto, oppure possiamo aggiungere alla scena oggetti che, nel documento di FreeCAD, non hanno esistenza reale, come la geometria di costruzione, i riferimenti, i suggerimenti grafici oppure strumenti quali manipolatori oppure informazioni sullo schermo.

FreeCAD dispone di diversi strumenti per visualizzare o modificare il codice OpenInventor. Ad esempio, il seguente codice Python mostrerà la rappresentazione OpenInventor di un oggetto selezionato:

obj = FreeCAD.ActiveDocument.ActiveObject
viewprovider = obj.ViewObject 
print viewprovider.toString()

Inoltre, abbiamo anche un modulo Python che consente l'accesso completo a tutto quello che è gestito da Coin3D, come il grafico di scena di FreeCAD. Quindi, continuate la lettura in Pivy.

Altre lingue: Template:Se