Вы можете проверить наличие знака скалярного произведения между вектором нормали лица и вектором от центроида куба к любой точке на грани.
Допустим, вектор нормали грани [a,b,c,d]
равен n
.Затем вычислите центр тяжести куба, усреднив его 8 координат вершин, и назовем его p
.
Затем вычислим dir = dot(n,(a-p))
.Если dir > 0
, нормальный n
указывает наружу от куба.Если dir
отрицательно, вы должны перевернуть нормаль.
Этот метод будет работать для граней любого выпуклого многогранника.Если вы имеете дело с невыпуклыми многогранниками, вам придется использовать такой подход, как упомянутый здесь .