关闭

What Is Shader

776人阅读 评论(0) 收藏 举报

Shader就是一段可以改变象素和顶点的小程序。因此在Shader规范模型中又划分出两个分支,一个叫作:象素ShaderPixel Shaders)一个叫作:顶点ShaderVertex Shaders)。这个Shader小程序可以为游戏场景添加一些基本的几何学特效。例如湖水的涟漪,它会让特定的蓝色材质发生移动、扭曲和倒映,这样就会给人波光粼粼的感觉了。若是要将一个物体渲染成玻璃的风格,它就会让一些材质发生透明和扭曲。Shader技术主要是应用在目前的电脑游戏当中,它让我们的电脑游戏画面更加逼真,现在的主流3D游戏画质要比几年前逼真很多。Shader是具有可编程性的,开发人员可以用它创造出非常图特的游戏场景。像NVIDIAATI的显卡都严格支持Shader的规格,并且为Shader程序作了很多优化。当然除了游戏的特效之外,游戏开发人员也可以用Shader作很多其他工作。总之Shader在未来的游戏中将发挥重大的作用。

 

目前Shader技术还处于一个迅速壮大的阶段,它的版本并不多。他们之间的区别也就比较容易归纳总结。其实每个新的Shader版本的出台都是一种修正,Shader指令的长度就曾经被反复修改。在早期的Shader中指令都是被分开独立执行。随着游戏越作越逼真,场景越作越复杂,Shader指令也变得长且复杂起来。并且为了支持最新的3D技术,在Shader中也要不断加入许多相应的新指令。最令游戏开发人员兴奋的是Shader越来越像是一套完备的编程语言了。例如,早期的v1.1版本中,每条指令只能单独执行。而到了v2.x时加入了跳转语句。到了v3.0版本时都可以使用动态的分支语句了。程序员可以使用“if”这样的判断句,这使得Shader程序更加灵活。在历代的Shader更新中,从v2.xv3.0的变化最大。在v3.0中加入了独特的顶点材质检索功能,这使得Shader可以支持一种叫做置换贴图的高级材质贴图技术。

 

                           DirectX 10 中的 Shader

什么是Geometry shader

在下一代DirectX10中,我们惊奇的发现了一个叫做Geometry shader的着色单元。

通过以上的介绍,我们不难理解,Pixel Shader是专门处理像素的,Vertex Shader是专门处理多边形顶点的。那么Geometry shader就是专门用来处理场景中的几何图形。在过去Vertex Shader每一次运行只能处理一个顶点的数据,并且每次只能输出一个顶点的结果。在整个游戏场景中,绘制的几何图形的任务量是非常庞大的,如果仅仅依靠Vertex Shader来完成,处理场景的效率会很低下。并且如大爆炸,粒子效果,瀑布流水等复杂的场景都很难逼真的表现出来。

现在DX10的设计师们在顶点与像素的处理过程中又加入了Geometry shader几何着色器。它可以根据顶点的信息来批量处理几何图形。Geometry shader可以将点、线、三角形等基本的构图元素连接起来,创造出新的多边形。快速的将这些处理结果传递给其他Shader或显存,并且这个过程无需处理器参与。

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:11313次
    • 积分:133
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:2篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论