c – 擦除OpenGL中的部分图形

我想知道是否可以擦除OpenGL中任何图形的部分?可以说我用鼠标绘制了两条线,这些线在某些点重叠.

是否可以擦除一行?是否有一个或多或少的简单方法?

解决方法:

OpenGL不存储您绘制的内容.如果在OpenGL中绘制一条线,则OpenGL将采用该线,对其执行各种数学运算,并将像素写入构成线条形状的帧缓冲区. OpenGL不记得你画了一条线;所有OpenGL都能做到的是将帧像素写入帧缓冲区.

一般的想法是,由OpenGL的用户记住他们绘制的内容.因此,如果你绘制两条线,你应该记住你为这两条线给出的坐标.因此,如果你想“擦除”一行,你所做的就是清除屏幕并重新绘制除该行之外的所有内容.

这并不像听起来那么愚蠢.许多OpenGL应用程序不断重绘屏幕.它们显示一个框架,绘制一个新框架,然后显示该框架等.这为动画提供了可能性:更改绘制的内容以及从一帧到另一帧绘制的位置.这造成了运动的错觉.

上一篇:android – 当滚动太快时,RecycleView适配器数据显示错误


下一篇:c# – 如何知道WPF中何时呈现(绘制)控件(或窗口)?