Shader(着色器)是用来实现图像渲染的用来替代固定渲染管线的可编辑程序。
Shader分为Vertex Shader顶点着色器和Fragment Shader像素着色器两种(注:两种着色器在不同的实现中略有不同)。其中Vertex Shader主要负责顶点的几何关系等的运算,Fragment Shader主要负责片源颜色等的计算。
着色器替代了传统的固定渲染管线,可以实现3D图形学计算中的相关计算,由于其可编辑性,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。这极大的提高了图像的画质。
Shader在离线渲染领域已经出现了多年,并且广泛应用于电影等方面,而及时渲染领域的Shader则是在微软推出Shader Model后才被首次引入。目前比较流行的Shader language着色器语言有HLSL,GLSL,RM等。
图元
图元--图形元素,可以编辑的最小图形单位。
图元是图形软件用于操作和组织画面的最基本的素材。一幅画面由图元组成。图元是一组最简单的、最通用的几何图形或字符。
“图元”是为了区分不同数据信息而对某一类数据所取的名字。图元指的是图形数据,所对应的就是绘图界面上看得见的实体。英文中,图元的名字为“entity”,翻译为中文有“图素”“图元”“实体”等称呼。与图元对应的是图面看不见的信息,如图层,文字样式,标注样式等等,这些信息被称为“对象”,英文名字为“object”。对象多为图形的属性或绘图界面的信息,针对的不是个别单个的图形,可以指定单个图形为不同的属性,却不能通过单个图形修改属性的信息。修改“对象”的信息要通过特定的命令,如layer,style等
简单来讲,图元就是组成图像的基本单元,比如三维模型中的点、线、面等等,注意图元(entity)与片元(primitive)的区别,片元就是以后的像素点,它比像素多一些位置啊、法向量等属性。逐个片元操作有像素所有权操作(确定目标像素可见还是被一个重叠的窗口盖住了),剪切测试、Alpha测试、模板测试、混合等。而片段(fragments)是指具有相同属性的一小部分像素区域。
视景体是指成像景物所在空间的集合。它是一个空间集合体。视景体是计算机图形学中的一个重要概念。
投影变换的目的就是定义一个视景体,使得视景体外多余的部分裁剪掉,最终图像只是视景体内的有关部分。