iPhone上活动顶点着色器采样器的实现限制
我正在尝试在iPhone的顶点着色器中使用采样器。表示PowerVR SGX不支持此功能。然而,它似乎让它在模拟器中工作,尽管不是没有问题 当我尝试在模拟器(iOS 6)中运行此操作时,在编译着色器时收到以下错误消息:iPhone上活动顶点着色器采样器的实现限制,iphone,ios,opengl-es-2.0,glsl,Iphone,Ios,Opengl Es 2.0,Glsl,我正在尝试在iPhone的顶点着色器中使用采样器。表示PowerVR SGX不支持此功能。然而,它似乎让它在模拟器中工作,尽管不是没有问题 当我尝试在模拟器(iOS 6)中运行此操作时,在编译着色器时收到以下错误消息: ERROR: Implementation limit of 0 active vertex shader samplers (e.g., maximum number of supported image units) exceeded, vertex shader use
ERROR: Implementation limit of 0 active vertex shader samplers
(e.g., maximum number of supported image units) exceeded,
vertex shader uses 1 samplers
自从被问到这个问题后,发生了什么变化?他们只是添加了一条(正确的!)错误消息吗?或者现在是否可以在顶点着色器中使用采样器?FingersCross…我有一个完全相同的问题,所以我在WWDC问了几个苹果的OpenGL ES工程师。据他们说,在iOS 4.x的某些设备上,支持从顶点着色器中的纹理进行采样是一个bug,而在iOS 5.x中,这一点已被删除
它从未得到过官方支持,而这个新的错误消息只是描述了它失败的原因。在iOS5.x和大多数运行iOS4.x的设备上,如果您尝试此操作,只会得到一个黑屏,并且没有任何警告。他们所做的只是为这种行为添加一些解释。您能提供着色器代码吗?谢谢!这就是我所怀疑的。看起来我必须在片段着色器中执行锁定,这很好,但在顶点着色器中会快得多:-(@hanno-你可以更具创造性地将查找信息加载到属性中,就像我在这里所做的那样:。但是,这在你的情况下可能不起作用。谢谢你的聪明主意!这可能确实有效,但我有点悲观,我认为在我的情况下它会更快(我的例子是一个基于GPU的光线跟踪器,用于渲染银河系中不透明的尘埃)。如果您感兴趣,这就是我取得的进展:我刚刚实现了您的想法,将其渲染到离屏FBO,并将结果用作纹理查找。它可以工作,而且速度相当快!再次感谢。@hanno-听起来您现在正在片段着色器中进行光线跟踪,对吗?出于好奇,您为什么要使用顶点着色器f还是这本书?