当前位置: 首页 > news >正文

OpenGL ES视频特效开发参考Shadertoy参数详解参考Godot文档

今天一个大厂的学员过来问shadertoy上一些参数的问题,因为我之前用过一段时间Godot引擎,

我清晰记得Godot官方文档有明确的解释,所以整理下发给做特效的同学。

Shadertoy是一个网站,它方便用户编写片段着色器并创造出纯粹的魔法。

Shadertoy不会给用户完全控制着色器的权力。它处理所有的输入和uniform,并且只允许用户编写片段着色器。

类型

Shadertoy使用webgl规范,因此它运行的是稍微不同版本的GLSL。然而,它仍然有常规的类型,包括常量和宏定义。

mainImage

Shadertoy着色器的主入口点是mainImage函数。mainImage函数有两个参数,fragColor和fragCoord,分别对应于Godot中的COLOR和FRAGCOORD。在Godot中,这些参数会自动处理,所以您不需要自己将它们作为参数包含进去。将mainImage函数中的任何内容复制到转换到Godot时的fragment函数中即可。

变量

为了使编写片段着色器简单明了,Shadertoy会自动处理从主程序传递给片段着色器的大量有用信息。其中一些在Godot中没有对应项,因为Godot选择默认不提供它们。这是可以接受的,因为Godot提供了创建自定义uniform的功能。对于列出了"Provide with Uniform"作为等效项的变量,用户需要自己创建该uniform。描述会为读者提供一些关于可以传递给uniform的替代项的提示。

变量类型等效项描述

fragColor

out vec4

COLOR

每个像素的输出颜色。

fragCoord

vec2

FRAGCOORD.xy

适用于全屏四边形。对于较小的四边形,请使用UV。

iResolution

vec3

1.0 / SCREEN_PIXEL_SIZE

视口的分辨率,也可以手动传递。

iTime

float

TIME

着色器开始运行以来的时间。

iTimeDelta

float

Provide with Uniform

渲染上一帧所用的时间。

iFrame

float

Provide with Uniform

帧编号。

iChannelTime[4]

float

Provide with Uniform

特定纹理开始运行以来的时间。

iMouse

vec4

Provide with Uniform

鼠标位置的像素坐标

iDate

vec4

Provide with Uniform

当前日期,以秒为单位。

iChannelResolution[4]

vec3

1.0 / TEXTURE_PIXEL_SIZE

特定纹理的分辨率。

iChanneli

Sampler2D

TEXTURE

Godot仅提供一个内置纹理;用户可以创建更多。

坐标
fragCoord与GLSL中的gl_FragCoord和Godot中的FRAGCOORD行为相同。

 

http://www.lryc.cn/news/167992.html

相关文章:

  • java:逆序排序的三种方法
  • pgsql操作json类型
  • Thinkphp6 配置并使用redis图文详解 小皮面板
  • 模拟实现链式二叉树及其结构学习——【数据结构】
  • 基于go版本的LoraWAN Server 的470MHz频段的设置
  • C与C++的函数相互调用
  • MySQL架构介绍与说明
  • three3D的vite+vue版本基础代码
  • 实现按钮悬停动画
  • 【C++】深拷贝和浅拷贝 ② ( 默认拷贝构造函数是浅拷贝 | 代码示例 - 浅拷贝造成的问题 )
  • 【Selenium】webdriver.ChromeOptions()官方文档参数
  • pytorch代码实现之动态卷积模块ODConv
  • 动态规划:子序列问题(C++)
  • ORACLE的分区(一)
  • 【数据结构】C++实现二叉搜索树
  • Python中Mock和Patch的区别
  • sql server 查询某个字段是否有值 返回bool类型
  • 紫光展锐5G芯T820 解锁全新应用场景,让机器人更智能
  • 秋招前端面试题总结
  • 【入门篇】ClickHouse 数据类型
  • 关于Python数据分析,这里有一条高效的学习路径
  • 基于 json-server 工具,模拟实现后端接口服务环境
  • 想要精通算法和SQL的成长之路 - 课程表II
  • 【sgGoogleTranslate】自定义组件:基于Vue.js用谷歌Google Translate翻译插件实现网站多国语言开发
  • 论文总结《A Closer Look at Few-shot Classification Again》
  • Postman使用_参数设置和获取
  • 【SQL】优化SQL查询方法
  • Linux-相关操作
  • 二十、MySQL多表关系
  • HarmonyOS/OpenHarmony应用开发-DevEco Studio新建项目的整体说明