- Код: Выделить всё
Set Mesh = d3dx.CreateMeshFVF(3, 1, D3DPOOL_MANAGED, D3DFVF_XYZ Or D3DFVF_NORMAL, d3dDevice)
Модератор: Mikle
Set Mesh = d3dx.CreateMeshFVF(3, 1, D3DPOOL_MANAGED, D3DFVF_XYZ Or D3DFVF_NORMAL, d3dDevice)
mesh->lockvertexbuffer.....
Vovik писал(а):как туда запихнуть вершинный и индексный буфера
Mesh.GetIndexBuffer
Mesh.GetVertexBuffer
vb.SetPrivateData
ib.SetPrivateData
Mikle писал(а):Vovik писал(а):как туда запихнуть вершинный и индексный буфера
У тебя какие-то странные параметры. Первый параметр - кол-во треугольников, у тебя 3, второй - кол-во вертексов, у тебя 1
То есть ты СРАЗУ создаёшь меш нужного объёма, например у куба с нормалями будет 24 вертекса и 12 треугольников, число индексов всегда в 3 раза больше, чем треугольников, для куба - 36.
Дальше берут из меша уже готовые пустые буферы с помощью:и запихивают туда данные с помощью
- Код: Выделить всё
Mesh.GetIndexBuffer
Mesh.GetVertexBuffer
- Код: Выделить всё
vb.SetPrivateData
ib.SetPrivateData
Set Mesh = d3dx.CreateMeshFVF(1, 3, D3DPOOL_MANAGED, D3DFVF_XYZ Or D3DFVF_NORMAL, d3dDevice)
Set iBuf = Mesh.GetIndexBuffer
Set vBuf = Mesh.GetVertexBuffer
ReDim Ind(2)
ReDim Vert(2)
Ind(0) = 0
Ind(1) = 1
Ind(2) = 2
Vert(0).Pos.x = -0.5
Vert(0).Pos.y = -0.5
Vert(1).Pos.x = -0.5
Vert(1).Pos.y = 0.5
Vert(2).Pos.x = 0.5
Vert(2).Pos.y = -0.5
D3DVertexBuffer8SetData vBuf, 0, Len(Vert(0)) * 3, 0, Vert(0)
D3DIndexBuffer8SetData iBuf, 0, Len(Ind(0)) * 3, 0, Ind(0)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3