
DirectX
文章平均质量分 76
olncy
这个作者很懒,什么都没留下…
展开
-
D3D中的第一人称视角
第一人称视角控制,就像quake一样用鼠标控制方向,用键盘控制左右前后。鼠标和键盘用directinput控制输入。首先,我们可以知道d3d的view矩阵有三个组成部分,分别是三个向量:眼睛所在点、眼看着的点、向上的方向。所以,我们首先定义三个向量:D3DXVECTOR3 VDot,VAtPoint,VUp;赋予初值:VDot=D3DXVECTOR3( 2.0f, 0.0f转载 2008-05-22 15:52:00 · 906 阅读 · 0 评论 -
值得注意的函数: DrawIndexedPrimitive
它的全部申明是: HRESULT DrawIndexedPrimitive ( D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinIndex, UINT NumVertices, UINT StartIndex, UINT PrimitiveCounts); 查阅DirectX 9的SDK, 关于他的文档为下: Para转载 2008-12-21 10:34:00 · 2969 阅读 · 2 评论 -
关于 DXT1 格式的解码优化
DXT1 使用的是 4x4 像素一个单元. 两个 16bit 的调色盘. 如果没有透明色的话, 还需要插值出 2 种颜色. c2=c0*2/3+c1*1/3c3=c0*1/3+c1*2/3因为两个色盘正好可以读进一个 dword 寄存器, 所以我们可以把 c0, c1 两种颜色读到两个寄存器中. 方便计算. 类似的代码可以写成这样:mov eax,[pal]mov ebx,eaxswap ax,b转载 2008-12-15 12:26:00 · 2087 阅读 · 0 评论 -
DXT 图片压缩
这两天在写 DDS 格式的解码程序。DDS 是微软为 DirectX 开发的一种图片格式,MSDN 上可以查到其文件格式说明:DDS File Reference 。其中的 DXT 图片压缩格式,现在已经为绝大多数 3D 显卡硬件所支持。(它使用了由 S3 公司所发明的转载 2008-12-15 12:27:00 · 2169 阅读 · 0 评论 -
骨骼动画(Skeletal Animation)
骨骼动画(Skeletal Animation)(一)相信这里没有人没玩过采用骨骼动画技术的游戏,看看那些热门的动作游戏,例如《波斯王子》、 《分裂细胞》和《战神》,你就知道骨骼动画的威力了(我承认是猜的)。骨骼动画技术用来使我们的3D模型在屏幕上动起来,通过和动作捕捉技术结合,可以让 模型做出非常逼真的动作。而这样一个极具威力的技术,其原理却相当简单。 假设我们要让游戏主角做出一个动作,原创 2008-05-22 15:42:00 · 1984 阅读 · 0 评论 -
可变顶点格式
可变顶点格式 typedef struct{FLOAT x,y,z,rhw; //2-D坐标FLOAT x,y,z; //3-D坐标FLOAT nx,ny,nz; //法线D3DCOLOR diffuse; //漫反射色FLOAT u,v; //纹理坐标}sVertex;唯一冲突的变量就是那些表示坐标和法线的变量。法线(no原创 2008-05-22 15:28:00 · 656 阅读 · 0 评论 -
在DirectX9.0中使用Mesh (1)
在DirectX9.0中使用Mesh (1)在D3DX中,有很多函数都使用了ID3DXMesh接口,如D3DXCreate*之类。 ID3DXMesh接口的主要功能继承自ID3DXBaseMesh父类接口,还有其他的Mesh接口也是从ID3DXBaseMesh接口继承的,如 ID3DXPMesh接口,这个接口用于Progressive Mesh,把它翻译成“渐进Mesh”,不知是否合适。原创 2008-05-22 15:24:00 · 839 阅读 · 0 评论 -
DirectX里的Skin Mesh角色动画
DirectX里的Skin Mesh角色动画 在写我们的skin mesh代码之前了解DX怎样处理skin mesh是很重要的.当然,现在有很多可以存skin meshes的文件格式,但是现在最容易使用的是在DirecdtX中有支持的X文件.X文件可以存储正常的静态的meshes,也同样支持skin meshes.在开始讲skin meshes 之前,让我们对X文件有个大概的了解.我将原创 2008-05-22 15:36:00 · 1618 阅读 · 0 评论 -
Directx3D编程框架
Directx3D编程框架微软的编程工具都别扭,但适者生存、小小程序员只能适应。无奈的初学者面对Directx 3D图形接口,有个方法倒是可行,就是先搞通基本的编程框架,算是入门的一种方法。下面就简单介绍D3D的入门途径。 首先,初始化你的D3D设备: LPDIRECT3DDEVICE9 pd3dDevice;LPDIRECT3D9 pD3D = Direct3DCreate9(转载 2008-05-22 15:30:00 · 1945 阅读 · 1 评论 -
我对【纹理颜色混合】与【ALPHA混合】的理解
纹理颜色混合这是我对纹理混合的理解,如果我的理解有误,请一定给我来信(gao_xudong2004@163.com),敬请赐教: 在D3D中,一个物体表面可以使用多个纹理,使用多个纹理时,某点最后的显示颜色可以由两个纹理的同一纹理坐标位置的两个颜色的混合值来决定,并且两纹理的操作结果可以作为下一次纹理颜色混合的来源颜色(我理解为,将操作结果保存在帧缓冲中,下一次操作转载 2009-03-31 15:00:00 · 1514 阅读 · 0 评论