如何保持结果和作业一致,及渐变和动画与视频中一致
#ifdef GL_ES
precision mediump float;
#endif
uniform vec2 u_resolution;
uniform float u_time;
void main() {
vec2 p = ( gl_FragCoord.xy * 2. - u_resolution.xy) / min(u_resolution.x, u_resolution.y);
if (p.x > sin(u_time) && p.x < sin(u_time) + 3.14 / 5.) {
float y = asin(sin(p.x * 10.)) * 0.2;
gl_FragColor = vec4(exp (-abs(p.y - y) * 50.)) ;
} else {
gl_FragColor = vec4(vec3(0.), 1.) ;
}
}
中级 26课时 asin and acos 没有思路
你好,关于文档中讲解是否看到了。
文档地址如下:http://www.icegl.cn/officialcurriculum/168.html#/7%E4%B8%89%E8%A7%92%E5%87%BD%E6%95%B0?id=%e5%87%bd%e6%95%b0%e8%af%ad%e6%b3%95-5
写shader整体思路就是通过现象去思考用什么方法比较好,其实实现效果的方法不只一种,首先你可以思考周期性变换肯定是三角函数,sin和cos其实都可以,然后再观察shader光线中存在粗细分明,且发光的效果,一般就是用反函数或者exp函数。具体写的思路需要写多了才能举一反三
@Jsonco 谢谢