oF : fbo AntiAliasing : Solid back

やりたいこと

* AlphaでCutoutした画像をfbo上で重ねたい
* 画像同士の重なりはないが、Cutoutはしたい(背景を抜きたい)
* -> fbo上もAlpha Blendし、fboをScreenに描画する時も、Alpha Blend.
* 作成したfbo画像は、syphonでunityに送る

問題

fbo.allocate(WINDOW_WIDTH, WINDOW_HEIGHT, GL_RGBA, 4);  
などとしても、エイリアスが見えてしまう。

原因/対策

fboの背景をSolid Backにすることで、ジャギが消える。  

OK : ofClear(0, 0, 0, 255);  
NG : ofClear(0, 0, 0, 0);  

unity側で、どのように使いたいか次第だが、空間に浮かせるタイプの場合は、oFをSolid Backにした上で、unity側は、materialをLegacy/Particles/Additiveなどにすればok。
∵Additiveなので、黒は、透過される。

一方、Additive materialを使用しない場合で、かつ透過させて模様のみを表示したい時は、oFをSolidBackにしてしまうと、背景が抜けない。なので、oFは、透過Backにし、ジャギは目をつむる。画像上、線の太さを調整するなどして、調整。

sample source

Github にsample sourceを上げておいた。


もしよろしければ、サポートをお願いします! 頂いたサポートは、Creatorとしての活動費に充てさせて頂きます。