여기 내 문제가 있습니다 : 나는 렌더러 등 물건 GLSurfaceView 있습니다. 오래된 Android 버전에서는 모든 것이 원하는대로 작동합니다. 하지만 최신 버전에서는 (4.x 이상) 비트 맵이없는 검은 색 화면 만 보여줍니다. 예를 들어 내 onSurfaceCreated 메서드에서 gl.glClearColor(0.1f, 0.2f, 0.3f, 0.5f);
을 사용하면 검정색이 색상으로 변경됩니다. 그래서 문제는 배경색이 그려지기 때문에 잘못된 방향이나 뭔가를보고있는 카메라가되어야한다고 생각합니다.GLSurfaceView : 카메라의 위치, 표면을보고, 안드로이드 버전으로 변경합니까?
저는 OpenGL을 처음 접했기 때문에 안드로이드 버전과 OpenGL- 카메라 또는 이와 유사한 것이 있는지 묻고 싶습니다.
많은 사람들이 내 비트 맵 크기는 2의 제곱이어야한다고 말하지만, 아무 것도 해결하지 못합니다. 여기
내 렌더러입니다 :public class GlRenderer implements Renderer {
@Override
public void onDrawFrame(GL10 gl) {
// clear Screen Buffer
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
// Reset the Modelview Matrix
gl.glLoadIdentity();
gl.glTranslatef(0.0f, 0.0f, -5.0f); // move 5 units INTO the screen
// is the same as moving the camera 5 units away
updateLogic(gl);
drawEverything(gl);
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL10.GL_PROJECTION); // or some matrix uniform if using shaders
gl.glLoadIdentity();
gl.glOrthof(0, width, height, 0, -1, 1); // this will allow to pass vertices in 'canvas pixel' coordinates
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
}
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
gl.glDisable(GL10.GL_DITHER);
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
gl.glEnable(GL10.GL_TEXTURE_2D); //Enable Texture Mapping (NEW)
gl.glShadeModel(GL10.GL_SMOOTH); //Enable Smooth Shading
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f); //Set Background
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
}
}
깊이가없는 2D 표면이므로이 변경 사항이 없습니다. 여전히 검은 색 화면 : ( – user2757036
나머지 코드는 괜찮아 보입니다. 그러나 렌더링 및/또는 모델 작성 코드가 표시되지 않으므로 다른 점이 무엇인지 잘못 판단 할 수 없습니다. 어떤 상태가 어딘가에 설정되어 있습니다. – free3dom
나는 해결책을 찾은 것 같아요. 여기에 게시 할 것입니다. – user2757036