La version Editeur est en Interface normale!
La version Convertisseur est en ligne de commande! ( plutôt réservée aux codeurs! :)
La version Convertisseur est en ligne de commande! ( plutôt réservée aux codeurs! :)
Bienvenue sur VENGI
Il s'agit d'un moteur de jeu voxel C++ et de ses outils. Il comprend un éditeur de voxels avec un support pour l'animation des personnages et le chargement/sauvegarde dans de nombreux formats de volumes de voxels. Il y a d'autres outils comme par exemple un thumbnailer (Vo) pour votre gestionnaire de fichiers et un outil en ligne de commande pour convertir ou modifier (Vo) entre plusieurs formats voxels.
Pour en savoir plus sur les fonctionnalités et les mises à jour de statut, consultez mon profil twitter. (Vo)
Le code source du projet se trouve sur github/mgerhardy/vengi. Nous fournissons également des binaires debian et windows à cette même adresse.
Rejoignez notre serveur discord. (Vo)
Si vous êtes venu ici pour utiliser un éditeur de voxels ou pour convertir vos modèles de voxels en un fichier obj ou ply, vous devriez simplement aller à la page de téléchargement (Vo) et consulter la documentation plus bas (Vf) de l'outil comme indiqué dans la barre de navigation.
Si vous êtes venu ici en tant que développeur, assurez-vous de vérifier les dépendances (Vo) et de configurer votre environnement de développement. Les scripts de construction sont basés sur cmake, alors assurez-vous de l'avoir installé et de générer les fichiers de projet pour votre idéal souhaité. Après avoir tout configuré, assurez-vous de consulter le guide de compilation. (Vo)
Pour en savoir plus sur les fonctionnalités et les mises à jour de statut, consultez mon profil twitter. (Vo)
Le code source du projet se trouve sur github/mgerhardy/vengi. Nous fournissons également des binaires debian et windows à cette même adresse.
Rejoignez notre serveur discord. (Vo)
Si vous êtes venu ici pour utiliser un éditeur de voxels ou pour convertir vos modèles de voxels en un fichier obj ou ply, vous devriez simplement aller à la page de téléchargement (Vo) et consulter la documentation plus bas (Vf) de l'outil comme indiqué dans la barre de navigation.
Si vous êtes venu ici en tant que développeur, assurez-vous de vérifier les dépendances (Vo) et de configurer votre environnement de développement. Les scripts de construction sont basés sur cmake, alors assurez-vous de l'avoir installé et de générer les fichiers de projet pour votre idéal souhaité. Après avoir tout configuré, assurez-vous de consulter le guide de compilation. (Vo)
Vox Edit : l'editeur Voxel
Au Sujet de Vox Edit
Il s'agit d'un éditeur de volume voxel opensource, multiplateforme, avec support de script.
Configuration requise
OpenGL 3.2
Vous pouvez charger et sauvegarder un grand nombre de formats de voxels différents. Il est construit autour de palettes de 256 couleurs. Le support de l'animation est en cours.
Le moteur est construit autour d'une palette de 256 couleurs. Les palettes personnalisées sont prises en charge. Les images doivent avoir une dimension de 1x256 pixels.
Vous pouvez importer des palettes à partir d'un grand nombre de formats d'images ou de palettes (gimp, rgb, png, ...) - ou à partir de formats de volumes voxels (si supportés).
La palette peut généralement être spécifiée par la cvar palette et peut être soit un chemin complet vers un fichier png, soit un identifiant. Si vous décidez d'utiliser l'identifiant - par exemple nippon - la cvar palette est définie à cette valeur et le moteur recherchera automatiquement dans tous les chemins d'accès au système de fichiers enregistrés un fichier nommé palette-nippon.png.
Configuration requise
OpenGL 3.2
Vous pouvez charger et sauvegarder un grand nombre de formats de voxels différents. Il est construit autour de palettes de 256 couleurs. Le support de l'animation est en cours.
Le moteur est construit autour d'une palette de 256 couleurs. Les palettes personnalisées sont prises en charge. Les images doivent avoir une dimension de 1x256 pixels.
Vous pouvez importer des palettes à partir d'un grand nombre de formats d'images ou de palettes (gimp, rgb, png, ...) - ou à partir de formats de volumes voxels (si supportés).
La palette peut généralement être spécifiée par la cvar palette et peut être soit un chemin complet vers un fichier png, soit un identifiant. Si vous décidez d'utiliser l'identifiant - par exemple nippon - la cvar palette est définie à cette valeur et le moteur recherchera automatiquement dans tous les chemins d'accès au système de fichiers enregistrés un fichier nommé palette-nippon.png.
Fonctionnalités
Voici quelques-unes de ses caractéristiques :
- API de script LUA (Vo) et éditeur intégré
- Support des calques et du graphe de scène
- Recadrage automatique des volumes
- Génération automatique de contenu comme les arbres ou les volumes de bruit
- Importation d'images comme heightmaps, palettes ou plans
- Interface utilisateur personnalisable
- Intégration du L-System
- Annuler/Refaire
- Palettes de couleurs personnalisées
- Captures d'écran de la fenêtre de visualisation
- Support de l'animation des couches
- Support de l'animation des images clés (WIP)
- Liaisons de touches personnalisées
- Afficher les commandes d'actions (pour configurer vos propres raccourcis clavier)
- Copier/Couper/Coller - coller au curseur ou à la position de référence
- Exportation de calques simples ou de scènes entières en maillages et dans de nombreux autres formats
- Générer des volumes de niveau de détails (LOD)
- Importer des maillages et les voxéliser
Les Contrôles
- Placement des voxels à l'aide du bouton gauche de la souris ou des curseurs SHIFT+[CTRL+].
- Suppression de voxels à l'aide du bouton droit de la souris.
- Rotation de la fenêtre de visualisation en cliquant sur le bouton central de la souris et en déplaçant la souris.
- Déplacement de la caméra en maintenant la touche Alt enfoncée et en déplaçant la souris.
- Maintenir les boutons gauche ou droit de la souris étend un AABB pour effectuer l'action en
- L'utilisation du keybinding pour la commande +actionexecute (v) vous permet également de couvrir un AABB avec les touches du curseur (resp. les touches qui sont liées aux commandes +movecursor[direction]).
- Enter place la position de référence à la position actuelle du curseur
- SHIFT+Tab ouvre la console (tapez cmdlist et cvarlist)
Configuration
Voir ./vengi-voxedit --help pour plus de détails!
Les variables de Configuration :
- ve_ambientcolor:
- ve_animspeed:
- ve_autosaveseconds:
- ve_camzoomspeed:
- ve_diffusecolor:
- ve_grayinactive:
- ve_gridsize:
- ve_lastfile:
- ve_lastfiles:
- ve_lastpalette:
- ve_modelspace:
- ve_rendershadow:
- ve_showaabb:
- ve_showaxis:
- ve_showgrid:
- ve_showlockedaxis:
les variables de Configuration
Le moteur peut être configuré par ce qu'on appelle des cvars (variables de configuration). Ces variables peuvent être modifiées depuis le jeu via les raccourcis clavier, la console du jeu, l'interface utilisateur ou les scripts.
Pour obtenir une liste des cvars supportées (elles peuvent différer d'une application à l'autre), tapez la commande cvarlist dans la console du jeu (CTRL+Tab dans le binding par défaut).
Les variables peuvent obtenir leur valeur initiale de différentes sources. La plus élevée est la ligne de commande. Si vous la spécifiez sur la ligne de commande, toutes les autres méthodes ne seront pas utilisées. Si le moteur trouve le nom de la cvar dans vos variables d'environnement, celle-ci aura la priorité sur celle qui se trouve dans le fichier de configuration. Ensuite, il y a le fichier de configuration - celui-ci aura la priorité sur les paramètres par défaut qui sont spécifiés dans le code.
La variable d'environnement peut être en minuscule ou en majuscule. Par exemple, elle fonctionnera si vous avez exporté CL_WIDTH ou cl_width. La variante en minuscule a la priorité la plus élevée.
Ligne de commande
./vengi-voxvonvert -set voxformat_scale 2.0 [...]
Environnement
export VOXFORMAT_SCALE=2.0
./vengi-voxconvert [...]
Fichier de configuration
Linux : ~/.local/share/vengi/voxconvert/voxconvert.vars
Windows : C:/Users/bob/AppData/Roaming/vengi/voxconvert/voxconvert.vars
Mac : /Users/bob/Library/Application Support/vengi/voxconvert/voxconvert.vars
Chemins de recherche
Vous pouvez obtenir une liste des chemins de recherche en appelant l'application particulière avec le paramètre --help sur la ligne de commande. Ceci imprimera une liste de chemins de recherche. Vous pouvez même ajouter vos propres chemins en définissant la cvar core_path.
Pour les créateurs de Packages, il peut être intéressant de définir la variable cmake PKGDATADIR.
Commandes
Pour obtenir une liste des commandes supportées (elles peuvent différer d'une application à l'autre), tapez la commande cmdlist dans la console du jeu (CTRL+Tab dans le binding par défaut).
Vous pouvez également obtenir une liste en tapant ./vengi-app --help sur la ligne de commande.
Liaisons de touches
Vous pouvez également modifier ou ajouter des liaisons de touches aux commandes. Tapez bindlist dans la console pour obtenir une liste des liaisons actives actuelles (et aussi ici : elles peuvent différer d'une application à l'autre). La commande bind peut être utilisée pour configurer les liaisons de touches à la volée. Ces liaisons sont sauvegardées dans un fichier à l'arrêt.
Journalisation
Vous pouvez journaliser via syslog (sous unix) ou vers stdout (cela peut bien sûr différer d'une plateforme à l'autre).
Le niveau de journalisation est configuré par la variable core_loglevel. Plus la valeur est faible, plus vous voyez de choses. 1 est le niveau de journal le plus élevé (trace), où 5 est le niveau de journal le plus bas (erreur fatale).
Général
Pour obtenir une vue d'ensemble de l'utilisation, vous pouvez lancer une application avec --help. Elle affichera les commandes et les variables de configuration avec une description et des indications sur la façon de les modifier/utiliser.
Paramètres vidéo
Pour obtenir une liste des cvars supportées (elles peuvent différer d'une application à l'autre), tapez la commande cvarlist dans la console du jeu (CTRL+Tab dans le binding par défaut).
Les variables peuvent obtenir leur valeur initiale de différentes sources. La plus élevée est la ligne de commande. Si vous la spécifiez sur la ligne de commande, toutes les autres méthodes ne seront pas utilisées. Si le moteur trouve le nom de la cvar dans vos variables d'environnement, celle-ci aura la priorité sur celle qui se trouve dans le fichier de configuration. Ensuite, il y a le fichier de configuration - celui-ci aura la priorité sur les paramètres par défaut qui sont spécifiés dans le code.
La variable d'environnement peut être en minuscule ou en majuscule. Par exemple, elle fonctionnera si vous avez exporté CL_WIDTH ou cl_width. La variante en minuscule a la priorité la plus élevée.
Ligne de commande
./vengi-voxvonvert -set voxformat_scale 2.0 [...]
Environnement
export VOXFORMAT_SCALE=2.0
./vengi-voxconvert [...]
Fichier de configuration
Linux : ~/.local/share/vengi/voxconvert/voxconvert.vars
Windows : C:/Users/bob/AppData/Roaming/vengi/voxconvert/voxconvert.vars
Mac : /Users/bob/Library/Application Support/vengi/voxconvert/voxconvert.vars
Chemins de recherche
Vous pouvez obtenir une liste des chemins de recherche en appelant l'application particulière avec le paramètre --help sur la ligne de commande. Ceci imprimera une liste de chemins de recherche. Vous pouvez même ajouter vos propres chemins en définissant la cvar core_path.
Pour les créateurs de Packages, il peut être intéressant de définir la variable cmake PKGDATADIR.
Commandes
Pour obtenir une liste des commandes supportées (elles peuvent différer d'une application à l'autre), tapez la commande cmdlist dans la console du jeu (CTRL+Tab dans le binding par défaut).
Vous pouvez également obtenir une liste en tapant ./vengi-app --help sur la ligne de commande.
Liaisons de touches
Vous pouvez également modifier ou ajouter des liaisons de touches aux commandes. Tapez bindlist dans la console pour obtenir une liste des liaisons actives actuelles (et aussi ici : elles peuvent différer d'une application à l'autre). La commande bind peut être utilisée pour configurer les liaisons de touches à la volée. Ces liaisons sont sauvegardées dans un fichier à l'arrêt.
Journalisation
Vous pouvez journaliser via syslog (sous unix) ou vers stdout (cela peut bien sûr différer d'une plateforme à l'autre).
Le niveau de journalisation est configuré par la variable core_loglevel. Plus la valeur est faible, plus vous voyez de choses. 1 est le niveau de journal le plus élevé (trace), où 5 est le niveau de journal le plus bas (erreur fatale).
Général
Pour obtenir une vue d'ensemble de l'utilisation, vous pouvez lancer une application avec --help. Elle affichera les commandes et les variables de configuration avec une description et des indications sur la façon de les modifier/utiliser.
Paramètres vidéo
- cl_vsync : activer ou désactiver v-sync
- cl_gamma : modifie la valeur gamma qui est appliquée en dernier lors du rendu
- cl_width : la largeur de la fenêtre
- cl_height : la hauteur de la fenêtre
- cl_display : l'index d'affichage si vous utilisez plusieurs moniteurs [0-numDisplays)
- cl_fullscreen : true ou 1 pour exécuter les applications basées sur les fenêtres en mode plein écran.
Vox COnvert : Le Convertisseur en Ligne de code
Ne sera pas traduit ni traité ici! Pour cela voir l'original (Vo)
Outil en ligne de commande pour convertir des volumes de voxels, des formats d'images ou de polygones entre eux.
La modification des voxels est également prise en charge - rotation, transfert, création de logement, extraction de palette, exécution de scripts lua et bien plus encore.
Si vous avez besoin d'un moyen d'automatiser vos actifs voxels pour votre pipeline artistique, voxconvert pourrait être un outil que vous trouverez utile.
Si vous avez besoin, par exemple, d'appliquer une couche de neige sur vos voxels, de mettre de l'herbe partout ou simplement d'épaissir vos voxels, consultez l'intégration de scripts lua et les scripts par défaut livrés avec l'outil.
Si vous avez des images que vous souhaitez convertir en voxels incluant la profondeur, vous pouvez importer l'image comme un plan et appliquer les valeurs de profondeur pour chaque voxel.
La modification des voxels est également prise en charge - rotation, transfert, création de logement, extraction de palette, exécution de scripts lua et bien plus encore.
Si vous avez besoin d'un moyen d'automatiser vos actifs voxels pour votre pipeline artistique, voxconvert pourrait être un outil que vous trouverez utile.
Si vous avez besoin, par exemple, d'appliquer une couche de neige sur vos voxels, de mettre de l'herbe partout ou simplement d'épaissir vos voxels, consultez l'intégration de scripts lua et les scripts par défaut livrés avec l'outil.
Si vous avez des images que vous souhaitez convertir en voxels incluant la profondeur, vous pouvez importer l'image comme un plan et appliquer les valeurs de profondeur pour chaque voxel.
L'API pour les Scripts (WIP)
Il existe une commande console (appelée xs) dans voxedit et un paramètre de ligne de commande dans voxconvert pour exécuter des scripts lua pour générer des voxels. Cette commande attend le nom de fichier du script lua (.lua peut être omis) et les arguments supplémentaires pour la méthode main().
Si vous êtes novice en matière de lua, vous pouvez en lire plus sur lua-users.
voxedit
Appeler xs <script> help (dans la console de script) imprimera les arguments supportés pour le fichier de script donné dans voxedit.
voxconvert
./vengi-voxconvert --script "<script> help" --scriptcolor 1 --input in.qb --output out.qb
--scriptcolor définit l'index de la palette de couleurs qui est donné au script comme paramètre.
Par défaut, les fichiers de script seront recherchés dans un dossier de scripts à côté de l'endroit où se trouve le binaire et dans les chemins de recherche habituels (voir configuration pour plus de détails). Vous pouvez aussi donner le chemin complet du fichier de script.
Il y a deux fonctions dans chaque script. L'une est appelée arguments et l'autre main. arguments renvoie une liste de paramètres pour la fonction main. Les paramètres par défaut pour main sont node, region et color. color est l'index de la palette qui commence à 0.
Exemples
Sans paramètres
function main(node, region, color)
local volume = node:volume()
local mins = region:mins()
local maxs = region:maxs()
for x = mins.x, maxs.x do
for y = mins.y, maxs.y do
for z = mins.z, maxs.z do
volume:setVoxel(x, y, z, color)
fin
fin
fin
fin
Exécuter ceci via le scriptfile xs de la console
Avec un paramètre
fonction arguments()
return {
{ name = 'n', desc = 'height level delta', type = 'int', default = '2' }
}
end
fonction main(node, region, color, n)
[...]
end
Exécutez cette fonction via la console xs scriptfile 1 où 1 sera la valeur de n. Omettre le 1 ajoutera la valeur par défaut de la liste d'arguments.
Trouver la meilleure correspondance de palette
function main(node, region, color)
-- trouve la correspondance (index de palette) pour le rouge dans la palette actuelle (valeur RVB)
-- cette valeur peut être utilisée dans par exemple volume:setVoxel(x, y, z, match)
local match = node:palette().match(255, 0, 0)
[...]
end
Ceci trouvera la meilleure correspondance dans la palette actuellement utilisée et retournera l'index.
Arguments
Les types supportés sont :
- int : les valeurs min et max sont également supportées.
- float : les valeurs min et max sont également prises en charge.
- enum : enum en tant que propriété spécifie une liste de chaînes séparées par ,
- str : entrée de chaîne de caractères
- colorindex : un indice de couleur de la palette actuelle (fixé)
- bool :
Une valeur par défaut peut également être définie.
L'ordre dans le tableau des arguments définit l'ordre dans lequel les arguments sont transmis au script.
SceneGraph
scenegraph vous permet d'accéder à différents nœuds ou d'en créer de nouveaux.
Les fonctions sont les suivantes :
new(nom, région[, visible]) : Crée un nouveau noeud avec le nom donné, la taille et la position selon la région et un paramètre visible optionnel.
get([nodeId]) : Retourne le noeud pour le nodeId donné - si le nodeId n'est pas donné, il retournera le noeud actif actuel. Par défaut, il s'agit du nœud du volume pour lequel le script est actuellement exécuté.
SceneGraphNode
local scenegraphnode = [...]
local name = scenegraphnode:name()
Couleur
La palette du noeud (node:palette()) a plusieurs méthodes pour travailler avec les couleurs. Par exemple, pour trouver une correspondance la plus proche possible pour l'indice de palette donné.
Les fonctions sont les suivantes :
Elles sont disponibles comme par exemple palette:color([...]), palette:match([...]) et ainsi de suite.
Bruit (Noise)
Le bruit global supporte quelques générateurs de bruit :
noise2(v), noise3(v), noise4(v) : Bruit simplex. Utilise le vec2, vec3 ou vec4 donné et retourne une valeur flottante entre 0.0 et 1.0.
fBm2(v, octaves, lacunarité, gain), fBm3(v, octaves, lacunarité, gain), fBm4(v, octaves, lacunarité, gain) : Somme de mouvements browniens fractals à bruit simplex. Utilise le vec2, vec3 ou vec4 donné et retourne une valeur flottante entre 0.0 et 1.0.
Ils sont disponibles comme par exemple noise.noise2([...]), noise.fBm3([...]) et ainsi de suite.
SceneGraph
scenegraph vous permet d'accéder à différents nœuds ou d'en créer de nouveaux.
Les fonctions sont les suivantes :
new(nom, région[, visible]) : Crée un nouveau noeud avec le nom donné, la taille et la position selon la région et un paramètre visible optionnel.
get([nodeId]) : Retourne le noeud pour le nodeId donné - si le nodeId n'est pas donné, il retournera le noeud actif actuel. Par défaut, il s'agit du nœud du volume pour lequel le script est actuellement exécuté.
SceneGraphNode
- name() : Renvoie le nom actuel du noeud.
- setName(string) : Définit le nom du noeud.
- palette() : Retourne la palette actuelle du noeud.
- setPalette(palette) : Change la palette
- volume() : Vous donne accès au volume du noeud.
local scenegraphnode = [...]
local name = scenegraphnode:name()
Couleur
La palette du noeud (node:palette()) a plusieurs méthodes pour travailler avec les couleurs. Par exemple, pour trouver une correspondance la plus proche possible pour l'indice de palette donné.
Les fonctions sont les suivantes :
- color(paletteIndex) : Pousse le vec4 de la couleur derrière l'index de la palette (0-255) comme valeurs flottantes entre 0.0 et 1.0.
- colors() : Retourne les couleurs RGBA de la palette sous forme de valeurs vec4.
- match(r, g, b) : Renvoie la correspondance de couleur de palette la plus proche possible pour la couleur RVB (0-255) donnée. L'indice de palette renvoyé est compris entre 0 et 255. Cette valeur peut ensuite être utilisée pour la méthode setVoxel.
- similar(paletteindex, [coloramount]) : Renvoie un tableau avec les couleurs similaires données par leur indice de palette.
Elles sont disponibles comme par exemple palette:color([...]), palette:match([...]) et ainsi de suite.
Bruit (Noise)
Le bruit global supporte quelques générateurs de bruit :
noise2(v), noise3(v), noise4(v) : Bruit simplex. Utilise le vec2, vec3 ou vec4 donné et retourne une valeur flottante entre 0.0 et 1.0.
fBm2(v, octaves, lacunarité, gain), fBm3(v, octaves, lacunarité, gain), fBm4(v, octaves, lacunarité, gain) : Somme de mouvements browniens fractals à bruit simplex. Utilise le vec2, vec3 ou vec4 donné et retourne une valeur flottante entre 0.0 et 1.0.
- ridgedMF2(v, offset, octaves, lacunarité, gain), ridgedMF3(v, offset, octaves, lacunarité, gain), ridgedMF4(v, offset, octaves, lacunarité, gain) : Somme de bruit multifractale simplex ridée. Utilise le vec2, vec3 ou vec4 donné et retourne une valeur flottante entre 0.0 et 1.0.
- swissTurbulence(vec2, offset, octaves, lacunarité, gain, warp) : billet de blog
- voronoi(vec3, [frequency, seed, enableDistance]) : Bruit de Voronoï.
- worley2(v), worley3(v) : Bruit simplex cellulaire/worley. Utilise le vec2 ou vec3 donné et retourne une valeur flottante entre 0.0 et 1.0.
Ils sont disponibles comme par exemple noise.noise2([...]), noise.fBm3([...]) et ainsi de suite.
Région
Accédez à ces fonctions comme ceci :
local region = [...]
local mins = region:mins()
Volume
Accédez à ces fonctions comme ceci :
local volume = [...]
local region = volume:region()
Vecteurs
Les types de vecteurs disponibles sont vec2, vec3, vec4 et leurs types entiers ivec2, ivec3, ivec4.
Accédez à ces fonctions comme ceci :
local v1 = ivec3.new(1, 1, 1)
Il y a 3 composantes possibles pour ce vecteur. Vous pouvez aussi appeler ivec3.new(1) pour remplir les trois valeurs avec un 1. Ou l'appeler comme ceci : ivec3.new(1, 2) pour créer un vecteur avec les trois composantes de 1, 2, 2.
Autres
cmd.execute("echo test")
var.int("cl_gamma")
Pour obtenir une liste complète des commandes et des cvars, utilisez les commandes cmdlist et cvarlist de la console.
Région
- mins() : La limite inférieure de la région (inclusivement).
- maxs() : La limite supérieure de la région (inclusivement).
- size() : La taille de la région en voxels (ivec3).
- setMins(mins) : La limite inférieure de la région - donnée en ivec3.
- setMaxs(maxs) : La limite supérieure de la région - donnée sous forme de ivec3.
- x() : La limite inférieure en x de la région.
- y() : La limite inférieure en y de la région.
- z() : La limite inférieure en z de la région.
- width() : La largeur de la région mesurée en voxels.
- height() : La hauteur de la région mesurée en voxels.
- depth() : La profondeur de la région mesurée en voxels.
Accédez à ces fonctions comme ceci :
local region = [...]
local mins = region:mins()
Volume
- voxel(x, y, z) : Renvoie l'index de palette du voxel à la position donnée dans le volume [0-255]. Ou -1 s'il n'y a pas de voxel.
- region() : Retourne la région du volume.
- fillHollows([color]) : Tente de remplir tous les creux dans le volume.
- importHeightmap(nom du fichier, [underground], [surface]) : Importe l'image donnée comme heightmap dans le volume actuel. Utilisez les couleurs des voxels souterrains et de surface pour cela (ou choisissez des valeurs par défaut si elles n'ont pas été spécifiées). Voir aussi importColoredHeightmap si vous voulez coloriser votre surface.
- importColoredHeightmap(nom du fichier, [underground]) : Importe l'image donnée comme heightmap dans le volume actuel. Utilisez les couleurs des voxels souterrains pour cela et déterminez les couleurs de la surface à partir du canal RVB de l'image donnée. En dehors de importHeightmap, la hauteur est encodée dans le canal alpha avec cette méthode.
- crop() : Recadre le volume et supprime les espaces vides.
- mirrorAxis([axis]) : Miroir le long de l'axe donné - y est la valeur par défaut.
- rotateAxis([axis]) : Rotation le long de l'axe donné - y est la valeur par défaut.
- translate(x, [y, z]) : Traduit la région du volume. Gardez à l'esprit que cette fonction n'est pas supportée par tous les formats de sortie.
- resize(x, [y, z, extendMins]) : Redimensionne le volume selon les tailles données. Si extendsMins est vrai, les dimensions de la région sont également augmentées dans le coin inférieur.
- setVoxel(x, y, z, color) : Définit la couleur donnée aux coordonnées données dans le volume. La couleur doit être dans la plage [0-255] ou -1 pour supprimer le voxel.
Accédez à ces fonctions comme ceci :
local volume = [...]
local region = volume:region()
Vecteurs
Les types de vecteurs disponibles sont vec2, vec3, vec4 et leurs types entiers ivec2, ivec3, ivec4.
Accédez à ces fonctions comme ceci :
local v1 = ivec3.new(1, 1, 1)
Il y a 3 composantes possibles pour ce vecteur. Vous pouvez aussi appeler ivec3.new(1) pour remplir les trois valeurs avec un 1. Ou l'appeler comme ceci : ivec3.new(1, 2) pour créer un vecteur avec les trois composantes de 1, 2, 2.
Autres
- y going upwards.
cmd.execute("echo test")
var.int("cl_gamma")
Pour obtenir une liste complète des commandes et des cvars, utilisez les commandes cmdlist et cvarlist de la console.
Scripts disponibles
cover.lua
Génère un nouveau voxel par-dessus les autres avec la couleur sélectionnée actuelle et la hauteur spécifiée.
cover.lua
Génère un nouveau voxel par-dessus les autres avec la couleur sélectionnée actuelle et la hauteur spécifiée.
grass.lua
Génère de l'herbe par-dessus les voxels.
Génère de l'herbe par-dessus les voxels.
grid.lua
Génère une grille avec une couleur, une épaisseur et une taille données.
grid.lua
Génère une grille avec une couleur, une épaisseur et une taille données.
noise.lua
Génère un bruit de perlin avec la fréquence et l'amplitude comme paramètres avec la couleur courante sélectionnée.
pyramide.lua
Génère une pyramide avec la couleur courante sélectionnée et avec chaque niveau de 3 voxels de haut.
thicken.lua
Epaissit le voxel - prend 1 voxel et le convertit en 8 voxels (crée un nouveau noeud pour le résultat).
On peut utiliser l'Editeur Voxel pour transformer les volumes d'une matrice Magicavoxel en Patterns !!!
Voir manipe ci-dessous !
Versions disponibles par invitation sur le Discord Vengi! Aller sur la section Nightly-build-test ! |
Peut marcher en coordination avec le Shader "Space" (Ecarteur) de Lachlan McDonald (ne pas oublier d'agrandir la matrice avant de l'appeler! ). Cela fait des "tranches" sur les 3 axes! (ici en Z )
|