D3DXMATERIAL* D3DXMeshMaterials;
D3DXMeshMaterials = (D3DXMATERIAL*) pMeshBuffer->GetBufferPointer();
pMeshMaterial = new D3DMATERIAL9[dwNumber];
pMeshTextura =new LPDIRECT3DTEXTURE9[dwNumber];
for (DWORD i=0 ;i<dwNumber; i++)
{
pMeshMaterial=D3DXMeshMaterials.MatD3D;
if(FAILED(D3DXCreateTextureFromFile(pDevice,D3DXMeshMaterials.pTextureFilename,&pMeshTextura))) // L"1.BMP"
pMeshTextura =NULL;
}
pMeshBuffer->Release();
return S_OK;
вопросы которые возникли во время изучения DirectX 9
Я создаю эту тему именно для решения этих вопросов.
Пишу на C++
Всем заранее спасибо за помощь.
при изменение размера (длинны или высоты) главного окна фигуры растягиваются и сжимаются.
Я догадываюсь что это изза неправильной пропорции в заднем буфере,но я не знаю как изменить эту пропорцию или размер заднего буфера (я не знаю что именно виновато в этом)
Как избежать проблемы ?
error C2664: 'D3DXCreateTextureFromFileW' : cannot convert parameter 2 from 'LPSTR' to 'LPCWSTR'
Код:
Цитата: darcest
error C2664: 'D3DXCreateTextureFromFileW' : cannot convert parameter 2 from 'LPSTR' to 'LPCWSTR'
Ты пытаешься передать в юникод-функцию ASCII-строку. Лучший вариант - просто конвертировать pTextureFilename в Юникод.
Либо настрой проект на использование ASCII вместо юникода, либо используй D3DXCreateTextureFromFile[COLOR="Blue"]A[/COLOR].
при использование проекции фигуры просто исчезают.
Код:
D3DXMatrixPerspectiveFovLH(&matProjection, D3DX_PI/4.0f, Aspect, 1.0f, 599.0f);
(*ppiD3DDevice9)->SetTransform(D3DTS_PROJECTION, &matProjection);
(*ppiD3DDevice9)->SetTransform(D3DTS_PROJECTION, &matProjection);
а вот фрагмент где идет подготовка с рабочим выводом (хотя фигуры обрезаются камерой)
Код:
pDevice->BeginScene();
float scale = 0.02f;
D3DMATRIX transform =
{
scale, -0.0f, 0.0f , 0.0f,
0.0f, scale, 0.0f, 0.0f,
0.0f, 0.0f, scale, 0.0f,
0, 0.0f, 0.0f, 1.0f
};
DeawMyMesh();
D3DXMATRIX rotation;
D3DXMatrixRotationY(&rotation, 0);
rotation *= transform;
pDevice->SetTransform(D3DTS_WORLD, &transform);
pDevice->EndScene();
float scale = 0.02f;
D3DMATRIX transform =
{
scale, -0.0f, 0.0f , 0.0f,
0.0f, scale, 0.0f, 0.0f,
0.0f, 0.0f, scale, 0.0f,
0, 0.0f, 0.0f, 1.0f
};
DeawMyMesh();
D3DXMATRIX rotation;
D3DXMatrixRotationY(&rotation, 0);
rotation *= transform;
pDevice->SetTransform(D3DTS_WORLD, &transform);
pDevice->EndScene();
Что я делаю не так ?
Цитата:
D3DXMatrixPerspectiveFovLH(&matProjection, D3DX_PI/4.0f, Aspect, 1.0f, 599.0f);
(*ppiD3DDevice9)->SetTransform(D3DTS_PROJECTION, &matProjection);
(*ppiD3DDevice9)->SetTransform(D3DTS_PROJECTION, &matProjection);
Насколько я помню то D3DX_PI надо делить на 2 а не на 4