使用されるプログラム3Dごとに新しいVertexBuffer3D&IndexBuffer3Dを作成する必要がありますか?

StackOverflow https://stackoverflow.com/questions/8904365

質問

いくつか持っている場合 Program3D オブジェクト(それぞれが独自のものです 頂点シェーダーフラグメントシェーダー 独自のレンダリングタスクに責任があります)、新しいものをインスタンス化する必要がありますか VertexBuffer3DIndexBuffer3D 対応する頂点データ形式にのみ関連するデータを保存するように Program3D?

たとえば、次のようなさまざまな頂点データ形式でクワッドを定義することを計画していた場合:

var vertexData:Vector.<Number>;

//Vertex-Format A:
vertexData = new <Number>[
  //X, Y, U, V
  -.5, -.5, 0, 0,
  .5, -.5, 1, 0,
  .5, .5, 1, 1,
  -.5, .5, 0, 1
];

//Vertex-Format B:
vertexData = new <Number>[
  //X, Y, U, V, Matrix-Constant ID, Color
  -.5, -.5, 0, 0, 3, 0xff0000,
  .5, -.5, 1, 0 , 3, 0x00ff00,
  .5, .5, 1, 1,   3, 0x0000ff,
  -.5, .5, 0, 1,  3, 0xffff00
];

//Vertex-Format C:
vertexData = new <Number>[
  //X, Y, Matrix-Constant ID
  -.5, -.5, 3,
  .5, -.5, 3,
  .5, .5, 3,
  -.5, .5, 3
];

作成する必要がありますか VertexBuffer3DIndexBuffer3D 保管します 形式a, 、もう1つ フォーマットb, 、そしてさらに別のもの フォーマットc?または、さまざまな形式を同じ内部に混ぜることができますか VertexBuffer3D そして、シングルを巧妙に(または混乱させる!)使用します IndexBuffer3D 三角形を描くには?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top