Ceci est une page qui va en détail sur le Voxel Plugin et comment il fonctionne. Cette page est surtout destinée aux intégrateurs qui auront à toucher aux Graphs et autres. Pour un guide d’utilisation simplifié, allez consulter le Guide Rapide
Complément d’information et philosophie technique derrière les graph:
Il y a 3 types de nodes qui peuvent composer un Voxel Graph. Leurs types sont détaillés ci-dessous. Une liste complète de toutes les nodes qui existent dans le système, consultez la page Voxel Graph API dans la documentation du plugin.
Nodes Simples: Des nodes qui gèrent les opérations les plus courantes dans la génération, comme les opérations mathématiques ou les opérations logiques directes. Ces Nodes sont vertes dans l’engin. Elles prennent un input, font les opérations directes et simples, et retournes l’output de cette opération.

Nodes Complexes: Contrairement aux nodes simples, les nodes complexes peuvent faire des mutations sur les données des Query à leur passage, et peuvent exécuter des opérations asynchrones. Par contre, ces nodes ont le potentiel d’impacter la capacité d’un graph de mettre en cache des données et de réutiliser ces valeurs. En général, les nodes complexes ont un impact plus significatif sur les performances, comparativement aux nodes simples. Ces nodes sont de couleur bleues dans l’engin

Nodes d’execution (ou MetaNodes): Là ou les nodes simples et complexes sont des nodes qui prennent un input, font des opérations, et ressortent le résultat en output, les MetaNodes sont des ponts vers les systèmes au coeur de l’engin. Elles sont responsables de créer des outputs qui peuvent être referenced et interacted with par le reste de Unreal Engine

Documentation officielle du plugin: (Note: la documentation est très incomplète. D’ou pourquoi je veux tenir à jour une documentation plus en détail ici. Sachez également que les Release Notes ont tendance à être des bonnes source d’info sur les trucs qui ne sont pas documentés dans la docu)
Glossaire et terminologie du Plugin:
Release Notes pour la Version 2.0p-340, qui est utilisée dans le projet:
Pour comprendre rapidement la logique utilisée par le Voxel Plugin et comment celui-ci génère des terrains/surfaces:
L’éxécution des graphs commence avec par les MetaNodes. Les MetaNodes qui existent dans un graph vont être exécutés seulement quand le graph est appelé dans le monde. Ces MetaNodes ne vont pas s’éxécuter automatiquement si une node est connectée dans sa pin Execution. Dans ce cas, la MetaNode sera appelée quand le Graph connecté à sa exec node sera exécuté.
L’éxécution des graphs se fait de droite à gauche. Quand une MetaNode est appelée, elle va évaluer si elle a toute l’information qu’elle a besoin pour s’éxécuter. Si la node d’éxécution n’as pas de node connecté en input, elle va simplement retourner l’output qui lui est demandé. Par contre, si elle a des nodes de connectés dans ses pins de input, ces nodes doivent êtres évaluées pour produire l’output désiré. Donc, la MetaNode va appeler la ou les nodes connectées en input, et celle-ci va faire la même chose, remontant ainsi à reculons dans le graph, jusqu’à ce qu’un node sans input soit atteinte.
Alors que la plupart des informations se passe de gauche à droite, cette méthode “inversée” d’éxécution est cruciale car elle nous permet d’envoyer des données de droite à gauche. C’est ce qu’on appelle le Query Data.
Une Node qui appelle une autre node peut envoyer de l’information en aval, ce qui est appelé le Query Data. Une node qui fournit du Query Data va envoyer cette information à toutes les nodes qu’il appelle, ce qui veut dire que cette information peut être accédée et lue par n’importe quelle node en aval. Ces informations peuvent être également modifiées par les Nodes Complexes. Certaines nodes en aval vont nécéssiter des Query Data spécifiques, et des erreurs vont sortir si ce n’est pas le cas. Généralement, la solution à ces erreurs va être d’ajouter une autre node en amont.