我正在读“Ogre3D 1.7入门指南”一书。我编写了一个cg片段着色器,但遇到编译器抱怨,“函数'floor'不支持此配置文件“。Ogre3D cg片段着色器中的“功能”地板“不支持此功能”的解决方案
片段着色器的定义是在这里:
fragment_program MyFragmentShader8 cg
{
source Ogre3DBeginnersGuideShaders.cg
entry_point MyFragmentShader8
profiles ps_1_1 arbfp1
}
的实施是在这里:
void MyFragmentShader8(float2 uv :TEXCOORD0,
out float4 color :COLOR,
uniform sampler2D texture)
{
float num = 50;
float stepsize = 1.0/num;
float2 fragment = float2(stepsize * floor(uv.x * num), stepsize * floor(uv.y * num));
color = tex2D(texture, fragment);
}
感谢您的回答,我试过了,但是这次编译器报告了一个更奇怪的错误! – Liu 2011-03-06 10:13:05
请告诉我们错误,我们可以解决它:-) – 2011-03-06 10:14:29
这次它报告“(48):致命错误C9999:从属纹理操作不符合纹理着色器的限制”。但是第(48)行离着色器实现很远。 – Liu 2011-03-06 10:19:32