Caractéristiques | Captures d'écran | Introduction | Installation | Bâtiment | Changelog
Un éditeur léger pour GLSL et HLSL Shaders et un IDE entièrement traduit pour développer des algorithmes basés sur GPU.
Qt6Multimedia ).

Pour commencer, vous pouvez ouvrir et jouer avec les séances d'échantillons dans le menu d'aide .
Afin d'essayer les shaders, la session permet de définir des appels de tirage et de calculer, ainsi que l'état du pipeline et les données sur lesquelles les programmes doivent fonctionner.
Il peut être rempli avec des éléments du menu de session ou du menu contextuel. Undo / refaire, copier / coller et glisser / drop devrait fonctionner comme prévu (également entre plusieurs instances). Il est même possible de faire glisser les éléments vers et depuis un éditeur de texte (ils sont sérialisés en JSON).
Les séances d'échantillons peuvent également être utilisées comme modèles - enregistrer une session comme ... copie toutes les dépendances au nouvel emplacement.
La session peut être évaluée manuellement [F6] , automatiquement chaque fois que quelque chose change pertinent [F7] ou régulièrement [F8] , pour les animations. Tous les éléments qui ont contribué à la dernière évaluation sont mis en évidence.
Les éléments d'une session correspondent à peu près aux concepts connus de la rédaction d'applications OpenGL:
APPEL - Le plus en évidence est le tirage et les appels de calcul. Chaque fois que la session est évaluée, tous les appels actifs sont évalués dans l'ordre consécutif. Ils peuvent être dé- / activés à l'aide de la case à cocher. Le temps écoulé de chaque appel est sorti dans la fenêtre de message (mesuré à l'aide de requêtes de minuterie GPU).
Programme - se compose d'un ou de plusieurs shaders, qui sont liés ensemble, afin qu'ils puissent être utilisés par des appels de dessin ou de calcul.
Texture - Toutes sortes de textures de couleur, de profondeur ou de pochoir peuvent être créées. Ils servent de sources d'échantillons, d'image en et des sorties et des pièces jointes cibles. Ils peuvent être soutenus par des fichiers.
Target - Spécifie où les appels dessine doivent rendre. Plusieurs images peuvent être jointes. Selon le type de l'image joint, différents états de rendu peuvent être configurés.
Liaison - Permet de lier les données aux uniformes, échantillonneurs, images et tampons d'un programme. Une liaison affecte tous les appels suivants, jusqu'à ce qu'il soit remplacé par une liaison par le même nom ou que la portée se termine (voir les groupes ). Le nom d'une contrainte doit correspondre au nom des points de liaison d'un programme.
Les blocs de tampon de tampon définissent la structure d'une région dans un binaire. Ils se composent de lignes avec plusieurs champs d'un type de données. Les tampons peuvent être soutenus par des fichiers binaires.
Stream - sert d'entrée pour les shaders de sommet. Un flux se compose de plusieurs attributs, qui obtiennent leurs données à partir des blocs de tampon référencés.
Groupe - permet de structurer des séances plus complexes. Ils ouvrent une nouvelle portée à moins que la portée en ligne ne soit vérifiée. Les éléments dans une portée ne sont pas visibles pour les éléments à l'extérieur de la portée (ils n'apparaissent pas dans les boîtes combinées).
Script - Permet de définir les fonctions et variables JavaScript dans les fichiers de script, qui peuvent par la suite être utilisés dans des expressions de liaison uniformes. Les scripts peuvent également être utilisés pour remplir dynamiquement la session et générer des données de tampon et de texture. Il y a un état JavaScript pour toute la session et les scripts sont évalués dans l'ordre consécutif (les lunettes de groupe n'ont pas d'effet).
Une construction à jour peut être installée à partir de l'AUR.
Une version portable peut être téléchargée à partir de la dernière page de version.
Un compilateur conformant C ++ 20 est requis. Un script pour le système de construction CMake est fourni. Cela dépend des bibliothèques suivantes, qui peuvent être installées à l'aide d'un gestionnaire de packages comme VCPKG ou par d'autres moyens:
# install dependencies
sudo apt install build-essential git cmake qtdeclarative6-dev libdrm-dev pkg-config libxcb * -dev libx11-dev libxrandr-dev
# check out source
git clone --recurse-submodules https://github.com/houmain/gpupad
cd gpupad
# install vcpkg
git clone --depth=1 https://github.com/microsoft/vcpkg.git
vcpkg/bootstrap-vcpkg.sh
# install additional dependencies using vcpkg
vcpkg/vcpkg install vulkan " ktx[vulkan] " glslang spirv-cross vulkan-memory-allocator spdlog
# build
cmake -B build -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build -j8 # install Qt6
# https://doc.qt.io/qt-6/get-and-install-qt.html
# check out source
git clone --recurse-submodules https://github.com/houmain/gpupad
cd gpupad
# install vcpkg
git clone --depth=1 https://github.com/microsoft/vcpkg.git
vcpkg b ootstrap-vcpkg
# install dependencies using vcpkg
vcpkg v cpkg install vulkan " ktx[vulkan] " glslang spirv-cross vulkan-memory-allocator spdlog
# build
cmake -B build -DCMAKE_PREFIX_PATH=C: Q t 6 .7.2 m svc2022_64 -DCMAKE_TOOLCHAIN_FILE=vcpkg s cripts b uildsystems v cpkg.cmake
cmake --build build -j8 GPUPAD est libéré sous le GNU GPLV3. Veuillez consulter LICENSE pour les détails de la licence.