La programmtion avec GeeXLab devient beaucoup plus facile dès lors que l'on comprend la hiérarchie des noeuds (ou node en anglais -- c'est ce terme que j'utiliserai par la suite). Dans GeeXLab chaque objet que vous créez dans une scene est un node. Il y a deux grands types de node:
Les resources comprennent les programmes GPU (essentiellement écrits en GLSL), les textures et les matériaux. Un matériau est une resource qui contient elle-même d'autres resources: un programme
GPU et une ou plusieurs textures.
Le node object inclue tous les nodes que l'on peut rendre (ou dessiner) à l'écran. C'est là que réside la différence fondamentale avec les resources: une resource n'a pas de representation visuelle, elle
ne pas pas être rendue toute seule. Par exemple, pour rendre une texture, il faut passer par un objet de type mesh (un quad par exemple) sur lequel on applique la texture. Même chose pour un programme GPU,
il sert à rendre un objet mais ne peut se rendre lui-même.
Les objets sont les nodes que l'on peut dessiner à l'écran: les meshes, les modèles 3D, les particules, etc. La caméra est un peu particulière car c'est par elle que l'on voit la scène 2D ou 3D. Donc un peu difficile
de se rendre elle-même. Si vous avez besoin de visualiser une caméra dans une scène 3D, vous utiliserez probablement un mesh ou mieux, une polyline (ou encore une des primitives simplifiées comme le cercle, une boîte ou une sphere),
pour la dessiner.
Maintenant que nous avons une vision plus claire des nodes GeeXLab, il est facile de comprendre l'utilisation des différentes librairies de l'API Lua / Python de GeeXLab.
quad = gh_mesh.create_quad(2, 2)
name = gh_node.get_name(quad)
gh_mesh.create_quad créé un mesh de type quad. Ici, quad est l'ID du mesh. On utilise cet ID dans la fonction gh_node.get_name pour obtenir le nom du quad (tous les nodes de GeeXLab ont un nom par défaut).