|
|
我的一个用红色渲染的平面和一个.x文件导入的模型放在一起时,为何平面会变成黑色,然后我换了一个模型,平面又会变成另一种颜色,此问题已困扰我一个星期,请高手指教。
winmain函数的内容如下:
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
// Register the window class
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,
GetModuleHandle(NULL), NULL, NULL, NULL, (LPCTSTR)IDR_MENU1,
"D3D Tutorial", NULL };
RegisterClassEx( &wc );
// Create the application's window
HWND hWnd = CreateWindow( "D3D Tutorial", "D3D Tutorial 03: Matrices",
WS_OVERLAPPEDWINDOW, 100, 100, 800, 800,
NULL, NULL, wc.hInstance, NULL );
InitDxinput(hInst,hWnd);
LoadString(hInst, IDR_MENU1, szWindowClass, MAX_LOADSTRING);
// Initialize Direct3D
if( SUCCEEDED( InitD3D( hWnd ) ) )
{
MyObject MyActor(g_pd3dDevice);
MyMap mymap(g_pd3dDevice);
MyCamera camera(g_pd3dDevice);
// Create the scene geometry
if( SUCCEEDED( mymap.InitGeometry() ) )
{
// Show the window
ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );
MyActor.InitGeometry("move.X");
// Enter the message loop
MSG msg;
ZeroMemory( &msg, sizeof(msg) );
while( msg.message!=WM_QUIT )
{
if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
{
updataDxinput();
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255,255,255), 1.0f, 0 );
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
camera.SetupViewMatrices(MyvEyePt,MyvLookatPt,MyvUpVec);
mymap.SetupWorldMatrices(0,0,0,1,10);
mymap.Render();
MyActor.SetupWorldMatrices(0,30,0,0.5,10);
MyActor.Render();
g_pd3dDevice->EndScene();
}
g_pd3dDevice-> resent( NULL, NULL, NULL, NULL );
}
}
}
}
UnregisterClass( "D3D Tutorial", wc.hInstance );
return 0;
}
|
|