Direct3D学习
文章平均质量分 69
尘墨mxy
这个作者很懒,什么都没留下…
展开
-
D3D混合纹理
#include"stdafx.h"#include"混合纹理1.h"#include #include#include#include#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")/**----------------------------------------原创 2013-07-20 10:04:08 · 579 阅读 · 0 评论 -
骨骼动画的实现
http://www.cppblog.com/lovedday/archive/2009/12/09/24729.htmlhttp://www.cppblog.com/lovedday/archive/2008/06/11/52868.html重点:http://www.cppblog.com/lovedday/archive/2007/07/22/28595.htmlhttp:/转载 2013-08-20 23:03:20 · 497 阅读 · 0 评论 -
关于骨骼动画的实现
typedef struct _D3DXFRAME{ //骨骼(框架)结构体 LPSTR Name; //骨骼名 D3DXMATRIX TransformationMatrix; //相对于父骨骼坐标系的变换矩阵 LPD3DXMESHCONTAINER pMeshContainer; //网格容器 struct _D3DXFRAME* pFrameSibling; //兄弟骨骼 struct _D转载 2013-08-20 22:16:51 · 620 阅读 · 0 评论 -
关于摄像机的理解,刚学的很多都会有这个疑惑
D3DXMATRIX * D3DXMatrixLookAtLH(__inout D3DXMATRIX *pOut, __in const D3DXVECTOR3 *pEye, __in const D3DXVECTOR3 *pAt, __in const D3DXVECTOR3 *pUp ); 打个比方,比如你在看一个人,pEye是指你人站的位置;pAt指你眼睛盯着看的原创 2013-08-09 10:45:40 · 548 阅读 · 0 评论 -
GetAsyncKeyState函数中按键的信息
转自MSDN http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx 用法 if (::GetAsyncKeyState(0x51) &0x8000f) // 若键盘上的按键Q被按下,光源类型设为点光源 Light_Set(g原创 2013-08-09 23:48:09 · 3509 阅读 · 0 评论 -
D3D中材质通过D3DMATERIAL9结构说明
光照的两大要素是光源和物体的材质,物体表面材质属性决定了它能反射什么颜色的光线以及反射多少光线。一、Direct3D中材质的定义D3D中材质通过D3DMATERIAL9结构来表示:typedef struct D3DMATERIAL9 { D3DCOLORVALUE Diffuse; D3DCOLORVALUE Ambient; D3DCOLORVALUE转载 2013-08-13 16:07:17 · 589 阅读 · 0 评论 -
DirectInput类
#include "DirectInputClass.h"//-----------------------------------------------------------------------------// Desc: 构造函数//---------------------------------------------------------------------原创 2013-08-13 17:23:48 · 586 阅读 · 0 评论 -
D3DXCreateTextureFromFileEx中参数介绍
D3DXCreateTextureFromFileEx这个函数有14个参数,在MSDN中的原型(后面中文解释为本人理解,仅供参考,原文请查看MSDN):HRESULT D3DXCreateTextureFromFileEx(LPDIRECT3DDEVICE9 pDevice, //调入是IDirect3DDevice9对象指针LPCTSTR pSrcFile,转载 2013-08-13 17:46:20 · 507 阅读 · 0 评论 -
Z缓冲和深度测试以及游戏中播放音乐代码
#define SCREEN_WIDTH 800 //为窗口宽度定义的宏,以方便在此处修改窗口宽度#define SCREEN_HEIGHT 600 //为窗口高度定义的宏,以方便在此处修改窗口高度#define WINDOW_TITLE _T("Mr.MENG") //为窗口标题定义的宏#include #include #include #in转载 2013-08-14 23:21:09 · 523 阅读 · 0 评论 -
D3D笔记
DirectX编译路径 使用DirectX SDK之前,需要在标题搜索路径中包含INCLUDE/头文件路径,还要确认将此路径放在搜索路径列表的第一位,因为许多编译器自己带有旧版本的DirectX,编译器可能会在自己的INCLUDE/目录下找到旧版本的头文件,而使用这些头文件是错误的。具体做法如下(VC++6.0): 工具菜单--〉选项-〉目录-〉路径列表中设置相应路径即可,注意转载 2013-08-14 22:51:08 · 419 阅读 · 0 评论 -
D3D中光照的运用
为了提高场景的真实性,我们可以为其加入灯光。灯光也能帮助表现物体的立体感以及物体的实体形状。当使用灯光时,我们不再自己指定顶点的颜色;Direct3D中每个顶点都通过灯光引擎来计算顶点颜色,该计算是基于定义的灯光资源,材质以及灯光资源关心的表面方向。通过灯光模型计算顶点颜色会得到更真实的场景。5.1灯光的组成 在Direct3D灯光模型中,灯光是通过灯光资源的三个成转载 2013-08-14 22:52:22 · 593 阅读 · 0 评论 -
View Transform 很清晰
我们可以用照相机的原理来阐释3D图形的绘制过程,想象一下,我们在摄影的时候都需要做哪些工作,大致可分为如下几个步骤摆放好待拍摄的物品,或者人物。调整好拍摄角度。调整焦距。拍摄。好了,来分析一下,上面的第一步就相当于世界变换了,将一个模型置于一个公认的坐标系中,这里所谓的公认,也就是大家都遵守的,目的是保证待拍摄的物体和照相机在同一个坐标系。第二步相当于视图变换,这个过程是调整Camer转载 2013-08-16 15:36:41 · 350 阅读 · 0 评论 -
关于纹理和纹理坐标的解释。网址是个不错的D3D学习网址
Direct3D支持广泛的纹理特性设置,使程序员可以轻松的访问提供高级纹理技术。下面我们来讨论Direct3D中的纹理的一些内容:1. 纹理的基本概念2. 纹理句柄3. 纹理接口4. 纹理过滤5. 纹理Wrapping6. 纹理融合7. 纹理压缩8. 自动纹理管理9. 对于纹理的硬件考虑 1.纹理的基本概念 这一部分中转载 2013-08-16 22:59:43 · 886 阅读 · 0 评论 -
D3DXMatrixScaling 函数
创建一个沿着X,Y和Z轴方向缩放矩阵。定义:D3DXMATRIX *WINAPI D3DXMatrixScaling( D3DXMATRIX *pOut, FLOAT sx, FLOAT sy, FLOAT sz);参数:pOut [in, out] 指向D3DXMATRIX 结构的操作结果矩阵。sx [in]原创 2013-08-18 21:50:27 · 1025 阅读 · 0 评论 -
骨骼动画的解释
作者:qlwuu相信这里没有人没玩过采用骨骼动画技术的游戏,看看那些热门的动作游戏,例如《波斯王子》、《分裂细胞》和《战神》,你就知道骨骼动画的威力了(我承认是猜的)。骨骼动画技术用来使我们的3D模型在屏幕上动起来,通过和动作捕捉技术结合,可以让模型做出非常逼真的动作。而这样一个极具威力的技术,其原理却相当简单。假设我们要让游戏主角做出一个动作,例如波斯王子拿弯刀往前一劈。最简转载 2013-08-20 23:02:36 · 577 阅读 · 0 评论 -
关于骨骼动画D3D自带Skinned Mesh的讲解
程序的位置:我的DX安装在E盘,所以位置在 E:\DirectX\Samples\C++\Direct3D\SkinnedMesh 这是我自个写的,第一次发。 没想到这个贴子编辑器极差。 原文是有字体字色的。现在只能清一色了。 版主,发贴的编辑器太难用! 你有必要向上反映一下。 下面的字体是我敲html标记加上的,大家凑和看。 关于骨骼动画及微软示例Skinn转载 2013-08-20 12:40:39 · 930 阅读 · 0 评论 -
D3D矩阵Matrices
//使用矩阵 //熟悉创建设备和顶点的方法 //想要自由创建三维顶点,必须使用4*4大小的矩阵。基本的矩阵变换包括移动(transition)、 //旋转(rotation)和缩放(scaling)三种。几何信息为模型坐标系,必须变换为三维世界坐标系。 //这时使用世界矩阵,再次将世界坐标系的集合信息变换为摄像机坐标系。这时使用的是视图 //矩阵。只有将视图矩阵的集合信息转载 2013-07-19 10:09:24 · 613 阅读 · 0 评论 -
IDirect3DDevice9::SetTextureStageState
IDirect3DDevice9::SetTextureStageStateSets the state value for the currently assigned texture.HRESULT SetTextureStageState( DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value);转载 2013-07-21 10:45:46 · 500 阅读 · 0 评论 -
法线原理
// 法相贴图.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "法相贴图.h"#include #include#include#include#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")HWND g_hWnd ;LPDI原创 2013-07-22 21:27:56 · 649 阅读 · 0 评论 -
阶乘体系月亮太阳旋转原理
// 阶乘体系月亮太阳旋转原理.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "阶乘体系月亮太阳旋转原理.h"#include#include#includeLPDIRECT3D9 g_pD3D = NULL ;LPDIRECT3DDEVICE9 g_pd3d原创 2013-07-23 10:31:23 · 451 阅读 · 0 评论 -
D3DXMatrixPerspectiveFovLH的详解
很详细清楚,终于懂了,和大家分享。 DirectX中投影变换D3DXMatrixPerspectiveFovLH()其实产生的变换矩阵不是将3D物体转换为2D平面画面的变换。实际上是把3D世界的物体变换到(1,1,0) (-1,1,0) (-1,-1,0) (1,-1,0) (1,1,1) (-1,1,1) (-1,-1,1) (1,-1,1)这个小盒子中。在Jim Adams 的著作和Fra转载 2013-07-22 16:00:34 · 1844 阅读 · 0 评论 -
什么是法线贴图?
什么是法线贴图技术呢?这是一种用来实现3D效果的一种技术,要想理解这种技术还请您听我慢慢道来。 我们知道,在游戏中经常会有这样的情况,就是一个平面——这个平面在现实中并不是一 个“平”面,例如砖墙的表面带有石质浮雕等等。这样的情况如果要求游戏开发人员将复杂的3D细节都做出来是不现实的,因为即使不计较在建模时候的复杂度, 过多的3D细节也同样会大量消耗显示芯片的性能,让游戏根本没有可玩性。转载 2013-07-22 11:31:57 · 34216 阅读 · 1 评论 -
平截头体的实现
/**----------------------------------------------------------------------------- * \brief 臭捞甘 * 文件: HeightMap.cpp * * 说明: HeightMap的实现 + Frustum Culling * *-------------------------转载 2013-07-30 16:22:34 · 1614 阅读 · 0 评论 -
关键帧做的立方体动画
// 关键帧动画实现月亮地球.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "关键帧动画实现月亮地球.h"#include#include#include#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")//进行动画关键值插值的阵列原创 2013-07-23 21:30:16 · 599 阅读 · 0 评论 -
WM_KEYDOWN消息的类型
1 VK_LBUTTON 鼠标左键2 VK_RBUTTON 鼠标右键 3 VK_CANCEL Ctrl+Break(通常不需要处理) 4 VK_MBUTTON 鼠标中键 8 VK_BACK Backspace 9 VK_TAB Tab 12 VK_CLEAR Num Lock关闭时的数字键盘5 13 VK_RETURN Enter(或者另一个) 16 VK_SH转载 2013-07-30 22:55:04 · 2364 阅读 · 0 评论 -
学到maxscript脚本语言的一些操作
以前学过脚本语言python,感觉这两种语言很像 1 输出语句for i = i to 4 do (print i ) 2赋值语句a = "JINGRONGJUN"b = "meng"可以相加 a+b 3建立文件myfile = createfile "e:\\data.txt" 4随机数(1到100之间随机整数)a原创 2013-07-25 18:29:43 · 2910 阅读 · 0 评论 -
地形处理技巧
//表示ZFLog在VS2010 win32模式一直到最后都没做出来,明明包含了所有头文件和cpp文件,然后就是无法解析,郁闷...... // map.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "map.h"#include"ZFLog.h"#include#include#include#prag原创 2013-07-27 22:04:16 · 564 阅读 · 0 评论 -
在地图中使用摄像机
#define MAINBODY //要用ZFLog类必须要这个宏#include"ZFLog.h"#include"ZCamera.h"#include#include#include #pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")#define WINDOW_原创 2013-07-29 08:55:51 · 499 阅读 · 0 评论 -
DrawIndexedPrimitive函数一目了然
为了便于说明,首先假设存在下列的顶点缓冲和索引缓冲 vb= { {-1.0, 1.0, 0.0}, index 0 { 1.0, 1.0, 0.0}, index 1 { 1.0,-1.0, 0.0}, index 2 {-1.0,-1.0, 0.0}, index 3 {-2.0, 2.0, 0.0}, index 4原创 2013-08-17 23:03:11 · 684 阅读 · 0 评论