09/01/27 21:42:40
なんでミップマップ使うと軽くなるか分かってないんだろうな・・・
float4 PixScene( float4 Diffuse : COLOR0,float2 Tex0 : TEXCOORD0 ) : COLOR0
{
return tex2D( g_Texture, Tex0 ) * Diffuse;
}
このソースで速度が上下するのはtex2D()の部分。
テクスチャが大きすぎてキャッシュに乗らない場合は1サンプルごとに
メモリからの読み込みで帯域を食ってしまうが、キャッシュに乗るくらい
小さければキャッシュからの読み出しができるので大変高速に読み出せる。
ミップマップを使うと過剰なサンプリングを回避できる。
命令数と描画ピクセル数だけでは速度は決まらない。
テクスチャサイズが256x256で、-2.5をサンプリングしたら
-640&(256-1)の計算でサンプルピクセルが出る。
この計算がどの程度重いかは考えてくれ。