`
fqq97fqq
  • 浏览: 13530 次
社区版块
存档分类
最新评论

DX复习文档

阅读更多

DX复习文档
2011年12月19日
  1>线性代数基础
  1)坐标系:Direct 3D中的默认坐标系是“左手坐标系”,而3DMax中是右手坐标系。
  2)向量:(方向+长度(模),矢量)
  (1):特殊向量---零向量(起点跟终点重合的向量,所以它的方向不确定)
  (2):向量运算:
  单位向量:模为1的向量。常常在一个向量符号上加一个“^”来表示单位向量。
  向量加法:相加的两个向量必须要有相同的维数。
  向量减法:相减的两个向量必须要有相同的维数。u - v:返回一个从向量v的头部到向量u的头部
  的向量。
  向量数乘:ku(k为标量) k>0,ku与u同向;k0,两向量之间夹角小于90度;
  u。v右下)元素全为1,其余全为0.
  (3):矩阵运算:
  矩阵相等:两个矩阵具有相同维数且元素都相等。具有相同维数的矩阵称为同型矩阵。
  矩阵加法:两个相同维数的矩阵之间进行,等位元素相加。
  矩阵减法:两个相同维数的矩阵之间进行,等位元素相减。
  矩阵数乘:矩阵中每个元素都乘标量。
  矩阵乘法:AB,矩阵A的列数必须跟矩阵B的行数相等,如:A是一个m x n的矩阵,
  B是一个n x p的矩阵,则得到一个m x p的新矩阵。
  注:矩阵乘法通常不满足交换律(一个方形矩阵(行数、列数相等)跟它的通行矩阵就满足)
  矩阵转置:交换矩阵的行和列。
  逆矩阵:矩阵没法除法,但可以有逆操作。
  注:只有方形矩阵有逆矩阵(并不是所有的方形矩阵都有逆矩阵);
  一个矩阵与它的逆矩阵相乘结果是一个单位矩阵。
  4)复数(i;i的平方 = -1)  z = a+b*i;  a:实部,b:虚部
  5)四元数:一个实部,3个虚部的复数。 q = q0+q1*i + q2*j + q3*k;  i = (1,0,0) j = (0,1,0,)  k = (0,0,1)
  2>DX基础
  1)COM(组件对象模型) 优点:
  (1)跨平台,与编程语言无关。
  (2)COM只能通过接口来访问,不能直接访问数据成员,保证安全性。
  (3)COM接口永远不会改变。
  2)COM的创建:
  Com对象接口跟C++类对象的很大区别在于它们生存周期不同,C++类对象由new、delete来决定,
  Com对象接口通过控制它的引用计数器来决定。
  3)HAL与REF
  HAL:硬件抽象层,使DX开发独立于硬件设备;REF;:参考光栅器,为了在不支持DX的硬件设备上测试DX函数,提供REF设备来进行软件模拟。缺点:运行速度慢,REF设备除了测试没别的用。
  4)图形渲染管线(大部分时间就是在进行坐标转换)
  一条渲染管线大致分为两个阶段:
  1):坐标变换和光照(T&L),在此阶段,每个对象的坐标将变换到基于像素的屏幕空间
  流程图:非T&L顶点-->本地空间--->世界空间---->视图空间--->拣选--->光照-->裁剪-->投影变换-->
  视口变换-->T&L顶点
  2):光栅化阶段:将渲染结果显示到屏幕上。
  一条渲染管线具体包括:应用程序阶段(碰撞检测、加速算法...)+几何阶段(逐顶点、逐像素渲染)
  +光栅化阶段(目的:每个像素正确配色以便正确渲染画面)
  5)主要的空间转换定义及作用:
  (1)世界变换(渲染管线的第一步就是将物体从本地空间变换到世界空间);作用:主要完成模型的平移、缩放、旋转...  g_pDevice->SetTransform(D3DTS_WORLD,&matWorld);
  (2)视图变换(将摄像机平移到世界空间坐标系原点并把正方向跟Z轴正方向相同,此时世界空间中的所有物体都将随着摄像机的变换做相同变换)
  (3)投影变换(将摄像机观察到的三维景象显示在二维平面上,这种三维到二维的变换就是投影变换),包含正交平行投影和透视投影。
  (4)视口投影(通过定义屏幕显示区域的实际宽、高等参数,将顶点从投影坐标变换为最终显示的以像素为单位的屏幕坐标)
  6)纹理过滤和纹理采样
  纹理过滤:放大过滤(当较小纹理映射到较大的平面上时,纹理元素被放大,像素块化,采用放大过滤
  可以稍作改善)。
  缩小过滤(当较大的纹理映射到较小的平面上时,纹理元素被缩小,纹理变模糊,采用缩小过滤
  可以稍作改善)。
  多纹理过滤(利用多种纹理级别来提高图形质量)  注:DX最多支持8层多重纹理贴图(0---7)。
  纹理采样:(决定在纹理映射时,某个像素点从纹理元素中获取信息的方式)
  最近点采样、线性纹理过滤(目前应用最广泛)、各向异性过滤、多级渐进纹理过滤
  7)纹理寻址和纹理包装
  纹理寻址:(纹理坐标一般是(0--1),除了这个范围的部分,就需要纹理寻址),5种纹理寻址模式:
  1:包装纹理寻址(dx默认的纹理寻址模式),在每个整数连接点处重复纹理操作,(0.0,0.0),
  (0.0,3.0),(3.0,,3.0),(3.0,0.0)  D3DTADDRESS_WARP
  2:镜像纹理寻址:对每个整数连接点处得纹理进行了镜像处理,也就是对纹理自动复制
  并翻转。D3DTADDRESS_MIRROR
  3:夹取纹理寻址:将纹理边缘的颜色像素进行延伸  D3DTADDRESS_CLAMP
  4:边框颜色纹理寻址:用设置的边框颜色填充超出部分  D3DTADDRESS_BORDERCOLOR
  5:一次镜像纹理寻址.纹理取值在-1.0 -- 1.0范围内的做镜像,该范围外的使用夹取
  模式     D3DTADDRESS_MIRRORONCE
  纹理包装:如何在纹理坐标之间做插值运算。使用纹理包装之后,纹理坐标被限定在(0.0 --- 1.0)之间,
  超出范围的部分视为无效值,因此纹理包装跟纹理寻址不能同时使用。
  8)摄像机基础:
  (1):静态摄像机  D3DXMatrixLookAtLH用来生成摄像机的视图变换矩阵,
  函数D3DXMatrixPerspectiveFovLH用来生成摄像机的投影变换矩阵。
  (2):平移变换 :将摄像机的位置移到世界空间的坐标原点;
  旋转变换:摄像机视点朝向跟世界坐标系Z轴正方向重合,摄像机正方向跟世界坐标系的y轴
  正方向重合,摄像机的右方向跟世界坐标系的x轴正方向重合。
  注:求摄像机的旋转矩阵即求摄像机的逆矩阵。
  (3):视图矩阵:将摄像机平移矩阵跟旋转矩阵进行矩阵乘法就得到视图矩阵。
  (4):投影变换:正交平行投影和透视投影。
  9)场景管理:
  (1):室内场景管理  
  BSP(通过将场景中的物体有序化,从观察点出发检索BSP,获取以Z坐标为关键码的三角形存储表)
  Portal
  (2):室外场景管理
  四叉树LOD技术:利用四叉树对二维地平面进行分割,每次将正方形分割为4个等分的正方形,
  直至分割的正方形大小达到某个预定值,才对每个正方形进行三角形剖分渲染。在渲染时
  通过视域评价系数,剔除一些三角形,从而减少场景中待渲染的三角形,提高渲染效率。
  ROAM技术(二叉三角形树BTT):BTT的核心几何图元是三角形,而四叉树处理的是矩形。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics