ДельфинарийФорум

Direct3D - D3DXCreateMeshFVF

#0
21:01, 26 ноя 2010

Хочу записать карту в mesh, но не могу разобраться с записью данных:

procedure loadMapMesh;

type
  PCustomVertex = ^TCustomVertex;
  TCustomVertex = packed record
    pos: TD3DXVector3;
    norm: TD3DXVector3;
    tu: Single;
    tv: Single;
  end;

pBuf: PCustomVertex;
begin

D3DXCreateMeshFVF(1, 3, D3DXMESH_DYNAMIC, D3DFVF_CUSTOMVERTEX, FD3DDevice , mapMesh);

mapMesh.LockVertexBuffer(0, pointer(pBuf));

pBuf^.pos.x:=0;
pBuf^.pos.y:=0;
pBuf^.pos.z:=0;
pBuf^.norm.z:=1;
pBuf^.norm.x:=0;
pBuf^.norm.y:=0;
pBuf^.tu:=0;
pBuf^.tv:=0;

inc(pBuf);

pBuf^.pos.x:=32;
pBuf^.pos.y:=0;
pBuf^.pos.z:=0;
pBuf^.norm.z:=1;
pBuf^.norm.x:=0;
pBuf^.norm.y:=0;
pBuf^.tu:=1;
pBuf^.tv:=0;

inc(pBuf);

pBuf^.pos.x:=0;
pBuf^.pos.y:=32;
pBuf^.pos.z:=0;
pBuf^.norm.z:=1;
pBuf^.norm.x:=0;
pBuf^.norm.y:=0;
pBuf^.tu:=0;
pBuf^.tv:=1;

inc(pBuf);

mapMesh.UnlockVertexBuffer;

...

а дальше вроде как надо индексировать вершины и присвоить подгруппы, но как это сделать? у Фрэнка Луны код не полный, да и синтаксис С я понимаю с трудом...

#1
13:22, 27 ноя 2010

mapMesh.LockIndexBuffer(0,Pointer(ind));
ind[1]:=1;
ind[2]:=2;
ind[3]:=2;
mapMesh.UnlockIndexBuffer;

ДельфинарийФорум

Тема в архиве.