Я понимаю, что в треугольной сетке в JavaFX у вас есть точки и текстурные координаты, но то, что на самом деле хранится в массиве Faces. Если у меня есть следующие точки и точки текстуры для прямоугольника:
float[] points = {
-width/2, height/2, 0, // idx p0
-width/2, -height/2, 0, // idx p1
width/2, height/2, 0, // idx p2
width/2, -height/2, 0 // idx p3
};
float[] texCoords = {
1, 1, // idx t0
1, 0, // idx t1
0, 1, // idx t2
0, 0 // idx t3
};
каким должен быть массив лиц и почему?
Кроме того, я видел несколько примеров, когда они, кажется, повторяют одну и ту же точку в массиве лиц, как показано ниже, почему это так?
int[] faces = {
2, 2, 1, 1, 0, 0,
2, 2, 3, 3, 1, 1
};
Вы также можете сравнить фрагмент с источником, из которого вы его скопировали, и посмотреть, как он там был исправлен.
Теперь понятно, спасибо за помощь @jewelsea
@James_D Ясно, комбинация документации и ответов здесь прояснила для меня все. Спасибо
Ваш массив
int[] faces = {
2, 2, 1, 1, 0, 0,
2, 2, 3, 3, 1, 1
};
сопоставляет ваши точки xyz с координатами текстуры uv и соединяет две треугольные грани. Если вы замените переменные комментариями к именам, ваш массив будет таким:
int[] faces = {
idx p2, idx t2, idx p1, idx t1, idx p0, idx t0,
idx p2, idx t2, idx p3, idx t3, idx p1, idx t1
};
Разве это не описано в документация?