Os shaders de qualquer complexidade geralmente não são o tipo de coisa que você pode baixar e adicionar ao seu projeto como engrenagens intercambiáveis. Normalmente, os efeitos mais interessantes exigem um pouco de acoplamento ao subsistema de renderização no lado da CPU para alcançar seus resultados. O mesmo se aplica ao desempenho - as compensações de desempenho com relação à precisão e qualidade ao longo da contagem de instruções ou pipelining tendem a estar enraizadas nos requisitos específicos do aplicativo.
Como resultado, não há realmente muito do tipo de repositório em que você está pensando. Os livros GPU Gems oferecem uma boa coleção de descrições de técnicas no estilo livro de receitas, com exemplos de códigos de jogo e sombreados que você pode querer dar uma olhada. O mesmo acontece com os livros do Shader X.
Não é muito, mas pelo menos alguns shaders básicos para começar também podem ser encontrados entre meus arquivos de mecanismos de sorce abertos:
os arquivos .vsh contêm os shaders de vértice e os arquivos .fsh os shaders de fragmento, mas acho que isso é autoexplicativo ...
No hardware móvel atual, você deve fazer o máximo possível dentro do shader de vértice, e o truque para jogos rápidos e com boa aparência é escrever muitos shaders muito especializados, fazendo sempre exatamente o que é necessário para fazer com que algo pareça como deveria. Pelo menos essa é a minha experiência com o meu iPhone 3GS, que possui o mesmo gpu do iPhone 4, mas tem menos pixels para fornecer dados. Provavelmente, isso já é muito melhor com o chip tegra 2 e ainda melhor com o chip maçãs A5, mas, por enquanto, isso significa que você não deve tentar portar shaders para gpus de desktop em telefones celulares e esperar um ótimo desempenho: P Isso também significa que a tela cheia efeitos, especialmente em dispositivos com uma tela de alta resolução, tendem a ser lentos.
Espero que isso também ajude um pouco :).
fonte
pode arrebatar parte do conhecimento misterioso daqui http://glslsandbox.com/
fonte
Quando eu estava pensando em como implementar o fog no OpenGL ES 2.0, encontrei um link para a funcionalidade de implementação de projeto compatível com versões anteriores do OpenGL ES 2.0 , que não está no OpenGL ES 2.0, por exemplo, sombreamento nevoeiro, por vértice, por fragmento (pixel). Você pode procurar diretamente na fonte de shaders .
Também implementei a iluminação por fragmento, modificando este exemplo criado pelo ClockworkCoders (não pelo OpenGL ES 2.0).
Você também pode dar uma olhada nesses ótimos tutoriais de lighthouse3D
fonte
O pacote AMD RenderMonkey contém shaders muito avançados para o OpenGL ES 2.0 entre os arquivos de amostra.
Dê uma olhada especialmente na amostra do shaman Renderman no diretório de amostras GLES, que fornece um shader OpenGL ES 2.0 mais ou menos básico que pode servir como um bom ponto de partida. E também pode lhe dar uma boa idéia de por que não existem muitos exemplos de copiar e colar de bons shaders por aí. O problema básico: que os sombreadores estão fortemente acoplados à configuração do servidor OpenGL ES e aos modelos que são renderizados neles. Ainda. O shaman Renderman é um excelente ponto de partida, se você pode soltá-lo da ferramenta REnderMonkey.
fonte
Dê uma olhada no GPUImage ( https://github.com/BradLarson/GPUImage ), provavelmente é a coleção mais completa de shaders que encontrei na Web até agora. Como todos eles foram projetados para funcionar com o GPUImage, todos compartilham a mesma estrutura; portanto, se você adaptar a mesma estrutura no seu aplicativo / jogo, poderá importar rapidamente vários efeitos diferentes.
Felicidades!
fonte