我该如何在OpenGL中进行条件渲染?
我在理解如何根据条件来渲染形状时遇到了一些问题。比如说,我想根据按钮的点击来渲染一个3D物体,我该怎么处理呢?我找了很多例子和教程,但都没有找到类似的内容,所以我想知道这方面的最佳实践是什么。
我在网上搜索了很多,发现有使用定时器来处理这种情况,但我不确定在这里是否应该用定时器。举个例子,我在想我应该用一个定时器来调用一个方法,比如叫做renderScene,这个方法根据一些由按钮点击设置的布尔值来决定渲染什么。所以,基本上当你按下按钮时,就把一个布尔值设为真,然后renderScene会通过定时器来调用这个布尔值。接着,renderScene会调用updateGL,然后场景就更新了。
我这样做是对的吗?还是有更好的方法?我觉得这可能不是正确的解决方案,所以我想请教一下。
1 个回答
0
在OpenGL中,有条件地渲染图形其实很简单,只需要跟踪一个布尔值,然后根据这个值来决定是否执行相应的绘制操作。唯一需要注意的是,你需要根据你选择的窗口框架来重新绘制场景。如果你不需要定期重新绘制,只需在每次更改后触发一次重绘就可以了。有人说,update会触发paintGL事件(详细信息可以查看:如何强制QGLWidget更新屏幕?)。