Fitur | Screenshot | Pendahuluan | Instalasi | Bangunan | Changelog
Editor ringan untuk GLSL dan HLSL Shaders dan IDE berfitur lengkap untuk mengembangkan algoritma berbasis GPU.
Qt6Multimedia ).

Untuk memulai, Anda dapat membuka dan bermain -main dengan sesi sampel di menu Bantuan .
Untuk mencoba shader, sesi ini memungkinkan untuk menentukan penarikan dan menghitung panggilan, bersama dengan status pipa dan data yang harus dioperasikan oleh program.
Ini dapat diisi dengan item dari menu sesi atau menu konteks. Undo/redo, copy/paste dan drag/drop harus berfungsi seperti yang diharapkan (juga antara beberapa contoh). Bahkan dimungkinkan untuk menyeret item ke dan dari editor teks (mereka diserialisasi sebagai JSON).
Sesi sampel juga dapat digunakan sebagai templat - menyimpan sesi sebagai ... menyalin semua dependensi ke lokasi baru.
Sesi ini dapat dievaluasi secara manual [F6] , secara otomatis setiap kali sesuatu yang relevan berubah [F7] atau dengan mantap [F8] , untuk animasi. Semua item yang berkontribusi pada evaluasi terakhir disorot.
Item suatu sesi cukup banyak sesuai konsep yang diketahui dari menulis aplikasi OpenGL:
Panggilan - Yang paling menonjol adalah undian dan panggilan komputasi. Setiap kali sesi dievaluasi, semua panggilan aktif dievaluasi secara berurutan. Mereka dapat diaktifkan menggunakan kotak centang. Waktu yang berlalu dari setiap panggilan adalah output ke jendela pesan (diukur menggunakan kueri timer GPU).
Program - Terdiri dari satu atau beberapa shader, yang dihubungkan bersama, sehingga dapat digunakan dengan menggambar atau menghitung panggilan.
Tekstur - Semua jenis warna, kedalaman atau tekstur stensil dapat dibuat. Mereka berfungsi sebagai sumber sampel, gambar di dalam dan output dan lampiran target. Mereka dapat didukung oleh file.
Target - Menentukan di mana penarikan harus dilakukan. Beberapa gambar dapat dilampirkan. Bergantung pada jenis gambar yang terlampir, keadaan render yang berbeda dapat dikonfigurasi.
Binding - memungkinkan untuk mengikat data ke seragam program, sampler, gambar dan buffer. Ikatan memengaruhi semua panggilan berikutnya, sampai digantikan oleh ikatan dengan nama yang sama, atau lingkup ujungnya (lihat grup ). Nama ikatan perlu sesuai dengan nama poin ikatan program.
Buffer - Blok buffer menentukan struktur suatu daerah dalam biner. Mereka terdiri dari baris dengan beberapa bidang dari beberapa tipe data. Buffer dapat didukung oleh file biner.
Stream - berfungsi sebagai input untuk vertex shaders. Aliran terdiri dari beberapa atribut, yang mendapatkan data mereka dari blok buffer yang direferensikan.
Group - memungkinkan untuk menyusun sesi yang lebih kompleks. Mereka membuka ruang lingkup baru kecuali jika lingkup inline diperiksa. Item dalam ruang lingkup tidak terlihat untuk item di luar ruang lingkup (mereka tidak muncul di kotak kombo).
Script - Memungkinkan untuk mendefinisikan fungsi dan variabel JavaScript dalam file skrip, yang selanjutnya dapat digunakan dalam ekspresi pengikat yang seragam. Skrip juga dapat digunakan untuk secara dinamis mengisi sesi dan menghasilkan data buffer dan tekstur. Ada satu negara JavaScript untuk seluruh sesi dan skrip dievaluasi secara berurutan (lingkup kelompok tidak memiliki efek).
Bangunan terkini dapat diinstal dari AUR.
Bangunan portabel dapat diunduh dari halaman rilis terbaru.
Diperlukan kompiler yang sesuai dengan C ++ 20. Skrip untuk sistem build CMake disediakan. Itu tergantung pada pustaka berikut, yang dapat diinstal menggunakan manajer paket seperti VCPKG atau dengan cara lain:
# 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 dirilis di bawah GNU GPLV3. Silakan lihat LICENSE untuk detail lisensi.