Answers:
像可互换的齿轮一样,任何复杂的着色器通常都不是您可以下载并放入项目的东西。通常,更有趣的效果需要相当多的CPU端渲染子系统耦合才能获得其结果。性能通常也是如此-在精度和质量上超过指令数或流水线的性能折衷往往植根于特定于应用程序的要求。
结果,实际上您所考虑的存储库的方式并没有太多。GPU Gems书籍提供了不错的食谱样式的技术说明集合,其中包括您可能想看的游戏示例和阴影代码示例。Shader X书籍也是如此。
在我的开放式源引擎文件之间也可以找到很多东西,但是至少可以使用一些基本的着色器:
.vsh文件包含顶点着色器,而.fsh文件包含片段着色器,但是我想多数民众赞成在自我解释...
在当前的移动硬件上,您应该在顶点着色器中进行尽可能多的操作,而美观且快速的游戏的诀窍是编写许多非常专业的着色器,它们始终完全按照使事物看起来像其所要的方式工作。至少那是我使用iPhone 3GS的经验,iPhone 3GS具有与iPhone 4相同的GPU,但像素较少,无法传输数据。使用tegra 2可能已经更好,甚至使用Apple A5芯片也更好。但是,这意味着您现在不应该尝试将台式机GPU的着色器移植到手机上,并期望获得出色的性能:P这也意味着全屏效果,特别是在具有高分辨率显示屏的设备上,效果往往较慢。
希望这也会有所帮助:)。
可能会从这里http://glslsandbox.com/夺取一些神秘的知识
当我在寻找如何在OpenGL ES 2.0下实现雾化时,我发现了与OpenGL ES 2.0向后兼容项目实现功能的链接,而OpenGL ES 2.0中没有该功能,例如雾化,每个顶点,每个片段(像素)阴影。您可以直接查看着色器源。
我也一直在实现每个片段的照明,修改了ClockworkCoders(不是OpenGL ES 2.0)创建的这个示例。
您还可以通过lighthouse3D观看这些出色的教程
看一下GPUImage(https://github.com/BradLarson/GPUImage),它可能是迄今为止我在网上找到的最完整的着色器集合。由于它们均设计为可与GPUImage一起使用,因此它们都共享相同的结构,因此,如果您在应用程序/游戏中采用相同的结构,则应该能够快速导入许多不同的效果。
干杯!