【发布时间】:2011-07-04 11:06:32
【问题描述】:
我正在尝试在我的几何着色器中实现行进立方体算法。所以我将我的数据网格放入 Texture3D 中。现在我想在几何着色器中查找数据,这会引发错误“无法将表达式映射到 gs_4_0 指令集”
这是他引发错误的代码行
cubeVale[0] = dataFieldTex.Sample( samPoint, float3(k, j, i)).a;
希望有人能帮帮我。
ty
【问题讨论】:
我正在尝试在我的几何着色器中实现行进立方体算法。所以我将我的数据网格放入 Texture3D 中。现在我想在几何着色器中查找数据,这会引发错误“无法将表达式映射到 gs_4_0 指令集”
这是他引发错误的代码行
cubeVale[0] = dataFieldTex.Sample( samPoint, float3(k, j, i)).a;
希望有人能帮帮我。
ty
【问题讨论】:
Sample() 仅适用于像素着色器,因为它通过获取纹理坐标的导数自动计算要使用的 mipmap lod,而导数仅在像素着色器中可用。
MSDN 有一个list of texture object methods and the shader profiles they work in。对于 gs_4_0 配置文件,您可以选择 Load()、SampleLevel() 或 SampleGrad()。您可能需要 SampleLevel(),尤其是当您的 Texture3D 只有一个 mip 级别时。
【讨论】: