J'ai une pyramide qui a 5 vertex et 18 indices. Comme je veux ajouter des normales à chaque face, je viens de trouver une solution pour des normales pour chaque sommet. Cela signifie que je ne peux pas utiliser d'index pour définir ma pyramide. J'ai besoin d'avoir 18 vertex (et 3 fois le même sommet pour le même point dans l'espace).Normales par index?
Il doit y avoir une solution pour utiliser des normales non sur la base vertex mais sur la base d'index.
Certains code (javascript):
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
];
Juste pour ajouter: il ne peut pas être fait ... ce qui peut être fait est de créer un second réseau rempli avec le sommet de l'ordre et la dimension du tableau d'index. .. donc vous pouvez changer un sommet et il sera changé à tous les endroits dans le deuxième tableau généré – WarrenFaith