ShaderToy中案例的移植
2020-02-05 本文已影响0人
飞羽田海
-
前言:ShaderToy上有很多脑洞新奇、酷炫的案例,能激发我们学习OpenGL的热情。本文介绍将ShaderToy上的案例移植到iOS上需要注意的点。
-
ShaderToy中的案例,片源着色器的代码基本不用更改,不过需要注意几个内置变量和一些代码在GLSL语法中的写法。
void mainImage() 对应glsl中的 void main()函数; fragColor变量对应glsl中的内置变量gl_FragColor; vec2 uv = fragCoord.xy / iResolution.xy 这段代码的含义就是求得画布的纹理坐标[-1,1]; iTime 代表程序执行的时间,单位为秒(second);
另外还需提醒的就是:如果片元着色器中的运算很复杂、耗时,此时就需要把渲染的代码放到子线程中,减少主线程的负担。
Demo效果如下:
第一次.gif