当我在PC上运行计算着色器时,它可以工作。如果我在Mac上运行它,它不会。基于一些调试,我认为问题在于,无论出于何种原因,重要纹理的 Y、Z 和 W 分量始终为零,即使我强制为它们分配任意值也是如此。
那么:着色器模型会影响计算着色器行为吗?
如果我调用SystemInfo.graphicsShaderLevel,它会返回以下内容:
- 在PC上:50(根据Unity的"着色器模型5.0(DX11.0("(
- 在Mac上:45(根据Unity的"Metal/OpenGL ES 3.1功能(着色器模型3.5 +计算着色器("(
我试图寻找有关该主题的更多信息,但我能找到的最多是这些: https://learn.microsoft.com/en-us/windows/desktop/direct3dhlsl/dx-graphics-hlsl-sm3 https://learn.microsoft.com/en-us/windows/desktop/direct3dhlsl/d3d11-graphics-reference-sm5
而且我找不到任何关于 Unity 所称的"着色器模型 3.5 + 计算着色器"的官方信息。
您使用的图形 API 是金属还是 opengl?请注意,mac 上的 opengl(4.1( 版本不支持计算着色器。
首先确保在Mac上使用金属。