/*** Code Flipcode ***/

Build Your World!

What Is Shader

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或显存,并且这个过程无需处理器参与。

 
阅读更多
个人分类: 游戏开发
下一篇常见3D物理引擎概述
想对作者说点什么? 我来说一句

vega prime shader

2010年12月16日 818KB 下载

特效半透流光shader

2018年06月24日 188KB 下载

Shader Forge 13个版本合集

2018年05月06日 205.16MB 下载

Unity Beauty Toon Shader

2018年03月23日 1.32MB 下载

VS编写Shader辅助工具

2018年07月05日 80KB 下载

Unity Shader编程

2018年03月27日 20.79MB 下载

Mirror Shaders

2017年12月12日 5KB 下载

cocos creator shader

2018年07月17日 46.74MB 下载

没有更多推荐了,返回首页

关闭
关闭