我正在讀「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