码迷,mamicode.com
首页 > 其他好文 > 详细

OpenGL ES入门(二 )- Your First OpenGL Scene - Beginning OpenGL ES and GLKit

时间:2021-05-24 03:10:11      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:elf   ati   内容   cep   begin   ted   buffers   nta   tar   

1. Core Concepts:OpenGL Context

技术图片

从图中我们可以看到集中常见的OpenGL Context:

  • Texture
  • Vertex Buffer Objects
  • Shader
  • Frame & Render Buffers
  • State
    这些内容都可以通过一段代码进行初始化
[[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES2]; // 代表我们通过OPenGL ES 2.0来进行初始化

2. GLKView and GLKViewController

2.1 GLKView

技术图片

通过GLKView可以配置OpenGL来对一个view进行渲染,并且设置其中的context,需要我们override的方法如下

- (void)glkview:(GLKView *)view drawInRect:(CGRect) rect {...}

2.2 GLKViewController

在每次屏幕刷新时都会调用函数:

(void)update {...}

3. Frame and Render Buffers

技术图片

在图中我们看到两种类型的Buffer,其中FrameBuffer可以理解和其他Buffer的合集,我们会在后面进行详细介绍。而ColorBuffer可以理解为一块像素,GLView能够配置这些像素并将其渲染在屏幕上。接下来我们来理解一下这两行代码:

glClearColor(0, 104.0/255.0, 55.0/255.0, 1.0); // 配置颜色
glClear(GL_COLOR_BUFFER_BIT);   // 对ColorBuffer进行一次clear,使得上述的颜色生效

4.Demo: Getting Started

首先我们常见一个XCode iOS工程,使用Objective-C,UI使用storyboard。
创建好以后,将ViewController的类型改写为继承与GLKViewController

//
//  main.m
//  HelloOpenGL
//
#import <UIKit/UIKit.h>
@import GLKit;

@interface TestGLKViewController : GLKViewController


@end
//
//  ViewController.m
//  HelloOpenGL
//
//

#import "ViewController.h"

@interface TestGLKViewController ()

@end

@implementation TestGLKViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    GLKView *view = self.view;
    view.context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES2]; // 代表我们通过OPenGL ES 2.0来进行初始化
}

- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect {
    glClearColor(0, 104.0/255.0, 55.0/255.0, 1.0); // 配置颜色
    glClear(GL_COLOR_BUFFER_BIT);   // 对ColorBuffer进行一次clear,使得上述的颜色生效
}

@end

但在这里运行的时候,程序会crash,因为我们storyboard中的VC还是UIViewController,所以我们先将他删去,再新添加一个GLKViewController类型,将VC类型配置为TestGLKViewController,其中的View类型配置为GLKView,就OK了,来看看运行效果:

技术图片

OpenGL ES入门(二 )- Your First OpenGL Scene - Beginning OpenGL ES and GLKit

标签:elf   ati   内容   cep   begin   ted   buffers   nta   tar   

原文地址:https://www.cnblogs.com/DaiShuSs/p/14747895.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!