千锋3G学院-iOS开发视频教程-愤怒的小鸟-第11讲-OpenGL画线.pdf

  • 文件大小: 9.58MB
  • 文件类型: pdf
  • 上传日期: 2025-08-17
  • 下载次数: 0

概要信息:

源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
欧阳坚 
视频、源代码、交流网址 
www.1000phone.net 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
弹工的2条线段 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
2.  OpenGL ES框架 
1.  OpenGL ES介绍 
4.  整合代码 
3.  OpenGL ES如何画线 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
      OpenGL是由SGI公司开发的⼀一套3D图形软件接⼝口标准,
由于具有体系结构简单合理、使⽤用⽅方便、与操作平台⽆无关等
优点,OpenGL迅速成为⼀一种3D图形接⼝口的⼯工业标准,并
陆续在各种平台上得以实现。作为⼀一个性能优越的图形应⽤用
程序设计界⾯面(API)⽽而适合于⼲⼴广泛的计算环境,从个⼈人计
算机到⼯工作站和超级计算机,OpenGL都能实现⾼高性能的三
维图形功能。由于许多在计算机界具有领导地位的计算机公
司纷纷采⽤用OpenGL作为三维图形应⽤用程序设计界⾯面,
OpenGL应⽤用程序具有⼲⼴广泛的移植性。  
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  OpenGL ES (OpenGL for Embedded Systems) 
是 OpenGL 三维图形 API 的⼦子集,针对⼿手机、
PDA和游戏主机等嵌⼊入式设备⽽而设计。 
}  OpenGL ES 是从 OpenGL 裁剪定制⽽而来的,去除
了 glBegin/glEnd,四边形(GL_QUADS)、多边
形(GL_POLYGONS)等复杂图元等许多⾮非绝对必
要的特性。经过多年发展,现在主要 有两个版本,
OpenGL ES 1.x 针对固定管线硬件的,OpenGL 
ES 2.x 针对可编程管线硬件。 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
OpenGL ES 
显卡GPU 
Cocos2D Unity3D 
iOS 
操作系统 
各类游戏 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
GL_API void glLineWidth (GLfloat width); 
}  glLineWidth 指定线段的宽度。 
} 实际的宽度取决于所提供宽度的四舍五⼊入整数值。 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
GL_API void glColor4f ( 
  GLfloat red,  
  GLfloat green,  
  GLfloat blue,  
  GLfloat alpha); 
设置颜⾊色 
 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}   注意:在使⽤用顶点数组时,必须先调⽤用
glEnableClientState开启顶点数组功能,在不⽤用的
时候调⽤用glDisableClientState来禁⽤用 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
GL_API void glVertexPointer ( 
 GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); 
size: 
       每个顶点有⼏几个数指描述。必须是2,3  ,4 之⼀一,初始值是4. 
type: 

      数组中每个顶点的坐标类型。取值: 
 GL_BYTE, GL_SHORT , GL_FIXED , GL_FLOAT,   初始值 GL_FLOAT 
stride: 
      组中每个顶点间的间隔,步⻓长(字节位移)。取值若为0,表⽰示数组是连续
的   初始值为0 
pointer 
      数组存储着每个顶点的坐标值。初始值为0 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
GL_API void glDrawArrays ( 
 GLenum mode, GLint first, GLsizei count); 
mode  
    指定你要绘制何种图元, 如:  
 GL_POINTS, GL_LINE_STRIP, 
 GL_LINE_LOOP, GL_LINES, 
 GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, 
 GL_TRIANGLES. 
first  
      在指定的数组中的开始位置(索引位置) 
count  
       点的绘制次数,  
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  在OpenGL中绘制直线是通过指定直线段的端点来实现的,其中使⽤用
glVertex函数指定直线段端点的坐标位置,⽤用glBegin/glEnd函数对
包含⼀一系列的点坐标,并利⽤用符号常量解释这些点构成直线的⽅方式。
OpenGL的画线模式有三种: 
}  GL_LINES,GL_LINE_STRIP和GL_LINE_LOOP模式。 GL_LINES模式
指定glBegin/glEnd函数对中,从第⼀一个点开始,两两构成⼀一条直线
段。如果函数对中有奇数个点,则最后⼀一个点不处理。
GL_LINE_STRIP或GL_LINE_LOOP模式可以在⼀一系列的点(此时可称
为顶点)之间绘制连续直线段。GL_LINE_STRIP模式下第⼀一个顶点之
后的每个顶点都与其前⾯面的⼀一个顶点构成⼀一条直线段,即第⼀一和第⼆二
个顶点、第⼆二和第三个顶点、第三和第四个顶点构成直线段,并⼀一直
延续下去。特别地,当沿着某条曲线指定⼀一系列靠得很近的点时,使
⽤用GL_LINE_STRIP模式可以绘制⼀一条曲线。GL_LINE_LOOP模式与
GL_LINE_STRIP模式类似,只是会在指定的最后⼀一个顶点与第⼀一个顶
点之间画最后⼀一条线。 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  GL_POINTS	
  
