OpenGL / OpenTK后台缓冲器用我自己的算法画线
OpenGL/OpenTK backbuffer drawing lines with my own algorithm
我正在使用OpenTK,它是C#中的OpenGL,所以opengl中的任何答案对我来说都是令人满意的......
我有一个 3D 对象,我想做的是画一些线(线框)并只显示它们(我知道 aobut GLPolygonMode - 这不是我想做的)
我有自己的线 - 绘图算法,通过使用它,我想绘制线框并将其显示在屏幕上。经过几个小时的互联网挖掘,我发现我可以使用后台缓冲器来做到这一点,但不知道如何......这是我在位图上绘制像素的绘图代码示例(不是:()
while (x != x2)
{
if (d >= 0)
{
x += xi;
y += yi;
d += ai;
}
else
{
d += bi;
x += xi;
}
bitmap.SetPixel(x, y, col);
}
有没有办法在缓冲区上绘制,然后将其显示在屏幕上?或者还有其他方法可以做到这一点吗?
考虑到您是OpenGL的新手:
OpenGL 的默认配置使用双缓冲。这意味着每次您使用OpenTK.Graphics.OpenGL.GL.DrawXXX()
方法或 SetPixel() 或其他类似方法时,您都在后台缓冲区中绘制。完成绘图后,调用OpenTK.GLControl.SwapBuffers()
,它将后台缓冲区切换为前缓冲区,反之亦然。由于前缓冲区是屏幕上显示的内容,因此您将看到绘图。
当然,你不要忘记与适当的BeginMode
OpenTK.Graphics.OpenGL.GL.Begin()
的呼唤,OpenTK.Graphics.OpenGL.GL.End()
.
相关文章:
- 没有为自己的结构调用列表推回方法
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- 如何实现高效的算法来计算大型数据集的多个不同值?
- C++从对象自己的类中删除对象
- 使用 std::optional,而不是自己的结构
- 子轴围绕父轴而不是他自己的轴旋转
- 这个C++编译器优化(在自身的实例上调用对象自己的构造函数)的名称是什么,它是如何工作的?
- C++ 如何为自己的迭代器类从迭代器转换为const_iterator?
- 用于查找网格中最短路径的算法
- 重载 + 自己的类和 std::string 的运算符
- 类无法访问自己的私有静态 constexpr 方法 - Clang bug?
- 是否可以在不填充自己的参数的情况下将模板函数作为参数传递?
- 如何转换多次调用自己的递归算法?
- OpenGL / OpenTK后台缓冲器用我自己的算法画线
- 自动多人游戏中的坑洞,玩家可以使用自己的算法
- 我如何将自己的排序算法与其他算法进行比较
- 创建自己的输出存储而不是应用于现有存储的c++算法
- 自己的RC4算法输出错误
- 使用我自己的算法创建GUID