假设我分别使用draw_triangle,draw_cube和draw_square函数绘制了一个三角形,一个立方体,一个正方形。如何使用keypress func删除一个立方体。如果我使用glClear(GL_COLOR_BUFFER_BIT),整个屏幕将被删除。 。如何删除特定的多边形。?
答案 0 :(得分:5)
如何删除特定的多边形。?
不要在下一帧中渲染它。
绘制多边形后,没有多边形,只有颜色缓冲区中的一堆像素+深度缓冲区中的值。因此,您无法“删除”它,并且无法恢复以前的颜色/深度缓冲区状态。如此清晰的屏幕,重绘没有你不想要的多边形的场景。
答案 1 :(得分:1)
如果您只想清除屏幕的特定部分或任何特定图像,请在不清除整个屏幕的情况下使用键盘中断重新显示它。
答案 2 :(得分:0)
我认为最好的解决方案是使用一个布尔变量来指示是否必须显示您的对象。因此,当按下某个键时,仅,清除屏幕并重绘整个场景。
答案 3 :(得分:0)
也许是这样的:
Render()
{
clear_screen();
setup_camera_and_other_scene_states();
if (cube) drawCube();
if (sphere) drawSphere();
swap_buffers():
}
keyPress()
{
if (presses_some_key) cube = !cube;
}