Как нарисовать линию с помощью треугольников в OpenGL?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как нарисовать линию с помощью треугольников в OpenGL?

Сообщение Anonymous »

В моем коде я использую линию рисования для рисования линии выбора модели и линии края ошибки, используя треугольник рисования для рисования 3D-модели.
Используя дескриптор открытой сетки модели, края записываются и рисуются.

Код: Выделить всё

        ConstFaceEdgeIter fh_it;
for(fh_it = cfe_iter(face); fh_it.is_valid();++fh_it)
{
if(! fh_it.is_valid())
continue;

m_drawingColorData.edges  v0()).toQVector3D();
m_drawingColorData.edges  v1()).toQVector3D();
}
желтый: линия выбора
зеленый: край ошибки
Изображение

! Перед изменением
Теперь мне нужно добавить шейдер геометрии, поэтому я не могу использовать рисование линии и рисовать треугольник с помощью одного и того же шейдера.
Я пытаюсь использовать нормаль соседней грани, слегка смещая вершины линии, чтобы имитировать треугольник.

Код: Выделить всё

        ConstFaceEdgeIter fh_it;

for(fh_it = cfe_iter(face); fh_it.is_valid();++fh_it)
{
if(! fh_it.is_valid())
continue;
QVector3D point1 = getVertex(fh_it->v0()).toQVector3D();
QVector3D point2 = getVertex(fh_it->v1()).toQVector3D();

QVector3D dir = (point2 - point1).normalized();

QVector3D normal;
normal = getFaceNormal(face).toQVector3D();

QVector3D perp = QVector3D::crossProduct(normal, dir).normalized();

QVector3D offset = perp * 0.25f;

QVector3D v1 = point1;
QVector3D v2 = point1 - offset;
QVector3D v3 = point2;
QVector3D v4 = point2 - offset;
m_drawingColorData.edges 

Подробнее здесь: [url]https://stackoverflow.com/questions/79811889/how-do-i-draw-a-line-using-triangles-in-opengl[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»