概述/展示着色器技术/游戏用途

我正在寻找能够让我更好地理解游戏中着色器的用途,他们可以做什么,甚至更重要的是他们不能做什么的资源。 我了解图形管道是如何工作的,以及我在GLSL中做了一些非常基本的着色器(主要是为了替换固定功能管线功能),但我还没有完全理解哪些东西只能用于自定义着色器,哪些事情可以更有效地完成,等等。我已经能够找到某些技术的一些例子,特别是照明,但我正在寻找更高层次的使用概述。

对某些有趣技术的链接和解释(与概述相反)也受到赞赏(但不如概述;)),优选GLSL或伪代码。


那么考虑到DirectX和OpenGL都只朝向仅着色器(即没有固定功能)的系统,对于“哪些效果只有着色器才有可能”问题的答案可能就是“一切”。

但是,如果没有可编程着色器(或通过使用非常特定的黑盒API),我认为某些技术是不可行/可行的:

  • 每像素照明
  • 阴影映射。
  • 动画网格的GPU蒙皮(即矩阵调色板蒙皮)。
  • 任何现在常见的各种后期处理效果:开花,SSAO,景深等。
  • 延迟着色。
  • 实施Oren-Nayar,Cook-Torrance,Rim-Lighting等任意/“其他”照明模式。
  • 并且列表可以继续,我相信有些人会不同意我的评估,即使用固定功能的功能(通过黑客或各种固定功能扩展)无法实现这些功能。

    归结起来,在可编程着色器之前,供应商必须在硬件/驱动程序中实现一个特定的效果,而且它必须是可以通过API合理表达的东西。 现在,您可以有效地执行任何用户定义的代码(在不同着色器阶段和硬件其他限制的限制之内),因此您可以灵活地大幅度定制渲染管道,并根据需要发明新技术。

    看看第一对情侣GPU Gems书籍(可在Nvidia网站上免费阅读),以了解一旦可编程硬件可用即显示的技术类型。

    链接地址: http://www.djcxy.com/p/51943.html

    上一篇: Overview/showcase of shader techniques/uses for games

    下一篇: custom Grails validation