Recursos | Capturas de tela | Introdução | Instalação | Edifício | Changelog
Um editor leve do GLSL e HLSL Shaders e um IDE totalmente comuns para o desenvolvimento de algoritmos baseados em GPU.
Qt6Multimedia ).

Para começar, você pode abrir e brincar com as sessões de amostra no menu de ajuda .
Para experimentar os shaders, a sessão permite definir chamadas de desenho e calcular, juntamente com o estado do pipeline e os dados em que os programas devem operar.
Pode ser preenchido com itens no menu da sessão ou no menu de contexto. Desfazer/refazer, copiar/colar e arrastar/soltar deve funcionar conforme o esperado (também entre várias instâncias). É até possível arrastar os itens de e para um editor de texto (eles são serializados como JSON).
As sessões de amostra também podem ser usadas como modelos - salvando uma sessão como ... copia todas as dependências para o novo local.
A sessão pode ser avaliada manualmente [F6] , automaticamente sempre que algo relevante muda [F7] ou constantemente [F8] , para animações. Todos os itens que contribuíram para a última avaliação são destacados.
Os itens de uma sessão correspondem praticamente os conceitos conhecidos por escrever aplicativos OpenGL:
Chamada - de maneira mais proeminente são as chamadas de sorteio e computação. Sempre que a sessão é avaliada, todas as chamadas ativas são avaliadas em ordem consecutiva. Eles podem ser des/ativados usando a caixa de seleção. O tempo decorrido de cada chamada é emitido na janela da mensagem (medido usando consultas de timer da GPU).
Programa - consiste em um ou vários shaders, que estão ligados, para que possam ser usados com chamadas de desenho ou computação.
Textura - Todo tipo de cor, profundidade ou texturas de estêncil podem ser criados. Eles servem como fontes de amostra, imagem e saídas e acessórios de destino. Eles podem ser apoiados por arquivos.
Target - Especifica para onde as chamadas desenham devem ser renderizadas. Várias imagens podem ser anexadas. Dependendo do tipo de imagem anexada, diferentes estados de renderização podem ser configurados.
Vinculação - permite vincular dados aos uniformes, amostradores, imagens e buffers de um programa. Uma ligação afeta todas as chamadas subsequentes, até que seja substituída por uma ligação com o mesmo nome, ou o escopo termina (ver grupos ). O nome de uma ligação precisa corresponder ao nome dos pontos de ligação de um programa.
Os blocos de buffer - buffer definem a estrutura de uma região dentro de um binário. Eles consistem em linhas com vários campos de algum tipo de dados. Os buffers podem ser apoiados por arquivos binários.
Stream - serve como entrada para shaders de vértice. Um fluxo consiste em vários atributos, que obtêm seus dados dos blocos de buffer referenciados.
Grupo - permite estruturar sessões mais complexas. Eles abrem um novo escopo, a menos que o escopo em linha seja verificado. Os itens dentro de um escopo não são visíveis para itens fora do escopo (eles não aparecem nas caixas combinadas).
Script - permite definir funções e variáveis JavaScript em arquivos de script, que podem ser usados posteriormente em expressões uniformes de ligação. Os scripts também podem ser usados para preencher dinamicamente a sessão e gerar dados de buffer e textura. Há um estado de JavaScript para toda a sessão e os scripts são avaliados em ordem consecutiva (os escopos de grupo não têm efeito).
Uma construção atualizada pode ser instalada a partir da AUR.
Uma compilação portátil pode ser baixada na página de lançamento mais recente.
É necessário um compilador de conformidade C ++ 20. É fornecido um script para o sistema de compilação CMake. Depende das seguintes bibliotecas, que podem ser instaladas usando um gerenciador de pacotes como o VCPKG ou por outros meios:
# 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 O GPUPAD é liberado sob o GNU GPLV3. Consulte LICENSE para obter detalhes da licença.