一文掌握OpenGL的shader内置函数

2023-05-16

OpenGL ES有大量的GLSL内置函数,包括:三角函数、指数函数、通用函数、浮点函数、几何函数、矩阵函数、矢量关系函数、纹理函数、原子函数、图像函数、插值函数等。

目录

一、三角函数

1、radians(degrees)

2、degrees(radians)

3、sin(angle)

4、cos(angle)

5、tan(angle)

二、指数函数

1、pow(x, y)

2、exp(x)

3、log(x)

4、sqrt(x)

三、通用函数

1、abs(x)

2、sign(x)

3、floor(x)

4、round(x)

5、ceil(x)

6、mod(x, y)

7、min(x, y)

8、max(x, y)

9、clamp(x, minVal, maxVal)

10、mix(x, y, a)

11、step(edge, x)

12、smoothstemp(edge0, edge1, x)

四、几何函数

1、length(x)

2、distance(p0, p1)

3、dot(x, y)

4、cross(vec3 x, vec3 y)

5、normalize(x)

五、矩阵函数

1、matrixCompMult(mat x, mat y)

2、outerProduct(vec3 a, vec3 b)

3、transpose(mat3 m)

4、inverse(mat3 m)

六、矢量关系函数

1、lessThan(vec x, vec y)

2、greaterThan(vec x, vec y)

3、equal(vec x, vec y)

4、any(bvec x)

5、all(bvec x)

七、整数运算函数

1、bitCount(value)

2、findLSB(value)

3、findMSB(value)

八、纹理函数

1、texture(gsampler2D sampler, vec2 P[,float bias])

2、textureLod(gsampler2D sampler, vec2 P, float lod)

3、textureG rad(gsampler2D sampler, vec2 P, vec2 dPdx, vec2 dPdy)

九、原子函数

1、atomicAdd(uint mem, uint data)

2、atomicAnd(uint mem, uint data)

3、atomicOr(uint mem, uint data)

4、atomicCompSwap(int mem, int compare, int data)

十、图像函数

1、imageSize(gimage2D image)

2、imageLoad()

3、imageStore()

十一、插值函数

1、interpolateAtCentroid(vec3 interpolant)

2、interpolateAtSample(vec3 interpolant, int sample)

3、interpolateAtOffset(vec3 interpolant, vec3 offset)


一、三角函数

1、radians(degrees)

把角度转为弧度,转换公式:弧度=(π/180) * degrees

2、degrees(radians)

把弧度转为角度,转换公式:角度(180/π) * radians

3、sin(angle)

正弦函数

4、cos(angle)

余弦函数

5、tan(angle)

正切函数

二、指数函数

1、pow(x, y)

x的y次方,x > 0, y >= 0

2、exp(x)

以e为底的指数函数

3、log(x)

以e为底的对数函数,x > 0

4、sqrt(x)

平方根函数,x >= 0

三、通用函数

1、abs(x)

求绝对值

2、sign(x)

符号函数。x>0时,返回值为1;x<0时,返回值为-1

3、floor(x)

向下取整,返回小于等于x的整数

4、round(x)

近似值取整,返回最接近x的整数,即四舍五入

5、ceil(x)

向上取整,返回大于等于x的整数

6、mod(x, y)

取模函数,返回x - y * (x/y)

7、min(x, y)

求x与y的较小值

8、max(x, y)

求x与y的较大值

9、clamp(x, minVal, maxVal)

求minVal与maxVal之间的数值,即min(max(x, minVal), maxVal)

10、mix(x, y, a)

x与y的混合,即x * (1- a) + y * a

11、step(edge, x)

阶跃函数。当x < edge时返回0,否则返回1

12、smoothstemp(edge0, edge1, x)

平滑阶跃函数。当x <= edge0且x >= edge1时,返回0。否则在[0, 1]区间执行Hermite插值(edge0 < x < edge1)

四、几何函数

1、length(x)

求矢量的长度,sqrt( x0 + x1 + … )

2、distance(p0, p1)

求两点距离,即length(p0 - p1)

3、dot(x, y)

x与y点乘,即x0 · y0 + x1 · y1 + …

4、cross(vec3 x, vec3 y)

求矢量x与y的叉乘,即(x1 · y2 - y1 · x2 , x2 · y0 - y2 · x0 , x0 · y1 - y0 · x1)

5、normalize(x)

