文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>关于显卡shader的基本概念!

关于显卡shader的基本概念!

时间:2010-08-25  来源:loughsky

我从我很久之前保留的资料中找到这么一句话: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实施渲染过程中引入了可编程特性是对实时渲染进行的一场革命,这样提供给了游戏开发者更大的创作自由度,从而可以创造出更好的效果。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载