【问题标题】:Implementation limit of active vertex shader samplers on the iPhoneiPhone上主动顶点着色器采样器的实现限制
【发布时间】:2012-12-11 02:37:19
【问题描述】:

我正在尝试在 iPhone 的顶点着色器中使用采样器。 documentation 表示 PowerVR SGX 不支持此功能。然而,at least someone 似乎让它在模拟器中工作,尽管并非没有问题。

当我尝试在模拟器 (iOS 6) 中运行它时,我在编译着色器时收到以下错误消息:

ERROR: Implementation limit of 0 active vertex shader samplers 
(e.g., maximum number of supported image units) exceeded, 
vertex shader uses 1 samplers

自从other question 被问到之后发生了什么变化?他们只是添加了(正确的!)错误消息吗?或者现在可以在顶点着色器中使用采样器吗? 手指交叉...

【问题讨论】:

  • 能否提供着色器代码?

标签: iphone ios opengl-es-2.0 glsl


【解决方案1】:

我有完全相同的问题,所以我在 WWDC 上问了几个 Apple 的 OpenGL ES 工程师。根据他们的说法,在 iOS 4.x 中某些设备上的顶点着色器中对纹理采样的支持是一个错误,而这在 iOS 5.x 中已被删除。

它从未得到官方支持,这个新的错误消息只是描述了失败的原因。在 iOS 5.x 和大多数运行 iOS 4.x 的设备上,如果你尝试这个,你只会得到一个黑屏,没有任何警告。他们所做的只是为这种行为添加一些解释。

【讨论】:

  • 谢谢!这就是我的怀疑。看起来我必须在片段着色器中进行锁定,这工作正常,但在顶点着色器中会快得多:-(
  • @hanno - 你可以对它更有创意,并将你的查找信息加载到一个属性中,就像我在这里所做的那样:stackoverflow.com/questions/10316708/…。但是,这可能不适用于您的情况。
  • 感谢您的聪明想法!这实际上可能有效,但我有点悲观的是,在我的情况下它会更快(我的情况是基于 GPU 的光线追踪器,用于渲染银河系中不透明的尘埃)。如果您有兴趣,这就是我得到的结果:youtu.be/zh2SXx4vHpw
  • 我刚刚实现了您的想法,将其渲染到屏幕外 FBO 并将结果用作纹理查找。它可以工作并且速度更快!再次感谢。
  • @hanno - 听起来你现在正在片段着色器中进行光线追踪,对吗?出于好奇,您最初为什么要为此使用顶点着色器?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-24
  • 2011-05-24
相关资源
最近更新 更多