XNA UNLEASHEDを読んでいるのですが,その中にエンボスエフェクトを作るやり方が載っていたので,前につくったプログラムを利用して,OpenGLで作ってみました。
エンボス★ 1.はじめに…
XNA UNLEASHEDを読んでいるのですが,その中にエンボスエフェクトを作るやり方が載っていたので,前につくったプログラムを利用して,OpenGLで作ってみました。
★ 2.概要
画像のシャープにするプログラムのコードをちょろっと書き換えると,エンボス(浮き出し)エフェクトをつくることができるそうです。
画像のシャープ化のエフェクトとほぼ同じで,ピクセルをサンプリングして色を初期化する代わりに赤,緑,青の値を0.5(灰色)に設定して,アルファ値を1.0に設定します。最後に,赤・緑・青の成分の平均をとって平坦な灰色にみえるようにすればいいそうです。 コードにすると次のようになります。 00023: float4 main ( FragmentInputs input, 00024: uniform sampler2D texture 00025: ) : COLOR 00026: { 00027: float sharpAmount = 25.0f; 00028: float4 color; 00029: color.rgb = 0.5f; 00030: color.a = 1.0f; 00031: 00032: color -= tex2D(texture, input.texcoord - 0.0001) * sharpAmount; 00033: color += tex2D(texture, input.texcoord + 0.0001) * sharpAmount; 00034: color = (color.r + color.g + color.b)/3.0f; 00035: 00036: return color; 00037: } ★ Download
本ソースコードおよびプログラムを使用したことによる如何なる損害も製作者は責任を負いません。
本ソースコードおよびプログラムは自己責任でご使用ください。 プログラムの作成にはMicrosoft Visual Studio 2005 SP1 Professional, Cg Toolkit 2.0 Januaryを用いています。 |