Для создания сферы используем функцию D3DXCreateSphere() из модуля D3DX9:
Код:
//------------------------------------------------------
// D3DXCreateSphere:
// -----------------
// Creates a mesh containing a sphere. The sphere is centered at the
// origin.
//
// Parameters:
//
// pDevice The D3D device with which the mesh is going to be used.
// Radius Radius of the sphere (should be >= 0.0f)
// Slices Number of slices about the main axis
// Stacks Number of stacks along the main axis
// ppMesh The mesh object which will be created
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
//--------------------------------------------------------------
function D3DXCreateSphere(ppDevice: IDirect3DDevice9;
Radius: Single;
Slices,
Stacks: LongWord;
out ppMesh: ID3DXMesh;
ppAdjacency: PID3DXBuffer): HResult; stdcall; external d3dx9shapesDLL;
Я сейчас перехожу с версии 9.0 на 9.0c и получается, что пример зависит от стиля программирования (стандартный Delphi-проект, пример которого работает с ошибками или в Си-стиле (регистрация типа окна, цикл обработки сообщений и т.д.), примеров по которым куча, но хотелось бы их переработать под классический стиль Delphi. Смена кадров обычно в Application.OnIdle)