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

news2024/11/17 17:48:39

今天一个大厂的学员过来问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.coloradmin.cn/o/946952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenHarmony设备截屏的5种方式

本文转载自《OpenHarmony设备截屏的5种方式 》,作者westinyang 目录 方式1:系统控制中心方式2:OHScrcpy投屏工具方式3:DevEcoStudio截屏功能方式4:hdc shell snapshot_display方式5:hdc shell wukong持续关…

【UI 设计】触摸界面设计

触摸界面设计是一种以触摸操作为主的用户界面设计。以下是一些触摸界面设计的要点: 界面布局:设计简洁、直观的界面布局,使用户可以快速找到所需的功能和信息。避免过于拥挤的布局,保持按钮和菜单的大小适中,以便用户能…

android多屏触摸相关的详解方案-安卓framework开发手机车载车机系统开发课程

背景 直播免费视频课程地址:https://www.bilibili.com/video/BV1hN4y1R7t2/ 在做双屏相关需求开发过程中,经常会有对两个屏幕都要求可以正确触摸的场景。但是目前我们模拟器默认创建的双屏其实是没有办法进行触摸的 修改方案1 静态修改方案 使用命令…

ssm+vue校园教务系统源码和论文

ssmvue校园教务系统源码和论文086 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 1、课题背景 信息系统的目的是让人可以高效的进行工作,包括对信息的一-系列操作,如添加信息、修改信…

SystemVerilog interface详细介绍

1. Interface概念 System Verilog中引入了接口定义,接口与module 等价的定义,是要在其他的接口、module中直接定义,不能写在块语句中,跟class是不同的。接口是将一组线捆绑起来,可以将接口传递给module。 2. 接口的优…

李宏毅 2022机器学习 HW2 strong baseline 上分路线

strong baseline上分路线 baseline增加concat_nframes (提升明显)增加batchnormalization 和 dropout增加hidden layer宽度至512 (提升明显) 提交文件命名规则为 prediction_{concat_nframes}[{n_hidden_layers}{dropout}_bn].c…

没有 JavaScript 计时器的自动播放轮播 - CSS 动画

先看效果&#xff1a; 再看代码&#xff08;查看更多&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>计时器</title><style>* {padding: 0;margin: 0;box-siz…

springcloud-gateway简述

Spring Cloud Gateway 是一个用于构建 API 网关的项目&#xff0c;它是 Spring Cloud 生态系统中的一部分&#xff0c;旨在为微服务架构提供动态路由、负载均衡、安全性和监控等功能。 网关工程对应pom文件 <?xml version"1.0" encoding"UTF-8"?>…

kafka消息系统实战

kafka是什么&#xff1f; 是一种高吞吐量的、分布式、发布、订阅、消息系统 1.导入maven坐标 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>2.4.1</version></dependency&…

Python文本终端GUI框架详解

今天笔者带大家&#xff0c;梳理几个常见的基于文本终端的 UI 框架&#xff0c;一睹为快&#xff01; Curses 首先出场的是 Curses。 Curses 是一个能提供基于文本终端窗口功能的动态库&#xff0c;它可以: 使用整个屏幕 创建和管理一个窗口 使用 8 种不同的彩色 为程序提供…

web之利用延迟实现复杂动画、animation

文章目录 效果图htmlstyleJavaScript 效果图 html <div class"container"><div class"ball"></div><input type"range" min"0" max"1" step"0.01" /> </div>style body {display…

有机器视觉工程师假装在工作

没有节假日&#xff0c;没有任何业务时间&#xff0c;去充实自己&#xff0c;甚至都没有时间陪女朋友&#xff0c;甚至都没有时间找女朋友。 没有人休息的工作&#xff1a; 每天上班三个地点&#xff0c;住宿&#xff0c;现场&#xff0c;吃饭的地方。搞得和高考似的&#xff…

【算法训练-哈希】两数之和、三数之和

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是两数之和和三数之和&#xff0c;使用哈希这个基本的数据结构来实现 两数之和【EASY】 照例先从简单往难搞 题干 输入&#xff1a; [3,2,4],6返…

【LeetCode-中等题】148. 排序链表

文章目录 题目方法一&#xff1a;集合排序&#xff08;核心是内部的排序&#xff09;方法二&#xff1a; 优先队列&#xff08;核心也是内部的排序&#xff09;方法三&#xff1a;归并排序&#xff08;带递归&#xff09; 从上往下方法四&#xff1a;归并排序&#xff08;省去递…

【juc】读写锁ReentrantReadWriteLock

目录 一、说明二、读读不互斥2.1 代码示例2.2 截图示例 三、读写互斥3.1 代码示例3.2 截图示例 四、写写互斥4.1 代码示例4.2 截图示例 五、注意事项5.2.1 代码示例5.2.2 截图示例 一、说明 1.当读操作远远高于写操作时&#xff0c;使用读写锁让读读可以并发&#xff0c;来提高…

excel功能区(ribbonx)编程笔记--2 button控件与checkbox控件

我们上一章简单先了解了ribbonx的基本内容,以及使用举例实现自己修改ribbox的内容,本章紧接上一章,先讲解一下ribbonx的button控件。 在功能区的按钮中,可以使用内置图像或提供自已的图像,可以指定大按钮或者更小的形式,添加少量的代码甚至可以同时提供标签。此外,可以利…

Nginx到底是什么,他能干什么?

Ngnix是什么&#xff0c;它是用来做什么的呢&#xff1f; 一。Nginx简介 Nginx是enginex的简写&#xff0c;是一款很优秀的开源的高性能HTTP和反向代理服务器,由于它是用C语言写的&#xff0c;所以速度非常快&#xff0c;性能非常优秀&#xff0c;它主要功能就是反向代理&…

使用安全复制命令scp在Windows系统和Linux系统之间相互传输文件

现在已经有很多远程控制服务器的第三方软件平台&#xff0c;比如FinalShell&#xff0c;MobaXterm等&#xff0c;半可视化界面&#xff0c;使用起来非常方便和友好&#xff0c;两个系统之间传输文件直接拖就行&#xff0c;当然也可以使用命令方式在两个系统之间相互传递。 目录…

Java网络爬虫——jsoup快速上手,爬取京东数据。同时解决‘京东安全’防爬问题

Java网络爬虫——jsoup快速上手&#xff0c;爬取京东数据。同时解决‘京东安全’防爬问题 介绍 网络爬虫&#xff0c;就是在浏览器上&#xff0c;代替人类爬取数据&#xff0c;Java网络爬虫就是通过Java编写爬虫代码&#xff0c;代替人类从网络上爬取信息数据。程序员通过设定…

Spring Cloud Gateway的快速使用

环境前置搭建Nacos&#xff1a;点击跳转 Spring Cloud Gateway Docs 新建gateway网关模块 pom.xml导入依赖 <!-- 网关 --> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifact…