Shader学习笔记(1)- ShaderToy着色器输入参数
来源:互联网 发布:python subprocess pid 编辑:程序博客网 时间:2024/05/20 14:27
最近小弟我研究unity,学习了shader之后,发现图形学真的是很有意思,于是就想深入学习。
碰巧又知道了ShaderToy,这个网站直接帮我们搭好了写shader的平台,直接编辑Pixel Shader(或者叫Fragment Shader),就能够实现一些酷炫的效果。
小弟我打算从零开始研究一些shader的实现方法,把它当成一个读书笔记。
uniform vec3 iResolution; // viewport resolution (in pixels)
uniform float iGlobalTime; // shader playback time (in seconds)
uniform float iTimeDelta; // render time (in seconds)
uniform int iFrame; // shader playback frame
uniform float iChannelTime[4]; // channel playback time (in seconds)
uniform vec3 iChannelResolution[4]; // channel resolution (in pixels)
uniform vec4 iMouse; // mouse pixel coords. xy: current (if MLB down), zw: click
uniform samplerXX iChannel0..3; // input channel. XX = 2D/Cube
uniform vec4 iDate; // (year, month, day, time in seconds)
uniform float iSampleRate; // sound sample rate (i.e., 44100)
虽然在变量声明后有注释,但是有的注释比较让人摸不着头脑。
- iResolution : 当前显示屏幕的分辨率。拿我自己的电脑(显示屏分辨率为1920*1080)举例,例如现在的显示窗口处于全屏状态,那么
iResolution.x
和iResolution.y
就分别为1920和1080,以像素为单位。 - iGlobalTime:当前shader开始运行的时间,以秒计时。
- iTimeDelta:每帧渲染时间,以秒计时。
- iFrame:shader回放帧(这个不是很明白),具体举一个例子就是:我们要播放一个图形移动动画,并且动画有100帧,那么将iFrame/100,能够得到一个0~1的值,可以把它认为是我们动画播放的速度,在这个基础上对图形坐标移动,那么就可以做出图形位移的效果。(参考例子)
- iChannelTime[4]:针对于我们四个输入通道,每个通道的回放时间,以秒计时。
- iChannelResolution[4]:四个输入通道的分辨率,以像素为单位。
- iMouse:获取鼠标位置,xy分量取得当鼠标浮动的坐标位置,zw获得鼠标点击时的坐标位置。
- iChannel0..3:获得四个通道对应的输入。
- iDate:xyzw分别对应年月日时间,以秒为单位。
- iSampleRate:音源采样率。
- Shader学习笔记(1)- ShaderToy着色器输入参数
- Unity Shader 学习笔记(29) 表面着色器(Surface Shader)
- Shadertoy编程学习(1):第一个shader程序
- Unity标准着色器(Standard Shader)参数讲解(一)
- Unity标准着色器(Standard Shader)参数讲解(二)
- Unity标准着色器(Standard Shader)参数讲解(三)
- 【Unity Shader学习笔记】(一)在表面着色器中控制顶点变换
- 【Unity Shader学习笔记】(二)最基本的顶点片段着色器
- GLSL opengl着色器参数传递Shader
- Shader(表面着色器)
- [Shader 着色器] 学习前了解知识
- [Shader 着色器] 学习前了解知识
- [Shader 着色器] 学习前了解知识
- OpenGL学习:几何着色器(geometry shader)
- 【Shader】Unity着色器训练营(1):入门篇
- Unity Shader 学习笔记(十三)表面着色器的顶点动画
- Unity3d 着色器语法(Shader)
- Unity3D着色器Shader入门(一)
- vue-router学习
- SQLite笔记
- Android自定义View你所要知道的(二):Canvas解析
- Oracle数据库如何取连续数据并作分组
- sklearn管道类库使用小结
- Shader学习笔记(1)- ShaderToy着色器输入参数
- 下论文网址
- python中关于字符串修改的问题
- (撤销)搬家通知!!!
- 无序容器
- NOIP 2004 提高组 复赛 alpha 虫食算
- fatal: refusing to merge unrelated histories 解决方案
- [乐意黎原创]PHP编译时configure: WARNING: unrecognized options: --with-mysql
- 字节序