Параллельная плоскость в openGL - PullRequest
0 голосов
/ 13 декабря 2011

Я работаю с OpenGL, мне нужно нарисовать плоскость перед треугольником в трехмерном пространстве. Поэтому, если одна из точек треугольника изменяется, плоскость также изменяется

У меня есть 3 точки, и, используя перекрестное произведение, я могу получить вектор нормали, поэтому, чтобы нарисовать плоскость, мне нужно всего лишь перевести треугольник в начало мира относительно одной из точек треугольника, переведите расстояние по нормали, поверните нормальные углы по осям X, Y и Z и нарисуйте плоскость.

Мне нужно знать, как перевести нормаль и как повернуть новую плоскость, поэтому, когда изменяется одна из вершин, меняется нормаль и плоскость.

Как я понимаю, я могу использовать вектор нормалей в glRotatef (angle, normal [x, y, z]), с углом = 0. Но плоскость не меняется, когда я меняю одну из вершин треугольника.

1 Ответ

2 голосов
/ 13 декабря 2011

OpenGl не является графом сцены. Он не будет заниматься преобразованием объектов для вас. Все, что делает OpenGL - это рендеринг того, что вы говорите ему рендерить.

Если вы скажете ему визуализировать вершину (которую вы изменили), и не скажете ей изменить способ рисования плоскости, то, конечно, плоскость не изменится.

Посмотрите на графы сцены, и как сделать матрицу и векторную математику. Простой граф сцены относительно прост в создании.

...