位置: 编程技术 - 正文

openGL ES 2.0开发流程(opengl es应用开发实践指南(android卷)pdf)

发布时间:2024-02-27

推荐整理分享openGL ES 2.0开发流程(opengl es应用开发实践指南(android卷)pdf),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl es应用开发实践指南,opengl es 3.0编程指南,opengl es 3.0编程指南,opengl es2.0应用,opengl es3.2,opengl es2.0应用,opengl es2.0编程指南pdf,opengl es应用开发实践指南,内容如对您有帮助,希望把文章链接给更多的朋友!

一:添加必须的framework(框架)

OpenGLES.frameworks和QuartzCore.framework

二:修改OpenGLView.h

引入OpenGl的Header,创建一些后面会用到的实例变量

CAEAGLLayer* _eaglLayer;

EAGLContext* _context;

GLuint _colorRenderBuffer;

三:设置layer class为CAEAGLLayer

&#; (Class)layerClass{

return [CAEAGLLayer class];

}

想要显示OpenGL的内容,需要把它缺省的layer设置为一个特殊的layer。(CAEAGLLayer)。这里通过直接复写layerClass的方法。

四:设置layer为不透明(Opaque)

- (void)setupLayer{

_eaglLayer = (CAEAGLLayer*)self.layer;

_eaglLayer.opaque = YES;

}

因为缺省的话,CALayer是透明的。而透明的层对性能负荷很大,特别是OpenGL的层。(如果可能,尽量都把层设置为不透明。另一个比较明显的例子是自定义tableView cell)

五:创建OpenGL context

-(void)setupContext{

openGL ES 2.0开发流程(opengl es应用开发实践指南(android卷)pdf)

EAGLRenderingAPI api = kEAGLRenderingAPIOpenGLES2;

_context = [[EAGLContext alloc] initWithAPI:api];

if(!_context) {

NSLog(@“Failed to initialize OpenGLES 2.0 context”);

exit(1)

}

if(![EAGLContext setCurrentContext:_context]) {

NSLog(@“Failed to set current OpenGL context”);

exit(1);

}

}

无论你要OpenGL帮你实现什么,总需要这个EAGLContext。EAGLContext管理所有通过OpenGL进行draw的信息。这个与Core Graphics context类&#;。当创建一个context,要声明需要哪个version的API。这里,选择OpenGL ES 2.0。(容错处理,如果创建失败了,我们的程序会退出)

六:创建render buffer(渲染缓冲区)

-(void)setupRenderBuffer{

glGenRenderbuffers(1, &_colorRenderBuffer);

glBindRenderbuffer(GL_RENDERBUFFER, _colorRenderBuffer);

[_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:_eaglLayer];

}

Render buffer是OpenGL的一个对象,用于存放渲染过的图像。有时候你会发现render buffer会作为一个color buffer被引用,因为本质上它就是存放用于显示的颜色。

创建render buffer的三步:

1.调用glGenRenderbuffers来创建一个新的render buffer object。这里返回一个唯一的integer来标记render buffer(这里把这个唯一&#;赋&#;到——colorRenderBuffer)。有时候你会发现这个唯一&#;被用来作为程序内的一个OpenGL的名称。(反正它是唯一的)

2.调用glBindRenderbuffer,告诉这个OpenGL:我在后面引用GL_RENDERBUFFER的地方,其实是想用_colorRenderBuffer。其实就是告诉OpenGL,我们定义的buffer对象是属于哪一种OpenGL对象。

3.最后,为render buffer分配空间。renderbufferStorage

七:创建一个frame buffer(帧缓冲区)

C#+OpenGL编程之OpenGL 变换(机器人) 本文基础:C#OpenGL编程之环境搭建原书第三章使用了一个机器人完成变换。正如基础教程所述,我们现在使用C#继承来修改基础场景。usingSystem;usingSystem.C

C#+OpenGL编程之OpenGL 光照 本文基础:C#OpenGL编程之环境搭建现在是第四章OpenGL光照,这章开始,我遇到麻烦了,因为原书的auxSolidSphere这个函数,C#没有封装,我就把例程修改为

C#+OpenGL编程之环境搭建(windows) 现在各种引擎红红火火,为什么还要开图像基础呢?现在的游戏开发中游戏引擎有什么样的地位,是不是不可缺少的。我觉得游戏引擎或多或少的会对

标签: opengl es应用开发实践指南(android卷)pdf

本文链接地址:https://www.jiuchutong.com/biancheng/373249.html 转载请保留说明!

上一篇:视锥裁剪(视锥是什么意思)

下一篇:C#+OpenGL编程之OpenGL 变换(机器人)(c#怎么使用opencv)

  • 以前年度调整损益借方表示什么
  • 员工在外出差的说说
  • 其他权益性资产包括哪些
  • 附加税印花税个税申报实训心得
  • 材料采购合同要盖章吗
  • 金融机构往来利息支出
  • 零报税企业怎么做汇算清缴
  • 广告公司可以开服务费吗
  • 公司支付个人劳务
  • 应交税费借方余额怎么处理
  • 再保险的业务种类
  • 城镇土地使用税的计税依据
  • 收入冲减费用
  • 撤销申报增值税流程
  • 租赁服务可以享受加计抵减吗
  • 苹果x如何显示电量数字
  • 核销后怎么反核销
  • bios 怎么进去
  • 已抵扣的发票怎么撤销
  • json去除某个字段
  • 公司为什么每年都要招人
  • 农产品核定扣除的扣除率是多少
  • 在php中,字符串有哪些表示形式
  • linux zmodem
  • 代理出口退税款退到哪
  • 工业企业生产费用要素有( )、其他支出等
  • vue3响应式丢失
  • 观景台俯视图
  • Yii2 rbac权限控制操作步骤实例教程
  • php截取指定字符串
  • 基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现
  • ai线型工具介绍
  • 高新技术企业福利费扣除比例
  • 利润表没有本月金额只有本年累计可以吗
  • 税率变了
  • python第三方库安装教程
  • sqlserver 死锁查询
  • javatoolkit详解
  • 设备安装收入税率
  • 一张报关单是可以报关吗
  • 企业购房如何入账
  • Access数据库文件以什么作为文件后缀名
  • mysql同步复制搭建方法指南详细步骤
  • 一般纳税人每月开票不能超过多少
  • 食堂菜金属于什么费用
  • 劳务报酬支出怎么算
  • 接受现金捐赠怎么做会计分录
  • 房租费一次不给完怎么写收条
  • 处置固定资产会计处理
  • 合同资产科目设置
  • 存货毁损损失应计入的科目是
  • 费用报销单干嘛用
  • 工程款发票怎么做分录
  • 收到保险理赔款计入什么科目
  • 签订购货合同,计划下月购入的固定资产
  • 出口退税过期怎么处理
  • 平台使用费属于什么服务
  • 数据库sql server
  • centos7如何安装yum命令
  • java如何连接sql
  • mysql密码忘记了怎么找回
  • centos7怎么查看磁盘空间
  • win7系统IE浏览器版本
  • U盘安装centos7步骤
  • Win7系统打印机共享无法保存打印机设置0x000006d9
  • win10激活界面打不开
  • Windows10系统下iis没有注册.netFrameWork4.0的原因
  • bat for do
  • opengl es programming guide
  • jquery异步获取数据
  • Node.js中的全局对象有
  • android学习路线
  • unity用鼠标控制物体移动
  • python抓视频保存本地
  • Android中的布局有哪些
  • 城市配套费需要什么资料
  • 主管税务机构
  • 车辆购置税需要每年都交吗
  • 保险行业税务处理
  • 个体工商户税收起征点是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号