游戏开发

本类阅读TOP10

·初学者的福音:游戏开发新手入门指南
·《学VC、编游戏》重点算法解疑·快一点
·Windows的消息机制与消息重定向技术
·《学VC、编游戏》重点算法解疑·再快一点
·Rogue Guide
·《学VC、编游戏》重点算法解疑·狩猎谋生
·通向天才之路 : 把模块塞到动态连接库里去
·完成端口的深入理解及一种变态用法
·DirectX 9.0 SDK 开发包下载(April 2005)
·在OpenGL中实现多纹理混合(Multi-texture Blending)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Vertex Shader & Pixel Shader 介绍

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

Vertex Shader & Pixel Shader  介绍

 

1.         固定功能的图形处理流水线(fixed function graphics pipeline

能够实现Vertex ShaderPixel Shader的显卡的图形处理流水线被称作为是可编程的,相对而言,在此之前的图形处理流水线被称作为是固定功能(fixed function,下面是OpenGL图形处理的一个简图:

          完整的OpenGL图形处理流水线为称作为OpenGL机器(OpenGL machine,在OpenGL参考手册上可以找到这份框架图),就像一个电路图一样,上面有许许多多的开关,我们可以打开或者闭合这些开关,还可以设置图中各个处理单元的参数以控制处理的方法,但是无论如何整个系统的功能已经确定下来了,你只有使用或者不使用某些功能和控制某些功能的具体执行方法的权利而无法实现自己定制的功能,所以这样的图形处理流水线被称作为是固定功能的。(有实力的显卡厂商在自己的OpenGL实现中添加了许多OpenGL扩展实现了一些标准OpenGL规范所没有的功能,现在有了可编程的图形流水线,一般用户也有机会实现一些自己定制的功能。)

 

2.         Vertex Shader & Pixel Shader

虽然实现Vertex ShaderPixel Shader功能的图形流水线被称作为是可编程的,但是实际上可编程的只有流水线的一部分,正如Vertex Shader Pixel Shader的字面意思一样,现在可编程的部分只有处理顶点的和处理象素的单元。

Vertex Shader Pixel Shader在不同的文档里面有不同的叫法,Nvidia在自己的OpenGL扩展中把Vertex Shader叫做Vertex Program、把Pixel Shader叫做Texture Shader3Dlabs在自己提出一份OpenGL 2.0的提议里面把这两者分别叫做Vertex ShaderFragment(片元)Shader。抛开叫法的差异,实际上的功能都是差不多的,下面的一段话对这种状况作了一个完美的解释:

    Shader or Program? Shader has been used as the preferred name as this fits in with common usage in RenderMan and DX8. There is some argument that shading has connotations of being a color operation so doesn't fit with a vertex operation. RenderMan doesn't make this distinction, nor does DX8. It seems wise to go along with the common usage of shader as a general term for a program which operates on some part of a graphics pipeline.

    (Shader 还是 Program,在RenderManDX8中,通常情况下倾向于使用Shader这个名字。这个叫法有一些争议,因为Shading蕴涵地表示为进行了相关的颜色操作而不适合用来描述顶点操作。但是在RenderManDX8中并没有理会这种区别。所以跟随通常的叫法,把Shader作为在图形处理流水线某些部分起作用的program的一般术语似乎是一个明智的做法。)

 

 




相关文章

相关软件