我一直在尝试在移动设备上使用 Unity 的 TiltShift,尽管结果在编辑器上看起来很棒,但它在 Android 设备(HTC one M7)上“不起作用”。当在Android设备上应用着色器时,结果与根本没有应用着色器时基本上没有区别。
原始(未应用着色器):
应用于编辑器的着色器:
在 Android 设备上应用着色器:
有人可以告诉我为什么会出现这种情况吗?我知道一些较弱的 GPU 将无法处理某些着色器。但据我所知,如果是这样的话,着色器将被丢弃并且不被使用。我使用logcat并没有发现类似如下的日志:
The image effect (<shader name here>) has been disabled as it's not supported on the current platform
因此,它应该表明着色器可以被处理,因为 GPU 可以处理所有函数调用。因此,着色器不应该在移动设备上产生与编辑器上的结果相同的结果(或至少相似的结果)吗?
我确实为 TiltShift 着色器使用了较小的样本大小(使用 12 个而不是 28 个)。但这仍然无法解释为什么着色器在编辑器和移动设备上的行为如此不同。
我对着色器很陌生,如果我做错了什么,请对我大喊大叫。非常感谢:)
我使用的是 Unity 4.6,屏幕截图只是一个 3D 立方体 + 其背后的游戏屏幕截图。
最佳答案
您需要设备上的着色器模型 3 和深度纹理支持才能使其在设备上运行。对于移动设备来说,着色器模型 3 相对较新,因为它随 OpenGL ES 3.0 一起提供。检查此页面了解更多信息: http://docs.unity3d.com/Manual/script-TiltShiftHdr.html 。像 HTC One 这样新的移动设备没有它,这相当奇怪,但就是这样。
关于android - Unity Tilt Shift Shader 在移动设备 (Android) 上的视觉效果不佳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30993555/