商城模板网站,logo生成器在线制作免费版,汶上网站建设多少钱,互联网行业都有哪些工作赚钱今天一个大厂的学员过来问shadertoy上一些参数的问题#xff0c;因为我之前用过一段时间Godot引擎#xff0c;
我清晰记得Godot官方文档有明确的解释#xff0c;所以整理下发给做特效的同学。 Shadertoy是一个网站#xff0c;它方便用户编写片段着色器并创造出纯粹的魔法。…今天一个大厂的学员过来问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行为相同。