我在Android开发者网站上关注openGL教程,但是当我打开活动时,它只是一个黑色的空背景,而不是预期的灰色GL表面。谁能告诉我我失踪了什么?
public class OpenGLES20Activity extends Activity {
private GLSurfaceView mGLView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGLView = new MyGLSurfaceView(this);
setContentView(mGLView);
}
class MyGLSurfaceView extends GLSurfaceView implements GLSurfaceView.Renderer{
public MyGLSurfaceView(Context context) {
super(context);
setRenderer(this);
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
}
@Override
public void onSurfaceCreated(GL10 unused, javax.microedition.khronos.egl.EGLConfig config)
{
GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
}
public void onDrawFrame(GL10 unused)
{
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
}
@Override
public void onSurfaceChanged(GL10 unused, int width, int height)
{
GLES20.glViewport(0, 0, width, height);
}
}
}
答案 0 :(得分:1)
这是因为此活动配置为使用以下命令向您显示黑色背景。 OpenGL将颜色作为RGB值,每个通道的范围可以从0.0到1.0。
GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
将其更改为颜色。例如红色。你会看到红色背景
GLES20.glClearColor(1.0f, 0.0f, 0.0f, 1.0f);