私は5頂点と18のインデックスを持つピラミッドを持っています。各面に法線を追加したいので、各頂点の法線の解を見つけました。つまり、私はピラミッドを定義するためにインデックスを使うことはできません。私は、18の頂点を持つ必要があります(そして、同じポイントの同じ頂点を3倍にする必要があります)。インデックスごとの法線ですか?
頂点ベースではなくインデックスベースで法線を使用するソリューションが必要です。
いくつかのコード(ジャバスクリプト):
var vertices = [
-half, -half, half, // 0 front left
half, -half, half, // 1 front right
half, -half, -half, // 2 back right
-half, -half, -half, // 3 back left
0.0, Math.sqrt((size * size) - (2 * (half * half))) - half, 0.0 // 4 top
];
var vertexNormals = [
// front face
normaleFront[0], normaleFront[1], normaleFront[2],
normaleFront[0], normaleFront[1], normaleFront[2],
normaleFront[0], normaleFront[1], normaleFront[2],
// back face
normaleBack[0], normaleBack[1], normaleBack[2],
normaleBack[0], normaleBack[1], normaleBack[2],
normaleBack[0], normaleBack[1], normaleBack[2],
// left face
normaleLeft[0], normaleLeft[1], normaleLeft[2],
normaleLeft[0], normaleLeft[1], normaleLeft[2],
normaleLeft[0], normaleLeft[1], normaleLeft[2],
// right face
normaleRight[0], normaleRight[1], normaleRight[2],
normaleRight[0], normaleRight[1], normaleRight[2],
normaleRight[0], normaleRight[1], normaleRight[2],
// bottom face
0.0, -1.0, 0.0,
0.0, -1.0, 0.0,
0.0, -1.0, 0.0,
0.0, -1.0, 0.0,
0.0, -1.0, 0.0,
0.0, -1.0, 0.0,
];
var pyramidVertexIndices = [
0, 1, 4, // Front face
2, 3, 4, // Back face
3, 0, 4, // Left face
1, 2, 4, // Right face
0, 1, 2, 2, 3, 0, // Bottom face
];
を呼び出すことができます。何行うことができますが、インデックス配列の順と次元で頂点に満たされた二番目の配列を作成することです...行うことはできません。 ..あなたは1つの頂点を変更することができ、生成された2番目の配列のすべての場所で変更されます – WarrenFaith