归一化操作,即x / length(x)

五、矩阵函数

1、matrixCompMult(mat x, mat y)

矩阵x与y相乘

2、outerProduct(vec3 a, vec3 b)

向量a与b的外积

3、transpose(mat3 m)

矩阵的转置

4、inverse(mat3 m)

矩阵的反转

六、矢量关系函数

1、lessThan(vec x, vec y)

判断矢量x是否小于矢量y,返回bvec矢量

2、greaterThan(vec x, vec y)

判断矢量x是否大于矢量y,返回bvec矢量

3、equal(vec x, vec y)

判断矢量x与矢量y是否相等,返回bvec矢量

4、any(bvec x)

矢量x中任意数值为true,则返回true

5、all(bvec x)

矢量x中所有数值为true,则返回true

七、整数运算函数

1、bitCount(value)

返回二进制value中含有1的个数

2、findLSB(value)

返回二进制value的最低有效位

3、findMSB(value)

返回二进制value的最高有效位

八、纹理函数

1、texture(gsampler2D sampler, vec2 P[,float bias])

使用纹理坐标来查找绑定采样器的纹理

2、textureLod(gsampler2D sampler, vec2 P, float lod)

使用纹理坐标,结合lod(level-of-detail)来查找纹理

3、textureG rad(gsampler2D sampler, vec2 P, vec2 dPdx, vec2 dPdy)

使用纹理坐标,结合梯度来查找纹理

九、原子函数

1、atomicAdd(uint mem, uint data)

原子变量加运算

2、atomicAnd(uint mem, uint data)

原子变量逻辑与运算

3、atomicOr(uint mem, uint data)

原子变量逻辑或运算

4、atomicCompSwap(int mem, int compare, int data)

原子变量的比较交换。mem与compare比较,如果两者相等,那么data赋值给mem

十、图像函数

1、imageSize(gimage2D image)

计算图像的大小

2、imageLoad()

加载图像数据

3、imageStore()

存储图像数据

十一、插值函数

1、interpolateAtCentroid(vec3 interpolant)

在质心的位置进行插值

2、interpolateAtSample(vec3 interpolant, int sample)

在指定采样数的位置进行插值

3、interpolateAtOffset(vec3 interpolant, vec3 offset)

在指定偏移量的位置进行插值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文掌握OpenGL的shader内置函数 的相关文章

