原文地址:
http://www.directxtutorial.com/Lesson.aspx?lessonid=11-4-1
The CPU Directs the GPU
大意为:CPU驱动GPU绘制图形显示在监视器上。
The CPU and GPU Have Separate Memory
DirectX图形基础设施(DXGI)示意图:
简单说下,Win32应用程序可以使用Direct3D完成与硬件(显卡)的交互。不仅如此,Direct3D可以通过硬件抽象层(HAL)通过图形设备驱动程序接口访问图形硬件,从而可以充分地发挥显卡的潜在功能,绘制出高性能高质量的精美图形来。
交换链:
为了让画面能够平滑的过渡,DXGI使用了交换链的方法:
交换链由两个或者两个以上的表面组成,而每个表面都是存储着2D图形的一个线性数组,其中每个元素都表示着屏幕上的一个像素。
前台缓冲区和后台缓冲区是位于系统内存或显存里的内存块,对应于将要显示的二维显示区域。前台缓冲区是显示在显示屏上的,后台缓冲区主要用于图形绘制的准备工作,准备好之后,就可以和前台缓冲区进行一个交换动作。
页面翻转,是指向前台缓冲区和后台缓冲区表面内存的指针在进行着调换动作,也就是说是经过交换表面内存的指针来实现的,而不是通过复制表面的内容实现的。
当然,为了得到更好地效果,我们甚至可以使用三缓冲:
渲染流水线:
渲染流水线是产生3D图形的处理过程,就像流水作业线一样,一步接着一步,它的各个步骤都是在GPU上执行的。
1.The Input-Assembler Stage:
这个阶段从显存中获取你想要渲染的3D模型信息,然后编译这些信息为渲染做准备。
2.The Rasterizer Stage:
这个阶段决定了后台缓冲区的图形需要绘制成什么样的,确切的说哪个像素需要绘制以及它们的颜色是什么。
3.The Output-Merger Stage:
流水线的最后一个阶段,将每个独立的模型整合成一张图片然后把它放在后台缓冲区中。
3D坐标系系统:
3D几何学:
三角形作为最简单的多边形,是构建物体模型的基本单元。
为了能够使用大量的三角形组成三角形网格来描述物体,首先需要定义好三角形的顶点,3个顶点确定一个三角形,而顶点除了定义每个顶点的坐标位置以外,还含有颜色等其他属性。
图中三角形由这三个顶点构成:
x = 0, y = 5, z = 1
x = 5, y = -5, z = 1
x = -5, y = -5, z = 1
然而,要给每个三角形都定义它们的3D坐标系,那太枯燥了。而我们不需要这么做,下节课将会学习创建一个表来存放顶点的信息。
基本体:
1.Point Lists点列
A Point List (6 Primitives)
2.Line Lists线列
A Line List (3 Primitives)
3.Line Strips线带
A Line Strip (5 Primitives)
4.Triangle Lists三角形列
A Triangle List (2 Primitives)
5.Triangle Strips三角形带
A Triangle Strip (4 Primitives)
A Primitive Quirk基本体绘制习惯:
顺时针绘制基本体。
Primitive Only Visible When Drawn Clockwise