OpenGL ES 2.0: Repositório de Quality Shaders [fechado]

10

Gostaria de pedir uma sugestão de repositório de sombreadores de vértices e fragmentos OpenGL (OpenGL ES 2.0) de alta qualidade , por favor?

Estou procurando pixel shaders ligting (como phong ) e semelhante. Seria bom ver mais deles, para poder escolher entre qualidade versus desempenho de sombreador.

Bunkai.Satori
fonte

Respostas:

16

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.


fonte
+1 para comentários muito valiosos. Olá Josh. Obrigado pela sua resposta. Bem, se uma pessoa está no início do desenvolvimento do shader, realmente ajudaria a ver como alguns shaders padrão são implementados: Por exemplo, como Phong (que é um algoritmo muito padrão) é executado, shaders de iluminação de pixel, etc. ponto e as fontes que você forneceu soam como um bom material. Vou dar uma olhada neles. Até agora, os melhores recursos que encontrei são: livro OpenGL Shading Language e o site Lighthouse 3D.
Bunkai.Satori
2
Portanto, eu ainda gostaria de receber repositórios de shaders de boa qualidade , ilustrando o desenvolvimento de efeitos interessantes. Os scripts podem ser usados ​​como base para combiná-los e criar novos efeitos atraentes.
Bunkai.Satori
@Bunkai Satori Eu acho que Josh quis dizer isso como uma razão para que esse tipo de repositório não exista principalmente.
The Duck Comunista
@ O Pato Comunista: Oi, obrigado pelo seu comentário. Eu entendi aquilo. Sou grato por todas as respostas aqui e pela de Josh também. No entanto, o que me ocorreu é que a internet é tão grande que talvez alguém que não seja Josh se lembre de ter visto alguns lugares para se inspirar em shaders específicos. Eu posso imaginar que uma empresa / indivíduo que use muito shaders os colecione e alguns deles também os publiquem. De qualquer maneira, a resposta de Josh é minha candidata à Resposta Aceita ; portanto, se ninguém contribuir em breve, fecharei esse tópico ao marcar sua resposta.
Bunkai.Satori
13

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 :).

Slin
fonte
Olá, seja bem-vindo ao GDSE. Boa resposta!
Notabene 16/05
+1 para uma boa resposta. Olá Slin, e bem-vindo ao GDSE. Obrigado por esta boa resposta e pelas coisas de exemplo. Fico feliz que você tenha compartilhado sua experiência com a programação de shaders para a plataforma móvel. Neste momento, faço todo o desenvolvimento no PC, planejando portar mais tarde. Então sua experiência será apreciada então.
Bunkai.Satori #
9

pode arrebatar parte do conhecimento misterioso daqui http://glslsandbox.com/

UlanB
fonte
Oi UlanB. Esta coleção está ótima. Você pode me dizer como posso baixar esses shaders. Recebo um erro dizendo "WebGL não suportado" quando tento abrir qualquer uma das coleções de sombreadores no chrome. Obrigado.
Vinodtiru
Desculpe, não posso realmente dar suporte técnico para compatibilidade com webgl. Provavelmente o seu hardware que não suporta webgl. Além disso, o Linux Chrome Builds ainda não é compatível.
UlanB
4

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

martin pilch
fonte
+1 para um bom comentário. Olá Martin, obrigado pelos seus links. Sim, encontrei o Lighthouse3D e parece um recurso de qualidade.
Bunkai.Satori
1

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.

rerdavies
fonte
1

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!

ekscrypto
fonte