
gles基础
flycatdeng
这个作者很懒,什么都没留下…
展开
-
OpenGL ES着色器语言规范 6 陈述和结构
目录6 陈述和结构6 陈述和结构OpenGL ES着色语言的基本构建块是:陈述和声明 方法名定义 选择(if-else) 迭代(for,while和do-while) 跳转(discard, return, break, 和continue)编译单元的总体结构如下translation-unit: global-declarationtranslation-...翻译 2019-02-08 20:53:48 · 315 阅读 · 0 评论 -
OpenGL ES着色器语言规范 10 常见问题(10-13)
目录10.10 重新定义内置函数10.11 常量表达式10.12 易变变量链接10.13 gl_Position10.10 重新定义内置函数如果重新定义内置函数,新函数是否应隐藏所有具有相同名称的内置函数?A:是的,这遵循c ++规则。 然后,内置函数位于“外部”范围内,全局范围嵌套在此范围内。这特征有用吗? 内置函数可能有效地映射到硬件。 用户定义的函数可...翻译 2019-03-17 22:11:06 · 390 阅读 · 0 评论 -
OpenGL ES着色器语言规范 10 常见问题(14-16)
目录10.14 预处理器10.15 编译制阶段10.16 易变变量的最大个数10.14 预处理器预处理器是否必要? 扩展机制依赖于预处理器,因此需要更换。#define,#ifdef,#ifdef,#elsif和#endif结构通常用于管理不同版本和包含防护。宏,特别是参数化宏被认为没什么用,因为它们应该被常量和函数替换。它们仍然常用于C程序中,因此在GLSL ES中可能存在类...翻译 2019-03-18 00:24:35 · 470 阅读 · 0 评论 -
OpenGL ES着色器语言规范 10 常见问题(17-18)
目录10.17 无尺寸的数组声明10.18 不变性10.17 无尺寸的数组声明Desktop GLSL允许在没有大小的情况下声明数组,然后可以使用常量下标表达式访问这些数组。大小永远不需要声明。 这是为了支持gl_Texcoord,例如:varying vec4 gl_TexCoord[];...gl_FragColor = texture2D (tex, gl_...翻译 2019-03-18 23:40:17 · 536 阅读 · 0 评论 -
OpenGL ES着色器语言规范 10 常见问题(25-29)
目录10.25 动态索引10.26 纹理单元的最大数量10.27 目标错误报告10.28 整数出发的舍入10.29 未定义的返回值10.25 动态索引某些实现不直接支持数组,向量和矩阵的动态索引。程序转换时是可以的,但性能会降低。是否应该从规范中删除数组的动态索引?A:保持统一变量的动态索引(用于蒙皮)。 删除临时(在限制部分)。是否应从规范中删除...翻译 2019-03-24 00:41:52 · 351 阅读 · 0 评论 -
OpenGL ES着色器语言规范 10 常见问题(30-33)
目录10.30 运算符精度10.31 编译器转换10.32 在预处理器中扩展类函数宏10.33 扩展宏是否应在全局范围内定义?10.30 运算符精度是否应该定义add和multiply等操作的精度?这些不是由C ++标准定义的,但通常假设C ++实现将使用IEEE 754算法。对于通常仅支持IEEE 754的子集的GPU而言,情况并非如此。此外,诸如超越函数的许多操作被...翻译 2019-03-24 01:09:45 · 919 阅读 · 0 评论 -
OpenGL ES着色器语言规范 10 常见问题(34)
目录10.34提高最低要求10.34提高最低要求自版本1.00发布以来,很明显所有实现都支持超过最低要求。一些实现远远超出了最小值。最低要求不包括能够使用循环索引索引数组,这是一个非常有用的功能。作为语言规范的一部分但超出最小值的特征应该如何暴露?选择1:什么都不做。 应用程序可以通过尝试编译来测试特定功能的存在。 如果不支持,编译将失败。这被认为是不令人满意的,因...翻译 2019-03-24 01:36:14 · 385 阅读 · 0 评论 -
OpenGL ES着色器语言规范 5 操作符和表达式(5.5 向量组件)
目录5.5 向量组件5.5 向量组件向量中每个组件的名称都使用一个单独的字符来表示。常用的位置,颜色,或者纹理坐标向量的组件直接和几个便利的数字相关联。访问向量中的组件可以使用向量名(.)组件名的方式.支持的组件名称如下:{x, y, z, w} 在访问表示点或法线的向量时很有用。 {r, g, b, a} 访问表示颜色的向量时很有用。 {s, t, p, ...翻译 2019-04-08 22:05:21 · 421 阅读 · 0 评论 -
OpenGL ES着色器语言规范 5 操作符和表达式(5.1-5.3)
目录5 操作符和表达式5.1 操作符5.2数组下标5.3函数调用5 操作符和表达式5.1 操作符OpenGL ES着色语言具有以下运算符。优先级 操作说明 操作符 顺序 1(最高) 括号分组 ( ) NA 2 数组下标 函数调用和构造器 成员选择与混合 自加1 自减1 后缀 ...翻译 2019-04-02 23:39:37 · 660 阅读 · 0 评论 -
OpenGL ES着色器语言规范 5 操作符和表达式(5.4 构造器)
目录5.4 构造器(构造函数)5.4.1 转换和标量构造器5.4.2向量和矩阵构造器5.4.3结构体构造器5.4 构造器(构造函数)构造函数使用函数调用语法,其中函数名称是基本类型关键字或结构名称,以生成在初始化程序或表达式中使用的所需类型的值。 (有关详细信息,请参见第9节“着色语言语法”。)参数用于初始化构造的值。构造函数可用于请求数据类型转换从一种标量类型更改为另...翻译 2019-04-03 00:15:27 · 385 阅读 · 0 评论 -
AndroidOpenGLESDemos Hello World-GLSurfaceView 显示背景色
目录一、效果二、GLSurfaceView三、渲染四、注意五、相关参考六、代码地址一、效果二、GLSurfaceViewGLSurfaceView从Android 1.5(API level 3)开始加入,继承自SurfaceView,实现了SurfaceHolder.Callback2接口,拥有SurfaceView的全部特性,也有view所有的功能和属性...原创 2019-04-23 00:25:39 · 1347 阅读 · 1 评论 -
OpenGL ES着色器语言规范 10 常见问题(19-24)
目录10.19 着色器中的不变性10.20 循环声明10.21 着色器之间的交叉链接10.22 声明的可见性10.23 语言版本10.24 采样器10.19 着色器中的不变性如何指定着色器中的不变性?编译器可能决定重新计算值而不是将其存储在寄存器中。 新值可能与原始值不完全相同。选项1:禁止此行为。选项2:对变量使用不变性限定符来控制它。 这与桌面一致...翻译 2019-03-21 01:26:32 · 323 阅读 · 0 评论 -
OpenGL ES着色器语言规范 10 常见问题(4-9)
目录10.5本地函数声明和函数隐藏10.6 重载main()10.7 错误报告10.8 结构声明10.9 嵌入式结构定义10.4函数和变量名称空间Q:变量和函数是否共享相同的名称空间? GLSL ES不支持函数指针,因此可以始终使用语法来区分不同的情形。 所以这与C ++还是不同的。A:函数和变量可以共享相同的名称空间。是否允许在同一范围内重新声明相同的名...翻译 2019-03-17 01:10:55 · 368 阅读 · 0 评论 -
OpenGL ES 2.0 着色器语言规范
5 操作符和表达式 5.1 操作符 5.2数组下标 5.3函数调用 5.4 构造器(构造函数) 5.4.1 转换和标量构造器 5.4.2向量和矩阵构造器 5.4.3结构体构造器 5.5 向量组件6 陈述和结构 6.1 函数定义 6.1.1 函数调用惯例 6.2 选...原创 2019-07-03 22:27:14 · 698 阅读 · 0 评论 -
OpenGL ES着色器语言规范 6.1 函数定义
目录6.1 函数定义6.1.1 函数调用惯例6.1 函数定义如上面的语法所示,有效着色器是一系列全局声明和函数定义。 声明一个函数,如下例所示:// prototypereturnType functionName (type0 arg0, type1 arg1, ..., typen argn);而函数定义如下:// definitionreturnType...翻译 2019-02-09 18:44:00 · 496 阅读 · 0 评论 -
OpenGL ES着色器语言规范 6.2 选择
目录6.2 选择6.2 选择着色语言中的条件控制流由if或if-else完成:if (bool-expression) true-statement或if (bool-expression) true-statementelse false-statement如果表达式的值是true,则 true-statement将会被执行。如果...翻译 2019-02-17 22:24:44 · 345 阅读 · 0 评论 -
OpenGL ES着色器语言规范 6.3 迭代
目录6.3 迭代6.3 迭代for、while、do-while 可以使用迭代如下:for (for-init-statement; condition(opt); expression) statement-no-new-scopewhile (condition) statement-no-new-scopedo statementwh...翻译 2019-02-17 23:55:38 · 355 阅读 · 0 评论 -
OpenGL ES着色器语言规范 6.4 跳转
目录6.4 跳转6.4 跳转以下为跳转关键字:jump_statement: continue; break; return; return expression; discard; // 仅在片元着色器中使用没有“goto”也没有其他非结构化的控制流程。continue跳转仅用于循环,它会跳过它内部最内圈的剩余部分。对于whil...翻译 2019-02-18 00:54:24 · 433 阅读 · 0 评论 -
OpenGL ES着色器语言规范 9 着色语言语法
目录9 着色语言语法9 着色语言语法语法是从词法分析的输出获得的。词法分析将返回以下标识:ATTRIBUTE CONST BOOL FLOAT INTBREAK CONTINUE DO ELSE FOR IF DISCARD RETURNBVEC2 BVEC3 BVEC4 IVEC2 IVEC3 IVEC4 VEC2 VEC3 VEC4MAT2 MAT3 MAT4 ...翻译 2019-02-28 00:23:30 · 575 阅读 · 0 评论 -
OpenGL ES着色器语言规范 7 内建变量
版权声明:本文为flycatdeng原创文章或译文,转载请加上链接和作者名 https://blog.csdn.net/flycatdeng目录7 内建变量7.1 顶点着色器特殊变量7.2 片段着色器特殊变量7.3 顶点着色器内置属性7.4 内建常量7.5 内置统一状态7 内建变量一些OpenGL ES操作仍然在顶点处理器和片段处理器之间的固定功能中继续发生。在...翻译 2019-02-25 00:29:31 · 617 阅读 · 0 评论 -
OpenGL ES着色器语言规范 10 常见问题(1-3)
目录10 常见问题10.1 顶点着色器精度10.2片段着色器精度10.3 精度限定符10 常见问题10.1 顶点着色器精度Q:最小精度应该是(相当于)float 24还是float 32?A:最小精度为float 24.将鼓励底层实现使用float 32。10.2片段着色器精度Q:最小精度应该是(相当于)float 16还是float 24?需要flo...原创 2019-03-05 00:31:04 · 760 阅读 · 0 评论 -
OpenGL ES着色器语言规范 8 内建函数
目录8 内建函数8.1 角度和三角函数8.2 指数函数8.3 常用函数8.4 几何函数8.5 矩阵函数8.6 向量相关函数8.7 纹理查找函数8 内建函数OpenGL ES着色语言为标量和向量操作定义了一套内建便利函数。有些内建函数可以用在多个类型的着色器中,有些是针对固定硬件的,所以这部分只能用在某个特定的着色器上。内建函数基本上可以分为一下三...翻译 2019-02-26 01:15:04 · 869 阅读 · 0 评论 -
gles中片元着色器常用
5.随机http://byteblacksmith.com/improvements-to-the-canonical-one-liner-glsl-rand-for-opengl-es-2-0/float rand(vec2 co){ return fract(sin(dot(co.xy,vec2(12.9898,78.233))) * 43758.5453);}...原创 2017-02-18 16:52:10 · 498 阅读 · 0 评论 -
AndroidOpenGLESDemos glReadPixel读取当前缓冲区像素并保存成Bitmap
目录一、效果二、说明三、关键代码四、相关参考五、代码地址一、效果 二、说明如上图,左上角是一个GLSurfaceView,中间是一个按钮,左下角是一个ImageView(初始显示颜色为黑色);当点击按钮之后,利用OpenGL的API glReadPixels可以将当前GL渲染缓冲区中的颜色获取并可以保存为Bitmap。三、关键代码glReadP...原创 2019-06-05 00:50:13 · 5205 阅读 · 0 评论