西蒙iphone-OpenGL ES 教程.pdf


文档分类:IT计算机 | 页数:约126页 举报非法文档有奖
1/126
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/126
文档列表 文档介绍
: .
西蒙 ipho ” 。 是的,这是对
的,但是,当我们去渲染这个三角形之前, OpenGL 的将只是把对象放在( , ,
) 的位置上。 因此,我们将它放到屏幕内才可见 。 当我们进入转换(移动,旋转等)
,您会看到,您将不必设置对象 Z 值为负,也可以使之可见。在此之前,让目标的 Z 坐标
在-。绘制函数:
所以我们这样做是为了说明目前的三角形。我们现在需要告诉 OpenGL,数据保存在哪里,
以及如何去绘制它。这个过程只需要很少的几行代码 。回到 drawView 函数,并且实行以下
的代码:
- (void)drawView {
const GLfloat triangleVertices[] = {
, , -, // Triangle top centre
-, -, -, // bottom left
, -, - // bottom right
};
[EAGLContext setCurrentContext:context];
glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer);
glViewport(0, 0, backingWidth, backingHeight);
// -- BEGIN NEW CODE
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glVertexPointer(3, GL_FLOAT, 0, triangleVertices);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_TRIANGLES, 0, 3);
// -- END NEW CODE
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
[self checkGLError:NO];}
如你所见,这4行代码就是我们渲染一个三角形的。让我们从上往下一行行的打断这些代码
来分析,你会发现它们是非常的简单。
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
这行代码只是简单的清除了屏幕 。这个控制位告诉 OpenGL,我们使用上次教程里面 setupV
iew 函数中设置的颜色(黑色)来清除屏幕,并且清除了深度缓冲。 请注意,如果我们没
有创建深度缓冲和开启深度缓冲(如我们应该做的) ,这个屏幕将不会渲染。如果我们不使
用深度缓冲,我们将不需要通过 glClear()里的 GL_DEPTH_BUFFER_BIT.
因此,我们无论是清除以前绘制的这个缓冲区(请记住,这是双重缓冲动画 ;利用一个缓冲
区而另一个缓冲区显示) 。
glVertexPointer(3, GL_FLOAT, 0, triangleVertices);
此 函数告诉 OpenGL 的情况下我们的数据是什么格式 ,它是有4个参数,这个功能是很简单
细分:
-这个值表示了每个坐标有几个数字。我们现在是 3,是因为是3d 坐

西蒙iphone-OpenGL ES 教程 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数126
  • 收藏数0 收藏
  • 顶次数0
  • 上传人橘子
  • 文件大小2.97 MB
  • 时间2022-02-25