2

500 x 500 ピクセルの長方形を描画します。

私のウィンドウは 1920 x 1080 です。

画面のサイズを 1376 x 768 に変更すると、500 x 500 ピクセルの画像がわずかに小さくなります (拡大縮小され、押しつぶされています)。これを防ぐにはどうすればよいですか?

これは、そのような設定のフラグが配置される場所だと思いますが、必要な設定が見つかりません。

ZeroMemory( &presParams, sizeof( presParams ) );
presParams.Windowed = TRUE;
presParams.SwapEffect = D3DSWAPEFFECT_DISCARD;
presParams.BackBufferFormat = D3DFMT_UNKNOWN;
presParams.PresentationInterval = D3DPRESENT_INTERVAL_ONE;

d3dObject = Direct3DCreate9( D3D_SDK_VERSION );
hr = d3dObject->CreateDevice(
    D3DADAPTER_DEFAULT,
    D3DDEVTYPE_HAL,
    hWnd, 
    D3DCREATE_HARDWARE_VERTEXPROCESSING, 
    &presParams, 
    &d3dDevice
);  
4

1 に答える 1

1

シーンの相対的なサイズ/形状は、バック バッファー サイズとプロジェクション マトリックスの縦横比の影響を受けるため、ウィンドウのサイズを変更したり、画面の解像度を変更したりする場合は、バック バッファー サイズをリセットする必要があります。伸びた。

presParams.BackBufferWidth = window_width or screen_width;
presParams.BackBufferHeight = window_height or screen_height;

次に、pd3dDeveice->Reset(presParams) を呼び出してデバイスをリセットします。

この後、投影行列をリセットして、縦横比 = window_width / window_height または screen_width / screen_height にする必要があります。次に例を示します。

D3DXMatrixPerspectiveFovLH(&proj_matrix, D3DX_PI / 4, ration, 1.0f, 1000.0f);
于 2013-06-14T01:27:21.550 に答える