草のライブ壁紙をめくってから、次のコードを見つけました。草の葉のメッシュを作成し、インデックスを設定します。
private void createMesh() {
mVertexBuffer = new ScriptField_Vertex(mRS, mVerticies * 2);
final Mesh.AllocationBuilder meshBuilder = new Mesh.AllocationBuilder(mRS);
meshBuilder.addVertexAllocation(mVertexBuffer.getAllocation());
mBladesIndicies = Allocation.createSized(mRS, Element.U16(mRS), mIndicies);
meshBuilder.addIndexSetAllocation(mBladesIndicies, Primitive.TRIANGLE);
mBladesMesh = meshBuilder.create();
short[] idx = new short[mIndicies];
int idxIdx = 0;
int vtxIdx = 0;
for (int i = 0; i < mBladeSizes.length; i++) {
for (int ct = 0; ct < mBladeSizes[i]; ct ++) {
idx[idxIdx + 0] = (short)(vtxIdx + 0);
idx[idxIdx + 1] = (short)(vtxIdx + 1);
idx[idxIdx + 2] = (short)(vtxIdx + 2);
idx[idxIdx + 3] = (short)(vtxIdx + 1);
idx[idxIdx + 4] = (short)(vtxIdx + 3);
idx[idxIdx + 5] = (short)(vtxIdx + 2);
idxIdx += 6;
vtxIdx += 2;
}
vtxIdx += 2;
}
mBladesIndicies.copyFrom(idx);
}
私はこの2行に困惑しています:meshBuilder.addIndexSetAllocation(mBladesIndicies, Primitive.TRIANGLE);
そして、変数が実際に彼のデータを取得する前に、mBladesIndicies.copyFrom(idx);
なぜmBladesIndicies
メッシュビルダーに送信してメッシュを作成するのですか?mBladesIndicies
mBladesIndicies.copyFrom(idx);
要するに、なぜmeshBuilder.addIndexSetAllocation(mBladesIndicies, Primitive.TRIANGLE);
そしてBEFOREmBladesMesh = meshBuilder.create();
に来るのですか? mBladesIndicies.copyFrom(idx);