「Ogre3D1.7ビギナーズガイド」という本を読んでいます。cgフラグメントシェーダーを作成しましたが、「関数'floor'はこのプロファイルでサポートされていません」という不平を言いました。
フラグメントシェーダーの定義は次のとおりです。
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);
}