2014-01-16 3 views
1

Как визуализировать плоскость на поверхности плоскости обрезки glClipPlane? Плоскость получается путем рисования многоугольника между рядом точек, расположенных на плоскости. Прямо сейчас, это производит очень забавное сшивание.Render plane на glClipPlane

Предполагаю, что glPolygonOffset мне не поможет?

Возможно, я просто перевежу плоскость чуть-чуть на одну сторону самолета, но я бы предпочел более простое и элегантное решение, если оно существует.

ответ

1

Предполагаю, что вы не используете GLSL? Если у вас есть GLSL 1.30, вы можете просто установить номер gl_ClipDistance [N]> вершины для плоскости клипа N, и точка не будет обрезана. Если вы сделаете это для каждой вершины в многоугольнике, который вы хотите развернуть в своей плоскости, полигон не будет обрезаться (в любом случае, против этой плоскости).

Что касается glPolygonOffset (...), что влияет на глубину, вычисленную во время растеризации. Происходит после отсечения, а также обрезка не имеет ничего общего с глубиной многоугольника, поэтому вы правы, это не поможет. Вам нужно будет перевести ваши вершины до/во время примитивной сборки, чтобы это работало, так что либо означает выполнение перевода в вершинном шейдере, либо использование матрицы просмотра фиксированной функции.

+0

Нет, у меня нет GLSL в данный момент ... Я мог бы изучить его позже, но на данный момент спасибо за ответ. Я закончил тем, что просто кусал пулю и преобразовывал вершины в матрицу просмотра модели. – leopardGeckos

Смежные вопросы