Я экспортировал некоторые частицы волос из Blender (прическа). Они состоят из нескольких строк (GL_LINES). Моя программа openGL отображает эти части без каких-либо проблем. Теперь я просто хочу применить световые свойства на этих участках. Blender не экспортирует векторы нормалей, поэтому мне нужно их самостоятельно вычислить. Я знаю следующее правило:Как вычислить нормали для линии сегмента в 3D
Если мы определяем отрезок линии как [AB] в двух измерениях, то имеем dx = xB - xA и dy = yB - yA, тогда нормали N1 (-dy, dx) и N2 (dy, -dx).
Надеюсь, я не ошибся.
Но я не знаю правила для определения сегмента 3D-пространства, если я добавлю размер z в координатах моего сегмента (например, A (5, 2, 3) и B (0, 0, -5)).
Кто-нибудь может мне помочь?
Нет ни одного нормального для линии в 3D. Вместо этого сама линия является нормальной для плоскости. –
Что сказал Аки Суйконен. Или, сформулированный наоборот: существует бесконечное число нормалей, лежащих на плоскости, перпендикулярной прямой. Чтобы вычислить один нормальный, вам нужно что-то «планарное», как треугольник. С другой стороны, линия может вращаться вокруг себя всячески, без возможности увидеть разницу. – Damon