如何设置视口颜色

3

我正在在安卓上使用opengl技术。请问有没有人可以告诉我如何为视口设置背景颜色(而不是整个屏幕)。我的应用程序中有两个视口,我想为这两个视口设置不同的颜色。

2个回答

4
如果glClear会影响整个帧缓冲区而不仅仅是当前视口(不确定),那么您也可以使用剪切测试:

glScissor(x, y, w, h);
glEnable(GL_SCISSOR_TEST);
glClearColor(r, g, b, a);
glClear(GL_COLOR_BUFFER_BIT);

我相信剪刀测试会影响glClear


嗨,谢谢。glScissor确实有效。顺便说一下,早些时候我尝试过剪切测试,但是一直出现编译错误。只需在glEnable中进行简单更改即可解决问题。使用glEnable(gl10.GL_SCISSOR_TEST)而不是glEnable(GL_SCISSOR_TEST)。 - Raj
如果这有帮助的话,请点个赞(也许还有采纳答案)。关于gl10.,当然你需要根据你特定的GL绑定来调整代码片段,我只是使用了原始的OpenGL C代码,但思路是一样的。 - Christian Rau

1

对于每个视口执行以下操作:

glViewport(0, 0, width, height);
glClearColor(0.0, 0.0, 0.0, 1.0); // adapt this to the color you want
glClear(GL_COLOR_BUFFER_BIT);

在进行绘制之前。


抱歉,我应该早点说。我已经尝试过这些调用了。但是这些调用影响整个屏幕而不是视口。如果我错了,请纠正我。 - Raj
是的,glViewport不会影响glClear,您需要在清除之前使用额外的裁剪或剪切测试。或者,您可以在正交模式下使用四边形绘制视口背景,并关闭z缓冲区写入。 - Marc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接