Я знаю, что в сеточном представлении обычно используются три списка:
Список вершин, все вершины, это легко понять
Список нормалей, нормали для каждой поверхности, я думаю?
И список лиц, я понятия не имею, что он делает, и не знаю, как его рассчитать.
Например, это сетка, описывающая треугольную призму, которую я нашел в Интернете.
double vertices[][] = {{0,1,-1},
{-0.5,0,-1},
{0.5,0,-1},
{0,1,-3},
{-0.5,0,-3},
{0.5,0,-3},
};
int faces[][] = {{0,1,2}, //front
{3,5,4}, //back
{1,4,5,2},//base
{0,3,4,1}, //left side
{0,2,5,3} //right side
};
double normals[][] = { {0,0,1}, //front face
{0,0,-1}, //back face
{0,-1,0}, //base
{-2.0/Math.sqrt(5),1.0/Math.sqrt(5),0}, //left
{2.0/Math.sqrt(5),1.0/Math.sqrt(5),0} //right
};
Почему в основании, на левой и правой гранях 4 элемента, а на лицевой и оборотной стороне только 3? Как их рассчитать вручную?