首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Web行业观察

    Swizzling in GLSL

    You can access the components of vectors using the following syntax:

    16210编辑于 2025-09-16
  • 来自专栏王肖的UT

    GLSL-语法基础

    3.1 字符集 GLSL用到的字符集是ASCII码的子集,主要包含下面的几部分: 字母 a-z,A-Z,以及下划线“_”。 数字 0-9 符号 .+-/*%<>[]{}()|$~=!:;,? 一般来说,GLSL是大小写敏感的。 对于本版本的GLSL来说,每个Shader对应着一个可编程单元,一个Vertex Shader对应着一个Fragment Shader,二者连接起来组成一个program。 根据GLSL语法进行语法分析。 根据GLSL语义规则进行语义检查。 Vertex Shader和Fragment Shader连接到一起,丢弃没有被二者同时使用的varying变量。 关键词 列举一下GLSL中的关键词,这些全部是系统保留的,不可私自篡改。

    2.8K60发布于 2018-06-19
  • 来自专栏王肖的UT

    GLSL-概述

    本文介绍的GLSL主要是用来编写这两种Shader的。 未经特殊说明,本文默认基于OpenGL 2.0x。 下文中的GLSL语法除非特殊说明,均适用于二者。 Vertex 处理器 Vertex处理器是一个可编程单元,它以顶点信息作为输入,进行相应的处理。运行在其上的代码被称为Vertex Shader。

    89060发布于 2018-06-19
  • 来自专栏Creator星球游戏开发社区

    GLSL ES 语言—函数

    函数 GLSL ES 定义函数与 C 语言接近: 返回类型 函数名(类型0 参数0, 类型1 参数1, 类型2 参数2, ..., 类型n 参数n) { 函数计算 return 返回值; 在 GLSL 中函数不能在函数内部调用它本身,也就是说不允许递归调用,这项限制的目的是为便于编译器对函数进行内联展开。

    1.1K10发布于 2019-09-11
  • 来自专栏王肖的UT

    GLSL-内置函数

    GLSL内置了若干类内置的便利函数,用于标量和向量的计算。其中很多内置函数可以用于多个类型的Shader,也有一些是提供了直接操作硬件的方法,这种一般只适用于特定的Shader。 在GLSL中没有其他的方式可以模仿这些函数实现对应的功能。 提供很多小的工具函数,比如clamp、mix等等,可以供开发者很方便的调用,都是非常常用的,有一些是直接操作硬件的。

    6.5K30发布于 2018-06-19
  • 来自专栏小黑娃Henry

    OpenGLES(九)- GLSL案例:灰度、旋转OpenGLES(九)- GLSL案例:灰度、旋转

    OpenGLES(九)- GLSL案例:灰度 灰度滤镜 原图 灰度效果图 三通道图:图片每个像素点都有三个值(RGB)表示 ,所以就是三通道。也有四通道的图(RGBA)。

    2K20发布于 2021-08-09
  • 来自专栏Creator星球游戏开发社区

    GLSL ES 语言 | 数组

    数组 GLSL ES 只支持一维数组,且没有 pop()、push() 等操作,声名数组只需要在变量后加上中括号"[ ]" 和数组长度,如下: //声明含有4个数浮点数的数组 float floatArray

    2K10发布于 2019-09-11
  • 来自专栏程序员叨叨叨

    3.4 CG VS GLSL VS HLSL

    3.4 CG VS GLSL VS HLSL Shader language 目前有 3 种主流语言:基于 OpenGL 的 GLSL(OpenGL Shading Language,也称为 GLslang 此外,GLSL 继承了 OpenGL 的良好移植性,一度在 unix 等操作系统上独领风骚(已是曾经的往事)。 并且在网上关于 Cg、GLSL、HLSL 的优劣讨论中,Cg 的跨平台性也受到过广泛的质疑。 我在 2007 年 12 月参加朱幼虹老师 OSG 培训班时,他曾专门对 Cg、GLSL、HLSL 进行了比较,说道:尽管目前还有一些关于 Cg 和 GLSL 之间的争议,不过主流 的 3D 图形厂家都开始支持 a single HLSL/GLSL shader.

    2.2K40发布于 2018-08-28
  • 来自专栏章鱼的慢慢技术路

    GLSL版本的区别和对比

    之前尝试将一个GLSL version 110的版本写成GLSL version 330的,在此将学习过程和收获记录下来。 = vec4(1.0); } GLSL版本与GL版本一起发布。 OpenGL ES 版本 GLSL ES 版本 2.0 100 3.0 300 所以,例如,如果GLSL 120中有一个功能,它可能在GLSL ES 100中不可用,除非ES编译器特别允许它。 一些差异 (桌面)GLSL版本之间的差异。 参考资料 GLSL 详解(基础篇) GLSL 详解(高级篇)

    5.3K41发布于 2018-12-14
  • 来自专栏进击的多媒体开发

    GLSL 的若干优化策略

    一个好的 Shader,特别是在低端机上跑效果,性能往往会有很大的提升,那么,就很有必要学习一下 GLSL Shader 性能优化的策略。 下面整理了一些优化的策略。 1. 使用 glsl_optimizer 优化工具进行优化 glsl_optimizer 是一个免费开源的glsl优化器。可以生成GPU无关的shader优化代码。

    1.2K20编辑于 2022-10-31
  • 来自专栏王肖的UT

    GLSL-变量和类型

    基础类型 GLSL支持下面几种基本类型。 的矩阵 mat3 3*3的float的矩阵 mat4 4*4的float的矩阵 sampler2D 操作2D的Texture的句柄 samplerCube 操作cube的Texture的句柄 另外,GLSL Structures 结构体 GLSL支持结构体,把一些系统定义的类型聚到一起,组成自定义的类型。 Arrays 数组 GLSL中的数组和C++的数组很类似,支持最基本类型,也支持结构体。 float frequencies[3]; uniform vec4 lightPosition[4]; const int numLights = 2; light lights[numLights]; GLSL

    2.3K40发布于 2018-06-19
  • 来自专栏小黑娃Henry

    OpenGLES(八)-GLSL案例:分屏滤镜原理OpenGLES(八)-GLSL案例:分屏滤镜原理

    OpenGLES(八)-GLSL案例:分屏滤镜原理 ? 效果图 本文中着重介绍glsl的分屏逻辑,对于iOS端的代码就省略了。

    1.5K20发布于 2021-08-09
  • 来自专栏Creator星球游戏开发社区

    GLSL ES 语言—内置函数

    内置函数 GLSL ES 提供了很多内置函数,我们一起来看下: 角度函数 radians 角度制转孤度制 degrees 弧度制转角度制 三角函数 sin 正弦 cos 余弦 tan 正切 asin 反正弦 在公众号中回复【webgl】关键字,可获取GLSL ES系列教程。 ?

    1.5K20发布于 2019-09-11
  • 来自专栏Creator星球游戏开发社区

    GLSL ES 语言—结构体

    结构体 GLSL ES 中可以使用 struct关键字定义结构体,将已存在的数据类型聚合到一起,如下: //定义结构体类型light struct light { vec4 color;

    1.1K10发布于 2019-09-11
  • 来自专栏Creator星球游戏开发社区

    GLSL ES 语言—矢量矩阵运算

    矩阵右乘矢量的结果是矢量,其中每个分量都是原矢量中的对应分量,乘上矩阵对应行的每个元素的积的加和, 与下面等价:

    1.5K20发布于 2019-09-11
  • 来自专栏Creator星球游戏开发社区

    GLSL ES 语言—变量数值类型

    数值类型 GLSL 支持两种数据值类型: 数据类型:整数(比如:0、1、2)和浮点数(比如:3.14、29.98)。没有小数点(.)的值被认为是整数,而有小数点的值则被认为是浮点数。 注意:GLSL ES 不支持字符串类型。 变量 变量名需要符合下面规则: 只包括 a~z, A~Z, 0~9 和下划线(_)。 变量名的首字母不能是数字 。 不能是 GLSL ES 中的关键字和保留字,但你的变量的一份可以是它们。 GLSL ES是强类型语言 GLSL ES 要求你具体指明变量的数据类型: <类型> <变量名> 如 vec4 a_position。 ES 支持运算类型如下: 类别 GLSL ES 数据类型 描述 - 取负 int 或 float * 乘法 int 或 float,运算的返回值类型与参与运算的值类型相同 / 除法 + 加法 -

    3.7K20发布于 2019-09-11
  • 来自专栏HelloCode开发者学习平台

    OpenGL ES GLSL滤镜实现(2)

    01 — 原图GLSL 实现 顶点着色器代码: attribute vec4 Position; attribute vec2 TextureCoords; varying vec2 TextureCoordsVarying

    1.2K20发布于 2019-07-30
  • 来自专栏逍遥剑客的游戏开发

    看得让人DT的GLSL

    问题是, GLSL里没有"semantic", 然后问题就来了 举个例子: 一个简单的顶点结构: struct Vertex   {       float3 position;       float3 float3 position : POSITION;       float3 normal   : NORMAL;       float2 uv       : TEXCOORD;   }   但是对于GLSL 昏倒 想来想去, 好像只有OGRE有用GLSL, 查了一下, 我原本想的没有错, 它也是用固定attribute名来绑定element的: //  a  builtin              custom

    94520发布于 2018-05-23
  • 来自专栏音视频技术学习笔记

    20.opengl高级-高级GLSL

    这一章编程实践的内容不多,主要是glsl高级的语言特征。原教程写的很好了。learnopengl-高级glsl 这一节代码实践不多,阅读一遍,重在理解,做个笔记,加强记忆。 一、GLSL内建变量 1. condition的值 demo: #version 420 core // 注意GLSL的版本!

    1.2K20发布于 2020-07-14
  • 来自专栏每日一篇技术文章

    SceneKit_高级01_GLSL

    动态修改属性 SceneKit_中级08_阴影详解 SceneKit_中级09_碰撞检测 SceneKit_中级10_滤镜效果制作 SceneKit_中级11_动画事件 SceneKit_高级01_GLSL SceneKit_高级09_雾效果 SceneKit_大神01_掉落的文字 SceneKit_大神02_弹幕来袭 SceneKit_大神03_navigationbar上的3D文字 让学习成为一种习惯 GLSL GLSL和SceneKit 框架如何配合使用,主要能干什么?

    1.1K10编辑于 2022-05-13
领券