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