DirectX 基础

来源:百度知道 编辑:UC知道 时间:2024/09/22 09:58:59
我照tutorial的Lights那个例子写的,效果一样,黄色的圆筒在X州滚动。哪位高手帮我看一下为什么运行后是一片空白,什么也没有?由于代码太长,将在一楼帖出。
我改得基本上和sample里的一样,甚至数值最后都改成一样的了,而且我把示例程序各个函数复制过来替换掉我自己的相应函数仍然不行,而全部复制过来却正常了,不知为什么?

返回对照一下Sample浏览器里边的源码。
看看缓冲区alpha和RBG值设置是否正确。还有就是法线和顶点不要设置错误了。

好久没玩d3d了,又见新人。。。O(∩_∩)O~~

// DemoLight.cpp:
//
#include <windows.h>
#include <d3dx9.h>
#include <mmsystem.h>

//#pragma comment (lib, "d3d9.lib")
//#pragma comment (lib, "d3dx9d.lib")
//#pragma comment (lib, "winmm.lib")
//#pragma comment (lib, "d3dxof.lib")
//#pragma comment (lib, "dxguid.lib")

struct CUSTOMVERTEX {
D3DXVECTOR3 position;
D3DXVECTOR3 normal;
};

#define D3DFVF_CUSTOMVERTEX ( D3DFVF_XYZ | D3DFVF_NORMAL)

LPDIRECT3D9 d3d9;
LPDIRECT3DDEVICE9 d3ddev;
LPDIRECT3DVERTEXBUFFER9 d3dvb;

void InitD3D( HWND hwnd)
{
d3d9 = Direct3DCreate9( D3D_SDK_VERSION);

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof( d3dpp));
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
d3dp