一. shader入门
一. shader入门
这里我选用shaderToy来编写这一系列文章, 使用shaderToy比较方便shader程序的运行, 而不用编写其它与shader无关的内容, 如果你要将shader应用到其他程序像Unity3D, Cocos, Three.js中, 请自行去网上搜索如何使用, 这里就不再赘述, 本系列只关注于shader语法, 效果层面的东西.
Ps. shaderToy上有许多炫酷的shader程序, 作为参考是非常nice的
什么是shader ?
Shaders 是一系列的指令,但是这些指令会对屏幕上的每个像素同时下达 。你的程序就像一个 function(函数),输入位置信息,输出颜色信息 ,当它编译完之后会以相当快的速度运行 。
什么是GLSL ?
GLSL 代表 openGL Shading Language,openGL 着色语言
第一个shader
void mainImage(out vec4 fragColor, in vec2 fragCoord){
//归一化的屏幕坐标(from 0 to 1)
vec2 uv = fragCoord/iResolution.xy;
vec3 col = vec3(1.0, 0.0, 0.0);
fragColor = vec4(col, 1.0); //输出color
}
如何运行shader
运行shaderToy程序的方式这里我推荐三个
vs code
1. 在vs code中下载ShaderToy和shader语法支持插件
2. 新建一个文件, 选择语言为glsl
3. 将上面的shader复制到新建的文件中
4. 右键, 选择shader GLSL Preview
5. 如果shader没有错误就是如图所示了
以上就是如何在vs code中运行shader的基本流程了
KodeLife
1. 选择shaderToy
2. 将mainImage替换掉
shaderToy网站
如何在shaderToy网站上运行, 请自行百度, 我就不在这里说了,
恭喜你! 读到这里你就能让一个shader程序跑起来了, 后续文章将讲述更多关于如何编写shader的知识.