可编程管线(流水线),可编程着色语言

D3D程序设计的最终目的是把场景中的3D物体显示到计算机显示器屏幕上,为实现这个目的,要经历三个阶段:

1.3D物体建模。

  一个3D物体一般包括若干曲面,任意曲面都可以由若干三角形面片组成,一个三角形由三个顶点确定。3D物体模型是用顶点定义的物体,在3D物体建模阶段要定义3D物体的所有顶点位置和属性。这步对于固定功能流水线和可编程流水线是一致的。

2.顶点处理。

  把世界坐标系中的3D模型的所有顶点经过世界变换、观察变换、投影变换转换为计算机显示器窗口坐标上的顶点。这些顶点除具有位置信息以外,根据设定的光源和材质,顶点还有颜色属性。在固定功能流水线中,在顶点处理前,程序首先设定设备的世界变换、观察变换、投影变换矩阵及光源和材质。设备使用预先设定的这些参数,采用内置的固定算法对每一个顶点逐一进行处理,在整个处理过程中设置的参数不改变。这就是固定功能流水线名称的由来。
  在可编程流水线中,首先使用HLSL编写顶点着色方法,在方法中指定世界变换、观察变换、投影变换矩阵及光照和材质,顶点着色方法采用自定义顶点处理算法。显卡的GPU调用HLSL编写的顶点着色方法在显卡中运行,对每一个顶点进行处理。由于不同顶点着色实现不同算法,所以产生的效果可能完全不同,即使同一顶点着色方法,也可以通过改变方法参数产生不同的效果。编程人员可以编写多个顶点着色方法,根据需要在顶点处理中,对不同顶点采用不同的处理方法。使用可编程流水线的顶点处理,可以使编程人员更加接近系统硬件层,编写更加高效的代码,实现许多固定功能流水线不能实现的功能。
这一步在可编程流水线中称作顶点着色。
3.像素处理
  计算机显示器屏幕是由像素点组成的,例如,一个1024X768的真彩色显示器一个1024x768个点,每个点有224种颜色。像素处理的目的就是把已经被处理的顶点变换为屏幕每个点的颜色。例如,一个三角形平面有三个顶点,具有指定的颜色,要根据三个顶点的颜色,采用一定的算法填充整个三角形平面的颜色,如果三角形有纹理,三角形平面每点的颜色还要和纹理的颜色进行混合,最终控制计算机显示器屏幕每点的颜色。

  固定功能流水线的像素处理能力很弱,一般只能采用高洛得着色技术根据顶点颜色填充整个平面的颜色。每点颜色和纹理的颜色进行混合的设置相对复杂,且效果有限。可编程流水线极大地加强了像素处理能力,可以自定义根据顶点颜色填充整个平面颜色的方法及纹理混合方法,显卡的GPU调用这些方法在显卡中运行。这些方法使用上更加简单、高效,能够实现非常复杂的特殊效果。这一步在可编程流水线中称作像素着色。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值