C # — OpenGL / OpenTK рисования линий с помощью моего собственного алгоритма

Я использую OpenTK, который является OpenGL в C #, поэтому любой ответ в OpenGL меня устраивает …

У меня есть 3D-объект, что я хочу сделать, это нарисовать некоторые линии (каркас) и отображать только их (я знаю, кроме GLPolygonMode — это не то, что я хочу делать)

У меня есть свой собственный алгоритм рисования линий и, используя его, я хочу нарисовать каркас и отобразить его на экране. После нескольких часов копания в интернете я узнал, что я могу сделать это, используя backbuffer, но не знаю, как …
вот пример моего кода рисования. Я рисую пиксель на растровом изображении (это не так :()

while (x != x2)
{
if (d >= 0)
{
x += xi;
y += yi;
d += ai;
}
else
{
d += bi;
x += xi;
}
bitmap.SetPixel(x, y, col);
}

Есть ли способ нарисовать на буфере, а затем отобразить его на экране? Или есть другой способ сделать это?

0

Решение

Учитывая, что вы новичок в OpenGL:

Конфигурация OpenGL по умолчанию использует двойную буферизацию. Это означает, что каждый раз, когда вы используете OpenTK.Graphics.OpenGL.GL.DrawXXX() методы или SetPixel () или тому подобное, вы рисуете в обратном буфере.
Когда вы закончите с рисунком, вы звоните OpenTK.GLControl.SwapBuffers() и он переключит задний буфер как передний буфер, и наоборот.
Поскольку передний буфер — это то, что отображается на экране, вы увидите свой чертеж.

И, конечно, вы не забудете звонок OpenTK.Graphics.OpenGL.GL.Begin() с уважением BeginMode, а также OpenTK.Graphics.OpenGL.GL.End(),

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]