android - Unity Tilt Shift Shader 在移动设备 (Android) 上的视觉效果不佳?

标签 android unity-game-engine glsl shader

我一直在尝试在移动设备上使用 Unity 的 TiltShift,尽管结果在编辑器上看起来很棒,但它在 Android 设备(HTC one M7)上“不起作用”。当在Android设备上应用着色器时,结果与根本没有应用着色器时基本上没有区别。

原始(未应用着色器):

enter image description here

应用于编辑器的着色器:

enter image description here

在 Android 设备上应用着色器:

enter image description here

有人可以告诉我为什么会出现这种情况吗?我知道一些较弱的 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/

相关文章:

java - 如何获取 UTC 日期时间

java - 事件总线订阅问题(Otto - Guava 事件总线)

c# - Unity中如何在两点之间移动物体?

android - 如何将参数传递给 View 模型?

Java 安全类和提供者

iphone - 我的手机和 iPad 在 Unity3d 中使用什么屏幕尺寸

c# - Unity截图错误: capturing the editor too

javascript - 在 JavaScript 中使用 WebGL 着色器语言 (GLSL) 进行任意向量​​数学计算

c++ - 将灰度 OpenCV 图像传递给 OpenGL 纹理

opengl - EmitVertex 给出 "error C1067: too little data in type constructor"