【发布时间】:2017-02-10 03:41:04
【问题描述】:
问题参考:
http://thebookofshaders.com/03/
#ifdef GL_ES
precision mediump float;
#endif
uniform float u_time;
void main() {
gl_FragColor = vec4(abs(sin(u_time)),0.0,0.0,1.0);
}
Live Code Example
现在是时候再次使用上面的代码了。
1 - 减慢频率,直到颜色变化几乎无法察觉。
2 - 加快速度直到您看到没有闪烁的单一颜色。
3 - 使用不同频率的三个通道 (RGB) 来获得有趣的模式和行为。
对于第一个问题:
1 - 减慢频率,直到颜色变化几乎 不易察觉。
我尝试将u_time 进行除法/乘法运算,结果出现语法错误。 uniform float u_time/2; // ERROR,我只是很难理解作者想让我学习什么。我感到很难在没有理解的情况下继续阅读。
也许作者的问题想让我不要使用abs(sin(u_time)),而是使用另一个函数:
GPU 具有硬件加速角度、三角函数和指数函数。
其中一些函数是:sin()、cos()、tan()、asin()、acos()、 atan(), pow(), exp(), log(), sqrt(), abs(), sign(), floor(), ceil(), fract()、mod()、min()、max() 和clamp()。
如果是这样,我将使用哪个函数来完成下面所述的问题?
我也可以帮助我理解如何解决:2 和 3
2 - 加快速度直到您看到没有闪烁的单一颜色。
3 - 播放不同频率的三个通道 (RGB) 以获得 有趣的模式和行为。
【问题讨论】: