openGL ES 教程(一):基本概念和发展历史

1. khronos 简介

image.png

khronos 是由 170 家企业组成的开源、非盈利的成员驱动型组织,主要负责开发、发布和维护免税版权标准,其范围涉及到 3D图像学、虚拟现实、增强现实、并行计算、视觉加速和机器学习。该组织制定的标准及其相关的适应性测试提高了软件和中间软件的创作,而且加速了动态多媒体的在跨平台设备上的回放。

khronos 是 OpenGL ES 标准的制定者、维护者,有什么疑问直接去官方找资料即可:

https://www.khronos.org/registry/OpenGL/specs

2. OpenGL 和 OpenGL ES

OpenGL ES 是 OpenGL 的子集,专门为嵌入式设备而设计,如手机端,另外 Play Station 也有使用;

嵌入式设备的因为诸多限制,比如能耗,所以 GPU 和 CPU 性能一般不如 PC 端,所以 OpenGL ES 的设计相对 OpenGL 就很精简、高效,比较典型的区别如下:

  1. 在OpenGL ES的世界里,没有四边形、多边形,无论多复杂的图形都是由点、线和三角形组成的;
  2. 没有glBegin/glEnd/glVertex,只能用glDrawArrays/glDraw;
  3. 没有double型数据类型,但加入了高性能的定点小数数据类型;
  4. 没有实时将非压缩图片数据转成压缩贴图(纹理)的功能,程序必须直接提供压缩好的贴图;
  5. 删除了很多功能:显示列表、求值器、索引色模式等等;
  6. glDrawArrays等函数中数据必须紧密排列,即间隔为 0;
    7.各种数据的堆栈深度较低;

3. iOS 中 OpenGL ES 的版本

在学习时,一般参考 OpenGL 的官方教程:

https://learnopengl-cn.github.io/

但是需要注意的是,OpenGL 和 OpenGL ES 还是有很大的不同,比如 #version 的声明,所以一些图形学的概念可以参考 openGL 中的教程,但是涉及到具体的 Api 差异或者版本问题,最好直接看 OpenGL ES 的官方文档;

这里是 openGL 和 openGL ES 相关文档的归档:https://www.khronos.org/registry/OpenGL/specs/es/

image.png

3. version

按照 LearnOpenGL 中的示例代码,编译着色器时如果使用到了#version 330 core<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值