Lesson 6: 理解计算机图形学
来源:互联网 发布:程序员面试攻略 pdf 编辑:程序博客网 时间:2024/05/04 21:14
原文地址:
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
- Lesson 6: 理解计算机图形学
- 计算机图形学10一一理解旋转矩阵
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- Maven教程-使用m2eclipse创建web项目
- Java开发牛人十大必备网站
- 技术网站汇总
- 使用 MEAN 进行全栈开发基础篇——1、先来弄个环境什么的
- 20161212JAVA学习
- Lesson 6: 理解计算机图形学
- Android自定义View之基本API(二)
- Deleting a git commit
- Hive 之内/外表 与 分区表/桶表区别
- Git - rebase
- Git HowTo: revert a commit already pushed to a remote repository
- css模块化开发
- 个人笔记
- css 模块化实践