【发布时间】:2012-07-02 20:45:11
【问题描述】:
我正在努力让下一个简单算法在三星 Galaxy SIII 中运行
float rand(vec2 co)
{
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
}
....
vec3 color = texture2D(u_texture, v_texcoord);
gl_FragColor.rgb = color + vec3(rand(gl_FragCoord.xy + time / 1000.0));
....
该代码在三星 Galaxy S1 和 Google Nexus S 中完美地产生了预期的噪音。但在使用 ARM 的 Mali-400/MP4 的新智能手机中却完全失败了。
任何人都可以发现这个算法有什么问题吗?或者也许明白为什么它会失败?
【问题讨论】:
-
失败怎么办?您是否正在检查信息日志中的错误/警告?
-
完全没有错误,根本不显示任何噪声像素。整体图像还可以,但没有任何噪点。
-
嗯,那么不确定。我只是建议一次剥一层,直到你明白为什么。例如。 fract() 有效吗? fract(sin()) 是否有效,fract(sin(dot((()))) 是否有效?等
标签: android opengl-es glsl shader