CG float4数学比浮动数学慢4倍?

时间:2013-10-29 11:06:35

标签: performance opengl shader hlsl cg

我在一个名为 half H 的变量上写了20个片段数学运算。然后我为 half4 XYZH 运行了5个类似的数学指令....第二个着色器非常慢!我完全惊讶,似乎慢了4倍!我在GTX 470上.H是一个程序纹理高度图,XYZ将是纹理每个点的法线,用于点亮纹理超级细节。

一半数学上的数学是否比半数慢4倍?

这段代码的运行速度比我想象的要慢很多,有什么我错过的吗?

        half4 sel ( half s, float x){       
            if(s<=0) {half sins=tri(x*2.2); return half4(1-abs(sins),abs(sins),0,sins);} //XYZH     
            //else if(s==1){return tri(x);}
        }

        half4 frag (v2f i) : COLOR
        {
            float3 pos = mul (_Object2World, i.uv).xyz;
            float3 posb = mul (_Object2World, i.uv).xyz;

            half4 ht = (sel(0,pos.x));
            half4 g1 =(HSVtoRGB(float3(.2+ht.w,.43*c3/2,.476322+ht.w*c1)))*(2*i.color); 
            return g1;
        }

1 个答案:

答案 0 :(得分:0)

是。算术完成了四次。

此外,混合half和float操作可能会删除使用half的所有优势。