|
我的地形有4层纹理和一张alpha纹理,我想让当前像素对某个纹理的alpha为0时不做tex2D,于是在PS中加了类似下面的语句:
float4 c1,c2,c3,c4;
if(alpha.x>0.01)
{
c1=tex2D(uTex1,texCoord);
....
....
}
但是我发现加不加if语句开销都没变,只有把tex2D注掉才行。不是说shader model 3.0之后就支持动态分支了吗?为什么我在9600GSO上用动态分支还是会两边都执行后才判断呢?如果这个方法行不通的话各位大侠有啥好的解决方案,请多多指教啦 |
|