我正在尝试使用texture2D()从计算着色器中的sampler2d纹理中读取值。在PC上工作正常,但在Android移动设备上(使用版本310 es),相同代码的编译失败,出现以下错误:
'texture2D' : type is for Vulkan api only
这个调用是否与计算着色器兼容?
答案 0 :(得分:5)
您的问题不是100%清楚您使用什么工具来编译着色器,还是在运行时编译? texture2D已经在OpenGL(ES)着色器中进行了抽样分析。
对于Vulkan(正如消息所说),有一个" texture2D"用于读取形成与采样器分离的纹理(有关详细信息,请参阅https://www.khronos.org/registry/vulkan/specs/misc/GL_KHR_vulkan_glsl.txt)。
对于OpenGL ES 2.x(及以上版本),您可以使用sampler2D(或sampler2DShadow)从纹理或image2D进行采样,以便在计算着色器中进行读取和写入。