Scenegraph/es: Difference between revisions

From FreeCAD Documentation
No edit summary
(Updating to match new version of source page)
(28 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
FreeCAD es, en esencia, un collage de varias librerias muy potentes, siendo las más importantes [http://en.wikipedia.org/wiki/Open_CASCADE openCascade], para la gestión y construcción de la geometría, [http://en.wikipedia.org/wiki/Coin3D Coin3d] para visualizar esa geometría, y [http://en.wikipedia.org/wiki/Qt_(toolkit) Qt] para poner todo esto en una bonita interfaz gráfica de usuario (GUI).
{{docnav|[[Mesh to Part|Mesh to Part]]|[[Pivy|Pivy]]}}

La geometría que aparece en las vistas 3D de FreeCAD son renderizadas por la biblioteca Coin3D. Coin3D es una implementación del estandard [http://en.wikipedia.org/wiki/Open_Inventor OpenInventor]. El software OpenCascade también proporciona la misma funcionalidad, pero se decidió, al comenzar el desarrollo de FreeCAD, no utilizar el visor de OpenCascade, sino cambiar al software Coin3D, por tener mejor rendimiento.


<div class="mw-translate-fuzzy">
La geometría que aparece en las vistas 3D de FreeCAD son renderizadas por la biblioteca Coin3D. Coin3D es una implementación del estandard [http://en.wikipedia.org/wiki/Open_Inventor OpenInventor]. El software OpenCascade también proporciona la misma funcionalidad, pero se decidió, al comenzar el desarrollo de FreeCAD, no utilizar el visor de OpenCascade, sino cambiar al software Coin3D, por tener mejor rendimiento. Un buen modo de aprender sobre esa librería es el libro [http://www-evasion.imag.fr/Membres/Francois.Faure/doc/inventorMentor/sgi_html/ Open Inventor Mentor].
</div>


<div class="mw-translate-fuzzy">
[http://en.wikipedia.org/wiki/Open_Inventor OpenInventor] es en realidad un lenguaje de descripción de escena 3D. La escena descrita en openInventor es seguidamente renderizada en la pantalla con OpenGL. Coin3d se encarga de hacer esto, por lo que el programador no tiene que lidiar con complejas llamadas a OpenGL, bastará con que le proporcione código OpenInventor válido. La gran ventaja es que openInventor es un estándard muy bien conocido y bien documentado.
[http://en.wikipedia.org/wiki/Open_Inventor OpenInventor] es en realidad un lenguaje de descripción de escena 3D. La escena descrita en openInventor es seguidamente renderizada en la pantalla con OpenGL. Coin3d se encarga de hacer esto, por lo que el programador no tiene que lidiar con complejas llamadas a OpenGL, bastará con que le proporcione código OpenInventor válido. La gran ventaja es que openInventor es un estándard muy bien conocido y bien documentado.
</div>


<div class="mw-translate-fuzzy">
Uno de los trabajos mas inportantes que hace FreeCAD hace por ti es, básicamente, traducir la información de geometría OpenCascade al idioma openInventor.
Uno de los trabajos mas inportantes que FreeCAD hace por ti es, básicamente, traducir la información de geometría OpenCascade al idioma de openInventor.
</div>


OpenInventor describe una escena 3D en forma de un [http://en.wikipedia.org/wiki/Scene_graph scenegraph], como la siguiente:
OpenInventor describe una escena 3D en forma de una [http://en.wikipedia.org/wiki/Scene_graph escena gráfica] (scenegraph), como la siguiente:


[[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]


Una escena gráfica de openInventor describe todo lo que es parte de una escena 3D, como la geometría, colores, materiales, luces, etc, y organiza todos los datos en una estructura cómoda y clara. Todo puede agruparse en sub-estructuras, lo que te permite organizar los contenidos de tu escena más o menos de la forma que quiera. He aquí un ejemplo de un archivo de openInventor:
An openInventor scenegraph describes everything that makes part of a 3D scene, such as geometry, colors, materials, lights, etc, and organizes all that data in a convenient and clear structure. Everything can be grouped into sub-structures, allowing you to organize your scene contents pretty much the way you like. Here is an example of an openInventor file:
{{Code|code=

#Inventor V2.0 ascii

Un scenegraph openInventor describe todo lo que hay en el marco de un escenario 3D, como la geometría, colores, materiales, luces, etc, y organiza todos los datos en una estructura cómoda y clara. Todo puede ser agrupados en sub-estructuras, lo que le permite organizar los contenidos de sus escena más o menos en la forma que quiera. He aquí un ejemplo de un archivo openInventor:

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

Como puede ver, la estructura es muy simple. Utilice separadores para organizar los datos en bloques, un poco como lo haría al organizar sus archivos en carpetas. Cada declaración afecta a lo que viene después, por ejemplo los dos primeros puntos de nuestro separador de raíz son una rotación y una traslación, todo ello afectará al siguiente item, que es un separador. En ese separador, se define un material y otra transformación. Nuestro cilindro por lo tanto se verán afectados por las dos transformaciones, la que le fue aplicada directamente, y la que se aplicó al separador que le contiene.

También tenemos muchos otros tipos de elementos para organizar nuestra escena, como los grupos, interruptores o anotaciones. Podemos definir materiales muy complejos para nuestros objetos, con el color, las texturas, los modos de sombreado y transparencia. También podemos definir las luces, cámaras, e incluso movimiento. También es posible integrar pedazos de secuencias de comandos en los archivos de openInventor, para definir comportamientos más complejos.


}}
Si usted está interesado en aprender más sobre openInventor, vaya directamente a su referencia más famosa, [http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html Inventor mentor].


Como puedes ver, la estructura es muy simple. Utiliza separadores para organizar los datos en bloques, parecido a como harías al organizar tus archivos en carpetas. Cada declaración afecta a lo que viene después, por ejemplo los dos primeros puntos de nuestro separador raíz son una rotación y una traslación, todo ello afectará al siguiente elemento, que es un separador. En ese separador, se define un material y otra transformación. Nuestro cilindro por lo tanto se verá afectado por las dos transformaciones, la que le fue aplicada directamente, y la que se aplicó al separador que le contiene.
En FreeCAD, normalmente, no es necesario interactuar directamente con el scenegraph openInventor. Cada objeto en un documento FreeCAD, ya sea una malla, una forma de pieza o cualquier otra cosa, se convierte automáticamente en código openInventor y se inserta en el scenegraph principales que aparece en una vista 3D. Esa scenegraph se actualiza continuamente cuando hace modificaciones, añade o elimina objetos en el documento. De hecho, cada objeto (en el espacio app) tiene un proveedor de vista (un objeto correspondiente en el espacio del GUI), responsables de la expedición de código openInventor.


También tenemos muchos otros tipos de elementos para organizar nuestra escena, como los grupos, conmutadores o anotaciones. Podemos definir materiales muy complejos para nuestros objetos, con el color, las texturas, los modos de sombreado y transparencia. También podemos definir las luces, cámaras, e incluso movimiento. También es posible integrar pedazos de secuencias de comandos en los archivos de openInventor, para definir comportamientos más complejos.
Pero poder acceder a la scenegraph directamente tiene muchas ventajas. Por ejemplo, puede cambiar temporalmente la apariencia de un objeto, o podemos agregar objetos a la escena que no tienen existencia real en el documento FreeCAD, como la geometría de la construcción, ayudantes, sugerencias o herramientas gráficas como manipuladores o información en pantalla.


Si estás interesado en aprender más sobre openInventor, vete directamente a su referencia más famosa, [http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html Inventor mentor].
FreeCAD cuenta con varias herramientas para ver o modificar código openInventor. Por ejemplo, el código python siguiente muestra la representación openInventor de un objeto seleccionado:


En FreeCAD, normalmente, no es necesario interactuar directamente con la escena gráfica (scenegraph) de openInventor. Cada objeto en un documento de FreeCAD, ya sea una malla, una forma de pieza o cualquier otra cosa, se convierte automáticamente en código de openInventor y se inserta en la escena gráfica (scenegraph) principal que aparecen en una vista 3D. Esa escena gráfica se actualiza continuamente cuando se hacen modificaciones, se añaden o eliminan objetos en el documento. De hecho, cada objeto (en el espacio App) tiene un proveedor de vista (un objeto correspondiente en el espacio de la interfaz gráfica del usuario GUI), responsable de la expedición de código de openInventor.
obj = FreeCAD.ActiveDocument.ActiveObject
viewprovider = obj.ViewObject
print viewprovider.toString()


Pero poder acceder a la escena gráfica directamente tiene muchas ventajas. Por ejemplo, puedes cambiar temporalmente la apariencia de un objeto, o podemos agregar objetos a la escena que no tienen existencia real en el documento de FreeCAD, como la geometría constructiva, ayudantes, sugerencias o herramientas gráficas como manipuladores o información en pantalla.
Pero también tenemos un módulo de python que permite un acceso completo a todo lo controlado por Coin3d. Ese módulo es el scenegraph de FreeCAD. Siga leyendo en [[Pivy]].


FreeCAD cuenta con varias herramientas para ver o modificar código de openInventor. Por ejemplo, el código de Python siguiente muestra la representación en openInventor de un objeto seleccionado:
{{Code|code=
obj = FreeCAD.ActiveDocument.ActiveObject
viewprovider = obj.ViewObject
print viewprovider.toString()


}}
<div class="mw-translate-fuzzy">
Pero también tenemos un módulo de Python que permite un acceso completo a todo lo controlado por Coin3d, como la escena gráfica (scenegraph) de FreeCAD. Sigue leyendo en [[Pivy/es|Pivy]].
</div>


<div class="mw-translate-fuzzy">
{{docnav/es|Mesh to Part/es|Pivy/es}}
{{docnav/es|Mesh to Part/es|Pivy/es}}
</div>


{{Userdocnavi}}
{{languages/es| {{se|Scenegraph/se}} }}


[[Category:Poweruser Documentation]]
[[Category:Poweruser Documentation/es]]
{{clear}}

Revision as of 08:11, 14 June 2019

La geometría que aparece en las vistas 3D de FreeCAD son renderizadas por la biblioteca Coin3D. Coin3D es una implementación del estandard OpenInventor. El software OpenCascade también proporciona la misma funcionalidad, pero se decidió, al comenzar el desarrollo de FreeCAD, no utilizar el visor de OpenCascade, sino cambiar al software Coin3D, por tener mejor rendimiento. Un buen modo de aprender sobre esa librería es el libro Open Inventor Mentor.

OpenInventor es en realidad un lenguaje de descripción de escena 3D. La escena descrita en openInventor es seguidamente renderizada en la pantalla con OpenGL. Coin3d se encarga de hacer esto, por lo que el programador no tiene que lidiar con complejas llamadas a OpenGL, bastará con que le proporcione código OpenInventor válido. La gran ventaja es que openInventor es un estándard muy bien conocido y bien documentado.

Uno de los trabajos mas inportantes que FreeCAD hace por ti es, básicamente, traducir la información de geometría OpenCascade al idioma de openInventor.

OpenInventor describe una escena 3D en forma de una escena gráfica (scenegraph), como la siguiente:

image from Inventor mentor

Una escena gráfica de openInventor describe todo lo que es parte de una escena 3D, como la geometría, colores, materiales, luces, etc, y organiza todos los datos en una estructura cómoda y clara. Todo puede agruparse en sub-estructuras, lo que te permite organizar los contenidos de tu escena más o menos de la forma que quiera. He aquí un ejemplo de un archivo de 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 {
       }
    }
}

Como puedes ver, la estructura es muy simple. Utiliza separadores para organizar los datos en bloques, parecido a como harías al organizar tus archivos en carpetas. Cada declaración afecta a lo que viene después, por ejemplo los dos primeros puntos de nuestro separador raíz son una rotación y una traslación, todo ello afectará al siguiente elemento, que es un separador. En ese separador, se define un material y otra transformación. Nuestro cilindro por lo tanto se verá afectado por las dos transformaciones, la que le fue aplicada directamente, y la que se aplicó al separador que le contiene.

También tenemos muchos otros tipos de elementos para organizar nuestra escena, como los grupos, conmutadores o anotaciones. Podemos definir materiales muy complejos para nuestros objetos, con el color, las texturas, los modos de sombreado y transparencia. También podemos definir las luces, cámaras, e incluso movimiento. También es posible integrar pedazos de secuencias de comandos en los archivos de openInventor, para definir comportamientos más complejos.

Si estás interesado en aprender más sobre openInventor, vete directamente a su referencia más famosa, Inventor mentor.

En FreeCAD, normalmente, no es necesario interactuar directamente con la escena gráfica (scenegraph) de openInventor. Cada objeto en un documento de FreeCAD, ya sea una malla, una forma de pieza o cualquier otra cosa, se convierte automáticamente en código de openInventor y se inserta en la escena gráfica (scenegraph) principal que aparecen en una vista 3D. Esa escena gráfica se actualiza continuamente cuando se hacen modificaciones, se añaden o eliminan objetos en el documento. De hecho, cada objeto (en el espacio App) tiene un proveedor de vista (un objeto correspondiente en el espacio de la interfaz gráfica del usuario GUI), responsable de la expedición de código de openInventor.

Pero poder acceder a la escena gráfica directamente tiene muchas ventajas. Por ejemplo, puedes cambiar temporalmente la apariencia de un objeto, o podemos agregar objetos a la escena que no tienen existencia real en el documento de FreeCAD, como la geometría constructiva, ayudantes, sugerencias o herramientas gráficas como manipuladores o información en pantalla.

FreeCAD cuenta con varias herramientas para ver o modificar código de openInventor. Por ejemplo, el código de Python siguiente muestra la representación en openInventor de un objeto seleccionado:

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

Pero también tenemos un módulo de Python que permite un acceso completo a todo lo controlado por Coin3d, como la escena gráfica (scenegraph) de FreeCAD. Sigue leyendo en Pivy.

Mesh to Part/es
Pivy/es