Funktionen | Screenshots | Einführung | Installation | Gebäude | Changelog
Ein leichtgewichtiger Editor für GLSL- und HLSL-Shader und eine voll ausgeführte IDE für die Entwicklung von GPU-basierten Algorithmen.
Qt6Multimedia erstellt wurde).

Um loszulegen, können Sie sich mit den Beispielsitzungen im Hilfmenü öffnen und mit den Beispielsitzungen herumspielen.
Um die Shader auszuprobieren, ermöglicht die Sitzung das Definieren von Ziehen und Berechnen von Anrufen zusammen mit dem Pipeline -Status und den Daten, an denen die Programme arbeiten sollten.
Es kann mit Elementen aus dem Sitzungsmenü oder dem Kontextmenü bevölkert werden. Rückgängigmachen/Wiederherstellen, kopieren/einfügen und Drag/Drop sollte wie erwartet funktionieren (auch zwischen mehreren Instanzen). Es ist sogar möglich, die Elemente in und von einem Texteditor zu ziehen (sie werden als JSON serialisiert).
Die Beispielsitzungen können auch als Vorlagen verwendet werden - und speichern eine Sitzung als ... kopiert alle Abhängigkeiten zum neuen Standort.
Die Sitzung kann manuell [F6] automatisch bewertet werden, wenn etwas relevantes [F7] oder stetig [F8] für Animationen ändert. Alle Elemente, die zur letzten Bewertung beigetragen haben, werden hervorgehoben.
Die Elemente einer Sitzung entsprechen den Konzepten, die aus dem Schreiben von OpenGL -Anwendungen bekannt sind:
Rufen Sie an - am deutlichsten sind die Auslosung und die Rechenaufrufe. Immer wenn die Sitzung bewertet wird, werden alle aktiven Anrufe in aufeinanderfolgender Reihenfolge bewertet. Sie können mit dem Kontrollkästchen de-/aktiviert werden. Die verstrichene Zeit jedes Anrufs wird in das Nachrichtenfenster ausgegeben (gemessen mit GPU -Timer -Abfragen).
Programm - besteht aus einem oder mehreren Shadern, die miteinander verknüpft sind, damit sie durch Zeichnen oder Berechnen Anrufe verwendet werden können.
Textur - Es können alle Arten von Farben, Tiefen oder Schablonen erstellt werden. Sie dienen als Probenquellen, Bildin- und Ausgänge und Zielaufsätze. Sie können durch Dateien gesichert werden.
Target - Gibt an, wohin Zeichnungen Anrufe rendern sollten. Mehrere Bilder können angehängt werden. Abhängig vom Typ des angehängten Bildes können verschiedene Renderzustände konfiguriert werden.
Bindung - Ermöglicht die Bindung von Daten an die Uniformen, Abtaster, Bilder und Puffer eines Programms eines Programms. Eine Bindung beeinflusst alle nachfolgenden Aufrufe, bis sie durch eine Bindung mit demselben Namen ersetzt wird oder das Zielfernrohr endet (siehe Gruppen ). Der Name einer Bindung muss mit dem Namen der Bindungspunkte eines Programms übereinstimmen.
Puffer - Pufferblöcke definieren die Struktur einer Region innerhalb eines Binärdatus. Sie bestehen aus Zeilen mit mehreren Feldern eines Datentyps. Puffer können durch binäre Dateien gesichert werden.
Stream - dient als Eingabe für Scheitelpunkt -Shader. Ein Stream besteht aus mehreren Attributen, die ihre Daten aus den referenzierten Pufferblöcken erhalten.
Gruppe - ermöglicht es, komplexere Sitzungen zu strukturieren. Sie eröffnen einen neuen Bereich, es sei denn, der Inline -Umfang wird überprüft. Gegenstände innerhalb eines Bereichs sind für Gegenstände außerhalb des Geltungsbereichs nicht sichtbar (sie werden nicht in den Kombinationsboxen angezeigt).
Skript - Ermöglicht die Definition von JavaScript -Funktionen und Variablen in Skriptdateien, die anschließend in einheitlichen Bindungsausdrücken verwendet werden können. Skripte können auch verwendet werden, um die Sitzung dynamisch zu bevölkern und Puffer- und Texturdaten zu generieren. Es gibt einen JavaScript -Status für die gesamte Sitzung und die Skripte werden in aufeinanderfolgender Reihenfolge bewertet ( Gruppenbereiche haben keinen Einfluss).
Ein aktueller Build kann aus der AUR installiert werden.
Ein tragbarer Build kann von der neuesten Release -Seite heruntergeladen werden.
Es ist ein C ++ 20 -Konformer -Compiler erforderlich. Ein Skript für das CMake -Build -System wird bereitgestellt. Es hängt von den folgenden Bibliotheken ab, die mit einem Paketmanager wie VCPKG oder anderen Mitteln installiert werden können:
# 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 wird unter dem GNU GPLV3 freigesetzt. Bitte beachten Sie LICENSE für Lizenzdetails.