摘要: 1 只在必须的时候Clear。 IDirect3DDevice9::Clear函数通常需要花费较多的时间,因此要尽量少调用,而且只清空的确需要清空的缓存。 2 尽量减少状态切换。并且将需要进行的状态切换组合在一起设置。 状态包括RenderState,SamplerState,TextureStageState等 3 纹理尺寸尽可能小 4 从前至后渲染场景中的对象 从前至后渲染可以尽可能早地精选出... 阅读全文
posted @ 2010-12-01 21:48 PeterLirui 阅读(433) 评论(0) 推荐(0)
摘要: 为什么使用四元数为了回答这个问题,先来看看一般关于旋转(面向)的描述方法-欧拉描述法。它使用最简单的x,y,z值来分别表示在x,y,z轴上的旋转角度,其取值为0-360(或者0-2pi),一般使用roll,pitch,yaw来表示这些分量的旋转值。需要注意的是,这里的旋转是针对世界坐标系说的,这意味着第一次的旋转不会影响第二、三次的转轴,简单的说,三角度系统无法表现任意轴的旋转,只要一开始旋转,物... 阅读全文
posted @ 2010-12-01 21:14 PeterLirui 阅读(700) 评论(0) 推荐(0)
摘要: 首先我们需要定义一些变量来储存所需信息D3DXQUATERNION g_qNow, g_qDown; //分别是 现在的旋转用四元数 按下鼠标时的旋转用四元数D3DXVECTOR3 g_vDownPt, g_vCurrentPt; //分别是 按下鼠标时的球面上的位置向量 当前的位置向量bool g_bDrag = false; //是否按下鼠标左键 用来判断按键拖拽然后初始化这些变量D3DXQu... 阅读全文
posted @ 2010-11-30 15:55 PeterLirui 阅读(1596) 评论(0) 推荐(0)