摘要: D3DXVECTOR3 look_position(0.0f,20.0f,50.0f); D3DXVECTOR3 look_targetpoint(0.0f,0.0f,00.0f); D3DXVECTOR3 look_worldup(0.0f,1.0f,0.0f); D3DXMatrixLookAtLH(&lookAt,&look_position,&look_targetpoint,&look_worldup); Device->SetTransform(D3DTS_VIEW,&lookAt);这段代码是设置视图空间的标准写法,需要注意的是loo 阅读全文
posted @ 2012-01-31 00:37 重甲土拨鼠 阅读(185) 评论(0) 推荐(0) 编辑
摘要: IDirectXFileData::GetData函数是dx9b中的方法,用于取得x文件中的具体数据,返回void**的指针。在dx9c中取而代之的函数是ID3DXFileData::Lock( SIZE_T * pSize, CONST VOID ** ppData); psize是数据缓冲区的大小,ppdata是首地址指针用完之后使用ID3DXFileData::Unlock() 函数释放内存锁。 阅读全文
posted @ 2012-01-26 17:22 重甲土拨鼠 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 《directx高级动画制作》中讲述如何获得x文件中的网格mesh,用到了D3DXLoadMeshFromXof 函数但是运行时发生0xC0000005: 读取位置 0x00000000 时发生访问冲突原因是因为第四个参数LPD3DXBUFFER * ppAdjacency 不能为NULL,实例化一个buffer就好了更改后的代码:D3DXLoadMeshFromXof(sub_pData,D3DXMESH_SYSTEMMEM,Device,&sub_adjBuffer,&sub_Materials,NULL,&sub_NumMaterials,&sub_Mes 阅读全文
posted @ 2012-01-23 14:57 重甲土拨鼠 阅读(1176) 评论(0) 推荐(0) 编辑
摘要: IDirectXFile,IDirectXFileData等接口被改为ID3DXFile,ID3DXFileData因此 directx高级动画制作 中的例子就有很多地方需要改,比如最长遇见的错误【error C2664: “D3DXLoadMeshFromXof”: 不能将参数1 从“LPDIRECTXFILEDATA”转换为“LPD3DXFILEDATA”与指向的类型无关;转换要求reinterpret_cast、C 样式转换或函数样式转换】更改前获取xfilepDXFile->CreateEnumObject((LPVOID)xFileName,DXFILELOAD_FROMFIL 阅读全文
posted @ 2012-01-23 10:23 重甲土拨鼠 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 用vs2008 使用该函数只能取到x文件中的第一部分的名称,用vs2005使用时 名称参数 返回无效地址。原因是GetName函数需要使用连续使用两次,虽然网上和各种参考书籍中都是这么介绍的,但是没用强调其必须连续用两次的事,正常人看了还以为可以有两种用法。正确的使用方式:pData->GetName(NULL,&size); //第一次调用计算名称缓冲区大小 pData->GetName(name,&size); //第二次调用取出名称之后name中才能的到正确的数据名称。 阅读全文
posted @ 2012-01-18 23:15 重甲土拨鼠 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 编译vertex shader出现:\error X3025:global variables are implicitly constant,enable compatibility mode to allow modification.这是因为当前编译的shader基于一个较老的shader版本,必须指定兼容模式D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY才能 编译通过也就是在调用D3DXCompileShaderFromFile编译shader时,第6个参数必须包含此值。一般常见的代码更改后变为: hr = D3DXCompileShaderFrom 阅读全文
posted @ 2012-01-17 22:50 重甲土拨鼠 阅读(418) 评论(0) 推荐(1) 编辑
摘要: 引入rmxftmpl.h后 编译汇报类似重复定义的错误,如error LNK2005: "unsigned char * D3DRM_XTEMPLATES" (?D3DRM_XTEMPLATES@@3PAEA) 已经在 D3DDispath.obj 中定义问题原因不详,应该是sdk和环境的事,网上有说换一个sdk问题解决,没有试过,我的解决方法是,打开rmxftmpl.h文件将原来的unsigned char D3DRM_XTEMPLATES[] 改成staticunsigned char D3DRM_XTEMPLATES[] 后问题解决。 阅读全文
posted @ 2012-01-17 22:42 重甲土拨鼠 阅读(270) 评论(0) 推荐(0) 编辑
摘要: hr = pEnum->GetNextDataObject(&pData) 运行后 hr的值为-2005531806。 原因是因为没有注册模板,即使你使用的是directx标准模板也必须先注册,代码如下if(FAILED(pDXFile->RegisterTemplates( (LPVOID)D3DRM_XTEMPLATES, D3DRM_XTEMPLATE_BYTES))) { pDXFile->Release(); return FALSE; }当然需要引入头文件#include <dxfile.h>#include <rmxftmpl.h> 阅读全文
posted @ 2012-01-17 22:38 重甲土拨鼠 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 各位女士们先生们!lolis and bad men!!停车坐爱枫林晚,从此君王不早朝!经过了N多天惨无人道的加班,三哥终于又活着和大家见面啦。经过了之前的准备知识,今天我们来看一下真正的3D渲染。 阅读全文
posted @ 2011-10-29 12:46 重甲土拨鼠 阅读(2645) 评论(0) 推荐(0) 编辑
摘要: 笔记本的无线网卡是Intel AGN 5100,首先操作系统必须是win vista及其以上的版本,因为xp是不支持该服务的。然后确认你的无线网卡支持虚拟路由技术,现在大部分的无线网卡均支持该技术。然后使用驱动精灵将你的网卡驱动更新至最新。然后再开始运行中输入cmd,并右键以管理员身份运行。1.设置虚拟网卡及其密码netsh wlan set hostednetwork mode=allow ssid="leexzWlan" key=12345678(其中leexzWlan是虚拟网卡的名字,12345678是虚拟无线网络的密码)2.开启无线网络netsh wlan star 阅读全文
posted @ 2011-10-23 11:33 重甲土拨鼠 阅读(8115) 评论(0) 推荐(0) 编辑