GL_LINES	
  
GL_LINE_STRIP	
  
GL_LINE_LOOP	
  
GL_TRIANGLES	
  
GL_TRIANGLE_STRIP	
  
GL_TRIANGLE_FAN	
  
GL_QUADS	
  
GL_QUAD_STRIP	
  
GL_POLYGON	
  
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
GL_POINTS	
  
GL_LINES	
  
GL_LINE_STRIP	
  
GL_LINE_LOOP	
  
GL_TRIANGLES	
  
GL_TRIANGLE_STRIP	
  
GL_TRIANGLE_FAN	
  
GL_QUADS	
  
GL_QUAD_STRIP	
  
GL_POLYGON	
  
 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  GL_POINTS	
  
GL_LINES	
  
GL_LINE_STRIP	
  
GL_LINE_LOOP	
  
GL_TRIANGLES	
  
GL_TRIANGLE_STRIP	
  
GL_TRIANGLE_FAN	
  
GL_QUADS	
  
GL_QUAD_STRIP	
  
GL_POLYGON	
  
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  GL_POINTS	
  
GL_LINES	
  
GL_LINE_STRIP	
  
GL_LINE_LOOP	
  
GL_TRIANGLES	
  
GL_TRIANGLE_STRIP	
  
GL_TRIANGLE_FAN	
  
GL_QUADS	
  
GL_QUAD_STRIP	
  
GL_POLYGON	
  
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  GL_POINTS	
  
GL_LINES	
  
GL_LINE_STRIP	
  
GL_LINE_LOOP	
  
GL_TRIANGLES	
  
GL_TRIANGLE_STRIP	
  
GL_TRIANGLE_FAN	
  
GL_QUADS	
  
GL_QUAD_STRIP	
  
GL_POLYGON	
  
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  GL_POINTS	
  
GL_LINES	
  
GL_LINE_STRIP	
  
GL_LINE_LOOP	
  
GL_TRIANGLES	
  
GL_TRIANGLE_STRIP	
  
GL_TRIANGLE_FAN	
  
GL_QUADS	
  
GL_QUAD_STRIP	
  
GL_POLYGON	
  
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  GL_POINTS	
  
GL_LINES	
  
GL_LINE_STRIP	
  
GL_LINE_LOOP	
  
GL_TRIANGLES	
  
GL_TRIANGLE_STRIP	
  
GL_TRIANGLE_FAN	
  
GL_QUADS	
  
GL_QUAD_STRIP	
  
GL_POLYGON	
  
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  GL_POINTS	
  
GL_LINES	
  
GL_LINE_STRIP	
  
GL_LINE_LOOP	
  
GL_TRIANGLES	
  
GL_TRIANGLE_STRIP	
  
GL_TRIANGLE_FAN	
  
GL_QUADS	
  
GL_QUAD_STRIP	
  
GL_POLYGON	
  
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  GL_POINTS	
  
GL_LINES	
  
GL_LINE_STRIP	
  
GL_LINE_LOOP	
  
GL_TRIANGLES	
  
GL_TRIANGLE_STRIP	
  
GL_TRIANGLE_FAN	
  
GL_QUADS	
  
GL_QUAD_STRIP	
  
GL_POLYGON	
  
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  GL_POINTS	
  
GL_LINES	
  
GL_LINE_STRIP	
  
GL_LINE_LOOP	
  
GL_TRIANGLES	
  
GL_TRIANGLE_STRIP	
  
GL_TRIANGLE_FAN	
  
GL_QUADS	
  
GL_QUAD_STRIP	
  
GL_POLYGON	
  
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
- (void) draw { 
    glLineWidth(2.0f); 
    glColor4f(0.01f, 1, 0, 1); 
    glDisable(GL_TEXTURE_2D); 
    glDisableClientState(GL_TEXTURE_COORD_ARRAY); 
    glDisableClientState(GL_COLOR_ARRAY); 
    GLfloat vertices[4] = { 82, 200, x, y, }; 
    glVertexPointer(2, GL_FLOAT, 0, vertices); 
    glDrawArrays(GL_LINES, 0, 4); 
    glEnableClientState(GL_COLOR_ARRAY); 
    glEnableClientState(GL_TEXTURE_COORD_ARRAY); 
    glEnable(GL_TEXTURE_2D); 
} 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
} 千锋互联:          www.1000phone.com 
} 千锋3G学院:       www.mobiletrain.org 
} 千锋嵌入式学院:  www.embedtrain.org

缩略图:

  • 缩略图1
  • 缩略图2
  • 缩略图3
  • 缩略图4
  • 缩略图5
当前页面二维码

广告: