Top > エフェクト-ガウスフィルタ エフェクト-ガウスフィルタ †・ガウス関数による係数で複数のピクセルを参照、平滑化しスクリーンをぼかす。 描画パス †1.ガウス分布の計算 2.横方向、縦方向、それぞれ一回ずつぼかしならがレンダリングする。 ガウス分布の計算 †const int Dispersion = 5.0; // ガウス散乱率 const int Sampling = 8; // サンプリング数 const float dispersion = Dispersion * Dispersion; const int sample = Sampling / 2; assert((sample > 0) && (sample <= 8)); // 重さ結果格納 float weight_list[sample] = {0}; // 重み計算 float total = 0.0f; for (int i = 0 ; i < sample ; ++i) { float weight = expf(-0.5f * (i*i)/dispersion); total += 2.0f * weight; weight_list[i] = weight; } for (int i = 0 ; i < sample ; ++i) weight_list[i] /= total; ぼかしフィルタ †横軸ぼかし:gauss-h.fx ・VertexShaderの計算は、0.5pixelずらすと自動的に補間してくれるらしいのでそれを期待したコードになっています。 |