我正在用 C++ 编写体素引擎,并且正在实现 Vulkan 渲染器。我决定用 HLSL 编写着色器,并通过 SPIRV-Cross 翻译它们。然而,这给我带来了一个问题——glslang 的 HLSL 编译器不允许采样器。例如,这个像素着色器:
uniform sampler2D tex;
float4 main(float2 uv : TEXCOORD0) : COLOR0 {
return tex2D(tex, uv);
}
给出这个编译器输出:
Expected Sampled Image to be of type OpTypeSampledImage
%19 = OpImageSampleImplicitLod %v4float %17 %18
我不知道我是否应该在 GLSL 中编写我的着色器,或者使用不同的库。任何帮助,将不胜感激。