今天写了几个pixel shader,都没法正常执行,经过排查,问题锁定在floor()函数的调用上,该函数没有被正常调用。为什么没有被正常调用呢?搜索了一下,发现是pixel shader的版本问题。eg:
fragment_program MyFragmentShader
{
source Ogre3DBeginnersGuideShaders.cg
entry_point MyFragmentShader
profiles ps_1_1 arbfp1
}
我声明的着色器的版本是ps_1_1,将版本改为ps_2_0之后,着色器程序就能正常执行了。