OpenGL2.0 和 OpenGL3.0 的不同与共同点

在OpenGL2.0中vertex shader 中 可以不指定 version 如果不指定 version 对于iOS来说 默认认为是OpenGL2.0  OpenGL2.0中不能使用 in out inout 关键字 , in out inout 关键字 是OpenGL3.0中的关键字

但是对于要使用

在OpenGL3.0中fragment shader 中的vec4必须要指定 精度 否则就会报错

报的错误为:ERROR: 0:8: 'vec4' : declaration must include a precision qualifier for type

iOSandroid

shader中使用

#version 300 es 指定使用OpenGL3.0

#version 100 es 指定使用OpenGL2.0 (不指定version 默认为OpenGL2.0)

如果shader文件没有声明版本,则会认为它使用的是OpenGL ES 2.0的shader版本1.0。为了使版本号相匹配,OpenGL ES 3.0的shader版本直接从1.0跳到了3.0 。

GLSL ES 3.0删除gl_FragDatagl_FragColor内置片段输出变量。而是使用out限定符声明自己的片段输出变量。

顶点缓冲区对象VBO与顶点数组对象VAO

VBO可以将顶点数据保存在显存中,绘制时直接从显存中取数据,减少了数据传输的开销。

通过VBO我们可以将顶点属性数据保存在显存中,当绘制时问题又来了,需要调用好几个函数,过程挺复杂的。为了解决这个问题,OpenGL又引入了VAO(Vertex Array Object)来关联VBO中的数据 (VAO详解),有了VAO,任何数组形式的GL函数调用都会添加到VAO的绘制列表当中(直到解除VAO绑定),当需要绘制的时候,我们仅需要重新绑定VAO,那么之前创建的绘制列表将会重新激活,使得绘制代码更加简洁。

glDrawArrays

glDrawElements

默认精度修饰符 precision 解释

默认精度修饰符

precision precision-qualifier type;

precision可以用来确定默认精度修饰符。type可以是int或float或采样器类型,precision-qualifier可以是lowp, mediump, 或者highp。任何其他类型和修饰符都会引起错误。如果type是float类型,那么该精度(precision-qualifier)将适用于所有无精度修饰符的浮点数声明(标量,向量,矩阵)。如果type是int类型,那么该精度(precision-qualifier)将适用于所有无精度修饰符的整型数声明(标量,向量)。包括全局变量声明,函数返回值声明,函数参数声明,和本地变量声明等。没有声明精度修饰符的变量将使用和它最近的precision语句中的精度。

在顶点语言中有如下预定义的全局默认精度语句:

precision highp float;

precision highp int;

precision lowp sampler2D;

precision lowp samplerCube;

在片元语言中有如下预定义的全局默认精度语句:

precision mediump int;

precision lowp sampler2D;

precision lowp samplerCube;

片元语言没有默认的浮点数精度修饰符。因此,对于浮点数,浮点数向量和矩阵变量声明,要么声明必须包含一个精度修饰符,要不默认的精度修饰符在之前已经被声明过了。

修饰顺序

当需要使用多个修饰时,它们必须遵循严格的顺序:

(1)invariant-qualifier   storage-qualifier   precision-qualifier

(2)storage-qualifier    parameter-qualifier    precision-qualifier

参考内容:

http://www.xuebuyuan.com/1980605.html

OpenGL2.0 和 OpenGL3.0 的不同与共同点相关推荐

  1. OpenGL3.0教程 第十六课:阴影贴图

    OpenGL3.0教程 原文链接:http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-12-opengl-extensions ...

  2. 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库01 —— 准备环境,搭建本地仓库,安装ambari...

    一.集群软硬件环境准备: 操作系统:  centos 7 x86_64.1804 Ambari版本:2.7.0 HDP版本:3.0.0 HAWQ版本:2.3.0 5台PC作为工作站: ep-bd01 ...

  3. 积少成多 Flash(ActionScript 3.0 Flex 3.0) 系列文章索引

    [源码下载] 积少成多 Flash(ActionScript 3.0 & Flex 3.0) 系列文章索引 作者:webabcd Flash 之 ActionScript 3.0  1.积少成 ...

  4. 一文看懂模糊搜索1.0到3.0的算法迭代历程

    参加 2019 Python开发者日,请扫码咨询 ↑↑↑ 作者 | 宋广泽 责编 | 郭芮 来源 | CSDN(ID:CSDNnews) 前一段时间在Linux上用C语言做了一个信息管理系统,初始版本 ...

  5. 为什么 HashMap 加载因子一定是0.75?而不是0.8,0.6?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 有很多东西之前在学的时候没怎么注意,笔者也是在重温HashMap的 ...

  6. 127.0.0.1和0.0.0.0地址的区别

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 1. 问题引入 之前在使用tomcat的时候,启动tomcat默认 ...

  7. 一个有趣的实验:用0.1f 替换 0,性能提升 7 倍!

    点击关注上方"视学算法",设为"置顶或星标",第一时间送达技术干货. 本文来源:http://cenalulu.github.io/linux/about-de ...

  8. scala报错20/08/31 23:48:40 WARN TaskSetManager: Lost task 1.0 in stage 0.0 (TID 1, 192.168.28.94, exec

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  9. 架构的能力是不断打磨1.0,2.0成就3.0,4.0

    架构能力的提升不在于这一年我做了多少新的功能,上线了多少服务.系统,更重要的在于是否可以就现有的这套系统规模.规则.体量扩大几倍的情况下,仍然可以快速支持业务吞吐.提升扩展及三高的能力. 更近一步来说 ...

最新文章

  1. Java GC收集器配置说明
  2. centos 7 安装 Vue
  3. 知识管理系统Data Solution研发日记之六 窗体设计器
  4. 小波的秘密2_MATLAB图像多尺度分析
  5. NHibernate入门hello world
  6. 什么是 jQuery 事件
  7. 操作系统/etc/hosts文件配置
  8. linux+qt+定时精度,Qt QTimer测试定时精度
  9. 一开始买的是MacBook air,后来分了专业之后发现要用的软件需要Windows系统,该怎么办?
  10. 2021软件测试行业问卷调查报告 20 条思考
  11. 经典C语言学习教程资料
  12. Optitrack光学动作捕捉
  13. 最优化进退法c语言编程,进退法、0.618法、Powell法、罚函数法的程序设计,急!!...
  14. 车牌识别的matlab程序(程序_讲解_模板),车牌识别的matlab程序(程序-讲解-模板)资料...
  15. java实现极简单的 TXT小说阅读器(第四版)
  16. 天然甜菊的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  17. java线程状态——java线程状态图
  18. MATLAB-三维柱状图
  19. 静态英雄联盟轮播图布局
  20. Android 开发 入门

热门文章

  1. Multiple commands produce “*.framework“ Command PhaseScriptExecution failed with a nonzero exit cod
  2. 蒙哥马利模乘算法简介
  3. 实现文本下方查看更多
  4. 练习项目(二):消融效果
  5. 2020大众心理健康洞察报告-简单心理——附下载链接
  6. 小甲鱼数据结构教学视频(百度网盘)
  7. 百度网盘虚假下载(文件已修改或删除)解决方法
  8. CPU是如何执行程序的?
  9. 安卓通讯录管理软件_安卓系统50个你不知道的使用窍门!每个都值得你去收藏!...
  10. Python 模拟乘客进站流程