2012-04-01 148 views
1

假设我已经分别绘制了一个traingle,一个立方体,一个使用draw_triangle,draw_cube和draw_square函数的正方形。如何使用keypress func.?...如果我使用glClear(GL_COLOR_BUFFER_BIT)来删除一个立方体,整个屏幕将被擦除..如何删除特定的多边形。?如何在OpenGL中删除/擦除特定的多边形?

+1

假设有一种方法可以在绘制特定多边形后删除它。什么会出现在它的位置? “曾经在那里”的信息早已消失。 – harold 2012-04-01 13:07:26

回答

0

我认为最好的解决方案是有一个布尔变量,它指示您的对象是否必须显示。因此,只有当按下某个键时,您清除屏幕并重新绘制整个场景。

5

如何删除特定的多边形。

不要在下一帧中渲染它。

绘制一个多边形后,没有多边形,只有颜色缓冲区中的一堆像素+深度缓冲区中的值。所以你不能“删除”它,并且你不能恢复以前的颜色/深度缓冲区状态。如此清晰的屏幕,重绘场景而不需要多边形。

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; 
} 
1

如果你想只清除屏幕或任何特定图像的特定部分,然后通过使用键盘中断wihout清除整个屏幕重新显示。