プログラムを下記のように書き換えましたが ポリゴン描画がやっぱりおかしいです
プログラム
Polygons ps = new Polygons();
Polygon p0 = new Polygon(new Vector3(new Vector(0, 0, 0), new Vector(0, 0, 2), new Vector(2, 0, 0)), new UV3(new UV(0, 0), new UV(0, 0), new UV(0, 0)));
Polygon p1 = new Polygon(new Vector3(new Vector(2, 0, 2), new Vector(2, 0, 4), new Vector(4, 0, 2)), new UV3(new UV(0, 0), new UV(0, 0), new UV(0, 0)));
Polygon p2 = new Polygon(new Vector3(new Vector(10, 0, 10), new Vector(2, 0, 4), new Vector(4, 0, 2)), new UV3(new UV(0, 0), new UV(0, 0), new UV(0, 0)));
ps.Add(p0, 0);
ps.Add(p1, 1);
ps.Add(p2, 0);
ps.Draw(hdl);
DX.ScreenFlip();
p0が0 p1が1 p2が0で最後にはp1とp2が表示されるはず
実際はp0とp2が表示される
polygonsの中身
class Polygons
{
DX.VERTEX3D[] VertexList = new DX.VERTEX3D[40];
// DX.VERTEX3D[] VertexArrey;
int VertexHandle;
public Polygons()
{
VertexHandle = DX.CreateVertexBuffer(120, DX.DX_VERTEX_TYPE_NORMAL_3D);
}
int c = 0;
public unsafe void Add(Polygon p,int n)
{
VertexList[3*n]=p.Vertex[0];
VertexList[3*n+1]=p.Vertex[1];
VertexList[3*n+2]=p.Vertex[2];
IntPtr VertexPointer;
// VertexArrey = VertexList.ToArray();
fixed (DX.VERTEX3D* v = VertexList)
{
VertexPointer = (IntPtr)v;
}
DX.SetVertexBufferData(n*3, VertexPointer, 3, VertexHandle);
}
public unsafe void Draw(int hdl)
{
DX.DrawPolygon3D_UseVertexBuffer(VertexHandle, hdl, 1);
}
}
とても汚いコードで申し訳ないですが 何卒改善方法をご教授いただけるとありがたいです