随机推荐

  • [二] Nuttx移植-星瞳pyboard开发板

    目录 一 Nuttx配置文件二 构建自己的配置文件1 include board h文件构建2 kernel amp amp scripts 构建3 nsh defconfig 构建4 src 构建5 Kconfig 构建 三 修改 nut
  • Parrot Bebop2 与ROS

    第二章 无人机平台与开发环境搭建 本章主要介绍无人机平台及相关开发环境的搭建 包括介绍Parrot Bebop2的相关规格与使用说明 xff0c 以及ROS的操作系统的简介 发展历程 安装流程 xff0c 还有ROS的数据通信方式和ROS的
  • python2与python3解析数据

    蓝牙模块接收到监测设备传输来的数据 xff0c 封装格式为十六进制的数据帧 xff0c 蓝牙模块将数据通过串口发送给wrtnode 2p xff0c wrtnode通过ser2net服务将数据转为网络数据 xff0c 可以通过监听192 1
  • 上传本地项目到github远程仓库

    前提已经注册github账号并在本地电脑安装git客户端 1 为Github账户设置SSH key 进入git bash xff0c 通过如下命令生成 ssh keygen t rsa C 34 github所绑定的邮箱 34 一路回车 x
  • 卫星导航定位技术二:由星历参数求解卫星时空位置

    卫星星历是描述卫星运动轨道的信息 也可以说卫星星历就是一组对应某一时刻的轨道参数及其变率 有了卫星星历就可以计算出任意时刻的卫星位置及其速度 GPS卫星星历分为预报星历和后处理星历 预报星历又称广播星历 GPS广播星历参数共有16个 xff
  • 模式识别:最小错误率贝叶斯决策分类

    一 引言 1 用贝叶斯决策理论分类要事先知道两个条件及要求 xff1a 各类的先验概率 xff1a 及特征向量的条件概率密度 xff1a 或后验概率 xff1a 决策分类的类别一定 2 解决的问题 xff1a 已知一定数目的样本 xff0c
  • 模式识别:BP神经网络算法

    1 BP神经网络分类器 1 1 BP算法基本原理 神经网络结构大概如下图1 1 xff1a 图1 1 包括输入层 xff0c 隐层和输出层 包含一层隐层的神经网络称为浅层神经网络 xff0c 即SNN 包含多层隐层的神经网络称为深度神经网络
  • 模式识别:C-means(K-means)聚类算法与分级聚类(层次聚类)算法

    C均值聚类算法与分级聚类算法的聚类分析 一 实验目的 理解聚类的整体思想 xff0c 了解聚类的一般方法 xff1b 掌握 C means与分级聚类算法算法思想及原理 xff0c 并能够熟练运用这些算法进行聚类分析 xff1b 能够分析二者
  • ROS 配置多网口通讯

    列出当前所有的网络设备 ifconfig a 结果如下 xff1a enp1s0 Link encap Ethernet HWaddr 00 2f 5c 68 06 ad inet addr 192 168 1 101 Bcast 192
  • qt creator开启openMP加速方法

    环境 Qt creator4 11 for msvc2017 内置openmp库 启用方法 1 在pro文件加上QMAKE CXXFLAGS 43 61 openmp 2 添加头文件omp h
  • c++中::的用法

    是运算符中等级最高的 xff0c 它分为三种 1 global scope 全局作用域符 xff09 xff0c 用法 xff08 name 2 class scope 类作用域符 xff09 xff0c 用法 class name 3 n
  • 【ubuntu】——gflags&glog卸载与安装

    gflags glog 通过apt安装的glog xff0c gflags没有config cmake xff0c 所以在一些情况下需要手动编译 1 卸载gflags amp glog 只适用于通过apt安装的方式 span class t
  • 【算法】A* 寻路 可视化

    如下图 寻路图A 使用A 算法 xff0c 需要将地图抽象成一个个方块 xff0c 蓝色代表不可以动 墙 xff0c 黄色为起始点 xff0c 红色为目标点 其地图的二维坐标如图所示 xff0c 每一个单位为1米 A 的基本公式为 F n
  • 实验室新生成长指南[2.2.1] · 连接器

    欢迎进入 实验室新生成长指南 第二章 xff1a 硬件 本篇是 实验室新生成长指南 第二章第二节第一篇 xff1a 连接器 整个2 2节将帮助新手快速建立设计电路系统的一些基本知识储备 更多关于 实验室新生成长指南 的介绍 xff0c 请前
  • 走进音视频的世界——音视频的基本概念

    音视频通用的基本概念有码率 时长 xff0c 而不同音视频有不同的封装格式 编码协议 其中视频关键参数有分辨率 帧率 画质 旋转角度 像素格式 xff0c 而音频关键参数有采样率 声道数 声道布局 音质 采样数 采样位数 帧时长 接下来与大
  • 走进音视频的世界——新一代开源编解码器AV1

    AOMedia Video 1 xff08 AV1 xff09 是一种开源 免版税的编解码器 xff0c 最初设计用于Internet上的视频传输 它是由开放媒体联盟 xff08 AOMedia xff09 于VP9的继任者开发的 xff0
  • FFmpeg源码分析:avformat_find_stream_info分析码流信息

    FFmpeg在调用avformat open input 之后 xff0c 可能码流信息不够完整 xff0c 可以使用avformat find stream info 获取更多的码流信息 比如获取视频帧率 视频宽高 xff0c 重新计算最
  • Miracast投屏协议深入剖析

    Miracast由WiFi联盟制定 xff0c 以WiFi Direct IEEE802 11为无线传输标准 xff0c 允许手机向电视或其他接收设备进行无线投送视频 图片 和Miracast类似的投屏协议 xff0c 还有Airplay
  • c++:DFS与BFS详解

    DFS xff08 深度优先搜索 xff09 xff1a 从某个状态开始 xff0c 不断转移状态到无法转移为止 xff0c 然后退回到前一步 xff0c 继续转移到其他状态 xff0c 不断重复 xff0c 直至找到最终的解 总是从最开始
  • 一文掌握OpenGL的shader内置函数

    OpenGL ES有大量的GLSL内置函数 xff0c 包括 xff1a 三角函数 指数函数 通用函数 浮点函数 几何函数 矩阵函数 矢量关系函数 纹理函数 原子函数 图像函数 插值函数等 目录 一 三角函数 1 radians degre