扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:fireseed 来源:论坛 2007年11月16日
关键字:
g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ); if( NULL == g_pD3D ) { return E_FAIL; } D3DPRESENT_PARAMETERS d3dpp; ZeroMemory( &d3dpp, sizeof(d3dpp) ); d3dpp.Windowed = TRUE; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8; g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, g_hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE, &d3dpp, &g_pd3dDevice ); g_pd3dDevice->SetRenderState( D3DRS_LIGHTING, TRUE ); g_pd3dDevice->SetRenderState( D3DRS_AMBIENT, D3DCOLOR_COLORVALUE( 0.3f, 0.3f, 0.3f, 1.0 ) ); g_pd3dDevice->LightEnable( 0, TRUE); D3DMATERIAL9 mtrl; ZeroMemory( &mtrl, sizeof(mtrl) ); mtrl.Diffuse.r = mtrl.Ambient.r = 140.0f / 255.0f; mtrl.Diffuse.g = mtrl.Ambient.g = 200.0f / 255.0f; mtrl.Diffuse.b = mtrl.Ambient.b = 255.0f / 255.0f; mtrl.Diffuse.a = mtrl.Ambient.a = 1.0f; g_pd3dDevice->SetMaterial( &mtrl ); return S_OK; |
d3dpp.Windowed = TRUE; // 设备是窗口设备而不是全屏 d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; // 翻转缓冲区时不改动后台缓冲 d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8; // ARGB颜色模式 |
g_pd3dDevice->SetRenderState( D3DRS_LIGHTING, TRUE ); g_pd3dDevice->SetRenderState( D3DRS_AMBIENT, D3DCOLOR_COLORVALUE( 0.6f, 0.6f, 0.6f, 1.0 ) ); |
mtrl.Diffuse.r = mtrl.Ambient.r = 140.0f / 255.0f; mtrl.Diffuse.g = mtrl.Ambient.g = 200.0f / 255.0f; mtrl.Diffuse.b = mtrl.Ambient.b = 255.0f / 255.0f; mtrl.Diffuse.a = mtrl.Ambient.a = 1.0f; |
D3DVECTOR SrcBox[] = { { 5.0f, 5.0f, 0.0f }, { 5.0f, 5.0f, 10.0f }, { 5.0f, -5.0f, 0.0f }, { 5.0f, -5.0f, 10.0f }, {-5.0f, -5.0f, 0.0f }, {-5.0f, -5.0f, 10.0f }, {-5.0f, 5.0f, 0.0f }, {-5.0f, 5.0f, 10.0f }, }; WORD wIndex[] ={ 0, 4, 6, 0, 2, 4, 0, 6, 7, 0, 7, 1, 0, 3, 2, 0, 1, 3, 5, 2, 3, 5, 4, 2, 5, 6, 4, 5, 7, 6, 5, 1, 7, 5, 3, 1, }; |
struct CUSTOMVERTEX { D3DVECTOR pos; D3DVECTOR normal; }; |
CUSTOMVERTEX ExpandBox[sizeof(wIndex) / sizeof(WORD)]; for ( int i = 0; i < 36; i++ ) { ExpandBox[i].pos = SrcBox[ wIndex[i] ]; } |
for ( i = 0; i < 12; i++ ) { D3DVECTOR Tri[3]; Tri[0] = ExpandBox[ i * 3 + 0 ].pos; Tri[1] = ExpandBox[ i * 3 + 1 ].pos; Tri[2] = ExpandBox[ i * 3 + 2 ].pos; ExpandBox[ i * 3 + 0 ].normal.x = 0.0f; ExpandBox[ i * 3 + 0 ].normal.y = 0.0f; ExpandBox[ i * 3 + 0 ].normal.z = 1.0f; CalcNormal( Tri, &(ExpandBox[ i * 3 + 0 ].normal) ); ExpandBox[ i * 3 + 1 ].normal = ExpandBox[ i * 3 + 0 ].normal; ExpandBox[ i * 3 + 2 ].normal = ExpandBox[ i * 3 + 0 ].normal; } |
#define D3DFVF_CUSTOMVERTEX ( D3DFVF_XYZ | D3DFVF_NORMAL ) |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者