看到很多范例,都不是自己想要的。我需要的就是绘制图形(点、线、面),要求代码最简单,便于学习了解,不要有多余的东东。
工程目录如下,圈起来的是新增的内容。
整体过程如下:
[self setupLayer]; //设置绘制图层
[self setupContext]; //设置GL设备上下文
[selfsetupRenderBuffer]; //设置渲染缓存
[selfsetupFrameBuffer]; //设置帧缓存
[selfcompileShaders]; //设置着色器
[selfrender];
实际的绘制过程如下:
- (void)render {
// 改变背景
glClearColor(0,104.0/255.0,55.0/255.0,1.0);
glClear(GL_COLOR_BUFFER_BIT);
// 指定渲染的范围
glViewport(0,0,self.frame.size.width,self.frame.size.height);
// 关联顶点数据
glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,0,Vertices);
// 启用属性
glEnableVertexAttribArray(0);
// 绘制图形
// glDrawArrays(GL_POINTS, 0, 3); // 绘制点
// glDrawArrays(GL_LINE_LOOP, 0, 3); // 绘制线
glDrawArrays(GL_TRIANGLES,0,3);//绘制面
//缓存中的内容输出至屏幕
[_contextpresentRenderbuffer:GL_RENDERBUFFER];
}
详细操作:
1.)创建工程
”File“->"New"->"Project"
”IOS“->"Applications"->”Empty Application“
2.)引入库
“Targets"->”Build Phases“->"Link Binary With Libraries"
引入 OpenGLES.framework、QuartzCore.framework
3.)创建Opengl ES 绘制图层
在”LxOpenglES“文件夹上右键单击->"New Files"->"Cocoa Touch"->”Objective-C class“
创建OpenglView类,继承自UIView
4.)将View与Delegate关联
在AppDelegate.m文件的didFinishLaunchingWithOptions接口中添加
self.glView = [[OpenglViewalloc]initWithFrame:[[UIScreenmainScreen]bounds]];
[self.windowaddSubview:_glView];
5.)创建着色器文件
在Supporting Files文件夹上右键”New File"->"IOS"->"other"->"Empty"
依次创建SimpleVertex.glsl、SimpleFragment.glsl具体里面的内容看文件。
范例工程:
三维旋转长方体