(OpenGL ES 1.1 Only)
1、在 EAGLView.h 的 private 區段中宣告
GLuint depthRenderbuffer;
glOrthof(-1.0f, 1.0f, -1.5f, 1.5f, -10.0f, 10.0f);
glMatrixMode(GL_MODELVIEW);
(first Cube)
1、在 EAGLView.h 的 private 區段中宣告
GLuint depthRenderbuffer;
2、在 EAGLView.m 的 createFramebuffer 中加入
glGenRenderbuffersOES(1, &depthRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer);
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES,
framebufferWidth, framebufferHeight);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES,
GL_RENDERBUFFER_OES, depthRenderbuffer);
3、在 EAGLView.m 的 deleteFramebuffer 中加入
if(depthRenderbuffer) {
glDeleteRenderbuffersOES(1, &depthRenderbuffer);
depthRenderbuffer = 0;
}
4、3D 的 function 呼叫 (放在 viewController 的 - (void)drawFrame; 中)
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClearDepthf(1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// start drawing 3D objects
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
// Projection mode
glLoadIdentity();
// glOrthof(垂直模式) or glFrustumf(透視模式)
// tranform the camara for a better view
glTranslatef(0.07f, 0.0f, 0.0f);
glRotatef(-30.0f, 0.0f, 1.0f, 0.0f);
// Model mode
// enable GL states for texturing
// this includes cube and 2D instructions and buttons
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);
(first Cube)

沒有留言:
張貼留言