009-010 DirectX基础.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.3 图形渲染管线 2.3.2 Direct3D中的TL阶段 3.背面拣选(Backface Culling) 第2章 DirectX基础 每一个多边形都有两面,面向视线的面是可见的,称为正面,而另一个面通常情况下是不可见的,称为背面,。在渲染过程中,Direct3D通过一个被称为背面拣选(Backface Culling)的技术,不渲染多边形的背面,从而提高渲染效率。 //g_pDevice为有效的Direct3D设备指针 g_pDevice-SetRenderState(D3DRS_CULLMODE,value); 2.3 图形渲染管线 2.3.2 Direct3D中的TL阶段 4.光照 第2章 DirectX基础 经过空间变换后,计算所有的光照效果,并应用到顶点。光照代码将着眼于每个顶点的位置、法线向量、颜色和当前的材质属性。它可以根据所有这些因素和光线的属性来计算每个顶点上每条光线的效果,并将结果颜色存储回顶点的数据结构。 2.3 图形渲染管线 2.3.2 Direct3D中的TL阶段 5.裁剪(Clipping) 第2章 DirectX基础 只有当几何图形处于可视的范围之内才需要被渲染,因此,需要拣选那些超出可视范围的多边形,这个过程被称为裁剪,把可视范围作为一个虚拟的几何物体,称为可视体。 2.3 图形渲染管线 2.3.2 Direct3D中的TL阶段 6.投影变换(Projection) 第2章 DirectX基础 在Direct3D中,正交投影的观察范围(可视体)是一个矩形的正交六面体,只有在六面体范围内的物体才会被显示出来。 正交平行投影 D3DXMATRIX *D3DXMatrixOrthoLH( D3DXMATRIX *pOut, //输出用于正交投影的变换矩阵 FLOAT w, //可视体宽度 FLOAT h, //可视体高度 FLOAT zn, //可视体离摄像机的最近距离 FLOAT zf //可视体离摄像机的最远距离 ); //g_pDevice为有效的Direct3D设备指针,matProj代表一个投影变换矩阵 g_pDevice-SetTransform(D3DTS_PROJECTION, matProj); 2.3 图形渲染管线 2.3.2 Direct3D中的TL阶段 6.投影变换(Projection) 第2章 DirectX基础 在Direct3D中,透视投影的观察范围(可视体)是一个平截台体。 透视投影 D3DXMATRIX *D3DXMatrixPerspectiveFovLH( D3DXMATRIX *pOut, //输出用于透视投影的变换矩阵 FLOAT fovY, //摄像机镜头的夹角(在y轴上的成像角度) FLOAT Aspect, //平截台体的横纵比 FLOAT zn, //近平截面的距离 FLOAT zf //远平截面的距离 ); //g_pDevice为有效的Direct3D设备指针,matProj代表一个投影变换矩阵 g_pDevice-SetTransform(D3DTS_PROJECTION, matProj); 2.3 图形渲染管线 2.3.2 Direct3D中的TL阶段 7.视口变换(Viewport Transform) 第2章 DirectX基础 坐标变换的最后一步是通过定义屏幕显示区域的实际宽、高等参数,将顶点从投影坐标变换为最终显示的以像素为单位的屏幕坐标。 typedef struct _D3DVIEWPORT9 { DWORD X; //视口区域的左上角x坐标 DWORD Y; //视口区域的左上角y坐标 DWORD Width; //视口区域的宽度 DWORD Height; //视口区域的高度 float MinZ; //视口内景物的最小深度值,0-1.0之间,通常为0 float MaxZ; //视口内景物的最大深度值,0-1.0之间,通常为1 } D3DVIEWPORT9; HRESULT SetViewport( CONST D3DVIEWPORT9 *pViewport //视口 ); 2.4 D3D程序基本框架 第2章 DirectX基础 2.4 D3D程序基本框架 2.4.1 初始化D3D程序 1.创建Direct3D对象并得到Direct3D接口 第2章 DirectX基础 创建好Windows窗口之后,就可以使用Direct3D来开始作图。 LP

文档评论(0)

9885fp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档