织梦CMS - 轻松建站从此开始!

罗索

关于显卡shader的基本概念!

jackyhwei 发布于 2011-02-12 09:17 点击:次 
我们知道针对3D硬件的两大API,OpenGL和Direct3D都有它们固定的渲染管线,即pipeline,我们把顶点位置、法线、纹理坐标等数据参数提供出来,然后再定义光源,我们就可以得到一幅渲染出来的图像。在这个具体的渲染过程中游戏和程序的设计者是没办法具体实施控制的。
TAG:

我从我很久之前保留的资料中找到这么一句话:Shaders drive the programmable graphics pipeline, and define the final surface properties of an object.  这句话是对shader最精炼和到位的描述,shader的用途、目的与工作方式都包含了在内。
我们知道针对3D硬件的两大API,OpenGL和Direct3D都有它们固定的渲染管线,即pipeline,我们把顶点位置、法线、纹理坐标等数据参数提供出来,然后再定义光源,我们就可以得到一幅渲染出来的图像。在这个具体的渲染过程中游戏和程序的设计者是没办法具体实施控制的。

下面的部分大家都比较熟悉了,从DX8和OpenGL扩展开始将可编程特性引入到渲染管线中来,这样使游戏开发者通过自己编写一段小程序运行于显卡硬件来 自己控制具体的渲染过程,在微软的DirectX中就称这段程序代码shader,在OpenGL中就叫Program,译成中文就是“程序”(还是 OpenGL厚道……)。所以说,shader更多的是表现一种可编程控制的概念。

所以,我想了半天,也找不到一个很合适的名字加给shader,所以还是索性叫shader好了,反正大家都明白。   如果一定要给shader加一个中文名字的话,我希望是“渲染器”。


下面的内容是现在显卡芯片中到处都谈的部分,我就照搬过来在这里: 


shader有两种, 
一 种是顶点级的,称为vertex shader(OpenGL称为vertex program),取代固定渲染管线中的变换和光照部分,程序员可以自己控制顶点变换、光照等。硬件中处理顶点shader的单元叫vertex shader processors(顶点处理单元)。例如,X1600芯片中之中有5个vertex shader processors。 


一 种是像素级的,称为pixel shader(OpenGL称为fragment program),取代固定渲染管线中的光栅化部分,程序员可以自己控制像素颜色和纹理采样等。硬件中处理像素shader的单元叫pixel shader processors(像素处理单元)。例如,X1600芯片中之中有12个vertex shader processors。

在pipeline实施渲染过程中引入了可编程特性是对实时渲染进行的一场革命,这样提供给了游戏开发者更大的创作自由度,从而可以创造出更好的效果。

 

原文地址 http://vga.zol.com.cn/30/306112.html

(秩名)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201102/10867.html]
本文出处:vga.zol.com.cn 作者:秩名
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
相关文章
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容