OpenGL ES 2.0:质量明暗器存储库[关闭]


10

请问一个高品质的OpenGL(OpenGL ES 2.0)顶点和片段着色器存储库,请问一下。

我正在寻找基于像素的着色着色器(例如phong)和simmilar。很高兴看到它们更多,能够在质量与着色器性能之间进行选择。

Answers:


16

像可互换的齿轮一样,任何复杂的着色器通常都不是您可以下载并放入项目的东西。通常,更有趣的效果需要相当多的CPU端渲染子系统耦合才能获得其结果。性能通常也是如此-在精度和质量上超过指令数或流水线的性能折衷往往植根于特定于应用程序的要求。

结果,实际上您所考虑的存储库的方式并没有太多。GPU Gems书籍提供了不错的食谱样式的技术说明集合,其中包括您可能想看的游戏示例和阴影代码示例。Shader X书籍也是如此。


+1非常有价值的评论。嗨,乔希 感谢您的答复。好吧,如果一个人正处于着色器开发的初期,那将有助于您了解如何实现一些标准着色器:例如,如何执行Phong(这是非常标准的算法),像素照明着色器等。我了解您重点,您提供的声音来源就是很好的素材。我将看看它们。到目前为止,我发现的最佳资源是:OpenGL着色语言书和Lighthouse 3D网站。
Bunkai.Satori 2011年

2
因此,我仍然欢迎高质量着色器的存储库,以说明有趣效果的发展。这些脚本可以用作组合它们并创建新的诱人效果的基础。
Bunkai.Satori,2011年

@Bunkai Satori我认为Josh的意思是,这类存储库大多不存在。
共产主义鸭子

@共产主义鸭子:嗨,谢谢你的评论。我明白那个。我很感谢这里的每一个回应,也感谢乔希的回应。但是,我想到的是,互联网是如此之大,以至于除乔希(Josh)之外的其他人可能会记得看到某些地方受到特定着色器启发的情况。我可以想象,一个经常使用着色器的公司/个人会收集它们,并且其中一些还可能发布它们。Josh的答案还是我可以接受的答案的候选者,因此,如果没有人很快做出贡献,我将关闭此线程以标记他的答案。
Bunkai.Satori 2011年

13

在我的开放式源引擎文件之间也可以找到很多东西,但是至少可以使用一些基本的着色器:

.vsh文件包含顶点着色器,而.fsh文件包含片段着色器,但是我想多数民众赞成在自我解释...

在当前的移动硬件上,您应该在顶点着色器中进行尽可能多的操作,而美观且快速的游戏的诀窍是编写许多非常专业的着色器,它们始终完全按照使事物看起来像其所要的方式工作。至少那是我使用iPhone 3GS的经验,iPhone 3GS具有与iPhone 4相同的GPU,但像素较少,无法传输数据。使用tegra 2可能已经更好,甚至使用Apple A5芯片也更好。但是,这意味着您现在不应该尝试将台式机GPU的着色器移植到手机上,并期望获得出色的性能:P这也意味着全屏效果,特别是在具有高分辨率显示屏的设备上,效果往往较慢。

希望这也会有所帮助:)。


嗨,欢迎来到GDSE。好答案!
诺塔内

+1为好答案。嗨,Slin,欢迎来到GDSE。感谢您提供的良好答案和示例示例。我很高兴,您分享了针对移动平台的着色器编程的经验。目前,我在PC上进行所有开发,并计划在以后移植。因此,您的经验将不胜感激。
Bunkai.Satori,2011年

9

可能会从这里http://glslsandbox.com/夺取一些神秘的知识


嗨,UlanB。这个集合看起来很棒。您能告诉我如何下载这些着色器吗?当我尝试在chrome中打开任何着色器集合时,出现错误消息“不支持WebGL”。谢谢。
Vinodtiru 2011年

抱歉,我真的不能为您提供有关webgl兼容性的技术支持。可能是您的硬件不支持webgl。另外,Linux Chrome Builds还不支持它。
UlanB

4

当我在寻找如何在OpenGL ES 2.0下实现雾化时,我发现了与OpenGL ES 2.0向后兼容项目实现功能的链接,而OpenGL ES 2.0中没有该功能,例如雾化,每个顶点,每个片段(像素)阴影。您可以直接查看着色器源

我也一直在实现每个片段的照明,修改了ClockworkCoders(不是OpenGL ES 2.0)创建的这个示例。

您还可以通过lighthouse3D观看这些出色的教程


+1表示好评。嗨,马丁,谢谢您的链接。是的,我找到了Lighthouse3D,它看起来像高质量的资源。
Bunkai.Satori 2011年

1

AMD RenderMonkey软件包在示例文件中包含用于OpenGL ES 2.0的非常高级的着色器。

特别看一下GLES样本目录中的Renderman着色器样本,该样本提供了或多或少的OpenGL ES 2.0着色器,可以作为一个很好的起点。并且可能还为您提供了一个很好的主意,说明为什么那里没有很多好的着色器的剪切和粘贴示例。基本问题:着色器与OpenGL ES服务器配置以及在其上渲染的模型紧密相关。仍然。如果您可以从REnderMonkey工具中撬开它,则Renderman着色器是一个很好的起点。


1

看一下GPUImage(https://github.com/BradLarson/GPUImage),它可能是迄今为止我在网上找到的最完整的着色器集合。由于它们均设计为可与GPUImage一起使用,因此它们都共享相同的结构,因此,如果您在应用程序/游戏中采用相同的结构,则应该能够快速导入许多不同的效果。

干杯!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.