Neilyodog Blog

优化Sin函数

不过实际还是要具体测,移动端cpu不一样

拟合结果

文章配图

文章配图

y = 4 * ((speed - k) - (speed-k)*abs(speed-k))

k = floor(speed*0.5+0.5) * 2

float2 speed =  (IN.texcoord * _WaveTiling) + float2(_WaveSpeedX,_WaveSpeedY) * _Time.y;
float2 k = floor(speed*0.5+0.5) * 2;
float2 a = 4 * ((speed - k) - (speed-k)*abs(speed-k));
IN.texcoord.x += clamp(a * _WaveIntensity,-1,1);
IN.texcoord.y += clamp(a * _WaveIntensity,-1,1) * _WaveSpeedY;
half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color;

拟合思路

首先这个函数的结果在[-1,1]区间是对的

y = x - x * abs(x)

文章配图

那么就需要让其他部分的参数重复,尝试一下对默认的x操作

文章配图

文章配图

感觉有点意思,但需要间隔反转

通过测试发现真的可以!

singif

所以就直接把 f替换成2 就可以

文章配图

文章配图

后面的就比较简单了,只要加个系数来调整频率就可以了

测试性能

https://shimo.im/docs/5bqnrRO5BBC74Dqy/ 《Mali Offline Compiler 简单食用指南》

— END —