网站首页   公司介绍   行业新闻   技术文章   应用示例   产品中心   在线留言   联系我们
3D 绘图原理 (3D Graphics Pipeline ) 之一
时间:2015-5-5 20:18:24,点击:0


2.2 硬件加速

终于我们进入到标题中的其中一个主题,硬件加速。Hardware Acceleration说穿了就是将算法设计成电路,以达到高速演算的目的。

因此我们要从上述的三种算法中找一种适合以硬件做加速的算法。而最后雀屏中选的算法是RasterizingRay tracingRadiocity的复杂度、分支度高,数据的locality又太低,大大提高了硬件加速的难度。相对的来说,Rasterizing的算法在这三方面都比前两者好,虽然Ray-tracingRadiocity在真实度(Realistic)上的优势明显,但是今日硬件的主流还是基于Rasterizing3D pipeline架构。

在这里我讲的很简略,也没解释其中的专有名词,但是之所以Ray-tracingRadiocity没有成为硬件加速主流的原因可以是一串很长的讨论,就像为什么x86结构一开始选择了CISC一样。在这篇浅论中我不打算对这点深入的讨论,只说出了结果:

Ray-tracing
Radiocity算法至今仍多数在CPU上完成(虽然有些GPU based的做法,但是那并不是完整的算法,而是去适应GPU硬件的算法)。实时的ray-tracing(Real-time Ray-tracing, RTRT)能处理的场景复杂度仍然不高,而Radiosity就更不用说了。





3 绘图流水线(Rendering Pipeline)

--> Transformation & Lighting --> Viewport Transformation -->Clipping & culling --> Primitive Assembly
Triangle Setup --> Rasterization -->  Pixel operation  --> Raster operation

这是一个简化过的Rendering pipeline,但是它包含了今日3D pipeline中的主要部件。为什么称作Pipeline呢?因为它就像个一条长长的流水线,输入Vertex data,经过一个又一个Stage的转换,最后输出Pixel color。实际上的GPU pipeline高达数千至上万个cycle,那是因为把整条流水线的运算拆到一个加法或一个乘法那么细的部件来执行了。而我们在这里从high-level去看这条流水线,说明每个Stage做了什么事。


3.1 Transformation & Lighting

Transformation
,在这里指的是坐标系的转换,由对象坐标系(object coordinate)转换到全局坐标系(World coordinate)再到视点坐标系(eye coordinate)的过程。

Object coordinate  ----------------------------->  World coordinate -----------------------> Eye coordinate
                             Model transformation                                 View Transformation

所谓的对象坐标系,指的是以对象参考点为原点的坐标系。以一个正方体来说,在对象坐标系上(以正方体中心为参考点),八个Vertex的坐标分别是(-1,-1,1) (1,-1,1)(1,1,1) (-1,1,1) (-1,-1,-1) (1,-1,-1) (1,1,-1) (-1,1,1)

而所谓的全局坐标系,是整个Scene的坐标系,对所有场景中的对象而言都是同一个,以上例的正方体来说,若它的中心点在World coordinate中是(3,6,4),假设没有旋转,那么8VertexWorld coordinate上的坐标分别是(2,5,5) (4,5,5) (4,7,5) (2,7,5)(2,5,3) (4,5,3) (4,7,3) (2,7,3)

视点坐标系,则是以视点为原点,视线方向为-Z轴的坐标系。

因此我们将Vertex的坐标,从对象坐标系转换到全局坐标系的过程,称作ModelTransformation。从全局坐标系转换到视点坐标系,称作View Transformation。这包括了上面例子中的平移,以及旋转、伸缩等线性变换。在数学上它是以一个HomogeneousCoordinate System的矩阵运算来达成,一个Vertex有四个坐标值,表达成向量(x,y,z,w),乘上一个4x4的变换矩阵(Transformation Matrix)
  
详细的数学并不在我们的讨论范围内,但是请记住「4」这个数字,因为在之后的硬件讨论上我们会需要用到它。

Transformation
结束后是Lighting,根据Vertex上带有的颜色(Color)与法向量(Normal),加上光源的方向,来进行光照计算,算出光照过后的颜色。注意原本的颜色更精确的说,是「对于光线的反射强度」。也就是说,就算原本的颜色是全红,表现成RGBA颜色向量是(1.0 ,0.0 ,0.0 ,1.0),如果没有任何的光打到这个顶点上,则最后出来的颜色会是全黑(0.0 ,0.0 ,0.0 ,1.0)

这里提到了一个颜色向量的表示法,它把颜色当成一个向量来表示,其四个值分别代表了红色 R,绿色 G,蓝色 B,透明度 A。又是一个「4」。

打印】【关闭
新闻分类  
硬件技术
软件技术
应用技术
产品中心
nVIDIA显示卡
AMD显示卡
外置设备
信号线缆
Matrox迈创显示卡
应用示例
3*1 球面融合
3*3拼接+ 1路回显画面
416 台LCD显示器的庞大电视墙

琛之睿电子 版权所有

本站部分资料来源于网络,仅作为展示之用,版权归原作者所有.如果侵犯了您的权益,请来信告知,我们会尽快删除.

粤ICP备15029931号

HB-VX4,分屏器,扩屏宝,显示宝,识别器,专业卡 ,多屏卡,Quadro,Firepro,k600,v4800,v4900,w9100,w600,k2000,丽台,蓝宝石,MST,主动线