Почему D3DXCreateCylinder не создает цилиндр?
Я пытаюсь проложить след.
rBallPos
правильно обновляется. Следующий код не работает, создавая цилиндр как след шара. Как это решить?
LPD3DXMESH /*ID3DXMesh*/ ppMeshCylinder = NULL;
hr = D3DXCreateCylinder(g_d3d_device,0.1f,0.1f,0.1f,1,1,&ppMeshCylinder,0);
hr НЕ УКАЗАН здесь и hr!= D3D_OK
D3DXMATRIX cylinder, cylinder2, cylinderRotate, cylinderTrans;
D3DXMatrixRotationX(&cylinderRotate, 1.5f);
D3DXMatrixTranslation(&cylinderTrans, rBallPos.fX, rBallPos.fY, rBallPos.fZ);
D3DXMatrixMultiply(&cylinder, &cylinderRotate, &cylinderTrans);
g_d3d_device->SetTransform(D3DTS_WORLD, &cylinder);
ppMeshCylinder->DrawSubset(0);
Нужна помощь.
1 ответ
Решение
Вам нужно передать указатель на LPD3DXMESH
поэтому ваш параметр сетки должен быть &ppMeshCylinder
вместо ppMeshCylinder
, Фактически, ваш компилятор уже должен был предупредить вас.
Обновление: попробуйте передать большее значение для Slices
а также Stacks
скажем, 5 или 10. Невозможно создать цилиндрическую сетку с одним полигоном.