自習室

こもります

openFrameworks の Shaderチュートリアル "09 gaussianBlur" のバグ

はじめに

こちらの記事を読んで自分で試していたら、バグ(?)を見つけたので報告

http://www.openframeworks.cc/tutorials/graphics/shaders.html

配布されているコードをそのまま実行すると、ピクセルごとのcolorが不正な値で初期化されて、非常に出来の悪いグリッチになる。こんな感じ。

f:id:AMANE:20141009000608p:plain

環境

すごく、環境依存な気がします。

結論

配布されている shaderBlurX.frag, shaderBlurY.frag の両方で、`vec4 color' をちゃんと0で初期化する。

void main()
{
  vec4 color = vec4(0); // ここを追加

  // 以下略 他は全部配布されているままでOK

正しくブラー出来ています

f:id:AMANE:20141009001159p:plain

再現方法

コードの入手

当該記事で扱っているサンプルのコードは、公式で配布されている.zip には含まれていないので、github から落としてきます

コードの在処はこちら

https://github.com/openframeworks/openFrameworks/tree/master/tutorials/shader

ビルド(Mac + Xcodeの場合)

プロジェクトジェネレータで空のプロジェクトを作成した後、src と bin(shaderのコードを含む) を配布されている物に置き換えます

f:id:AMANE:20141009001833p:plain

上図のbin と srcを、新しくつくったプロジェクトのbin と src につっこみます。

これでXcodeからビルドできる、はず。

さいごに

チュートリアルはすごく役に立ちました。最後の最後に変なバグを踏んだので驚きましたが、それ以外は非常に勉強になりました。ここからがんばりたいっす。