我试图在Android设备上创建噪音屏幕。为了获得随机数,我使用以下公式:
fract((sin(dot(gl_FragCoord.xy ,vec2(0.9898,78.233)))) * 4375.85453)
我已在http://glslsandbox.com/上进行测试,效果完美。
http://glslsandbox.com/的结果如下:
但在手机和平板电脑上,我的结果不同。在Nexus 9上,我收到了这个结果:
但这并不是那么糟糕。在LG-D415上,我收到了这个。
有人能帮我解决这个问题吗?
着色器:
#ifdef GL_ES
precision mediump float;
#endif
float rand(vec2 co){
return fract((sin(dot(co.xy ,vec2(0.9898,78.233)))) * 4375.85453);
}
void main() {
vec2 st = gl_FragCoord.xy;
float rnd = rand(st);
gl_FragColor = vec4(vec3(rnd),1.0);
}
sin()
的实现可能是系统特定的。查看这个问题的答案可以更好地了解您的噪音/随机函数如何工作。 - plastique