質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

Q&A

0回答

2166閲覧

画像にAlphaを使っても透けない【OF】

seri

総合スコア422

openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

0グッド

0クリップ

投稿2016/10/12 02:59

編集2016/10/12 03:01

イメージ説明
この画像はOpenFrameworksでofxFXとゆうアドオンを取り込んでOpenGl系統のシェーダをPlaneに書き出したものです

画像をよくみるとわかるのですが、背景とPlaneの境界線がみえてしまっています
このシェーダは以下のものでして

C++

1 const float pi = 3.141592653589793238462643383279; 2 3 uniform float time; 4 uniform vec2 mouse; 5 uniform vec2 resolution; 6 7 // How fast it animates 8 float tscale = 1.5; 9 10 float wave(vec2 position, float freq, float height, float speed) { 11 float result = sin(position.x*freq - time*tscale*speed); 12 result = result * 2.0 - 1.0; 13 result *= height; 14 return result; 15 } 16 17 vec3 combo(vec2 position, float center, float size) { 18 19 float offset = pi * (center - 0.5); 20 float lum = abs(tan(position.y * pi + offset)) - pi / 2.0; 21 lum *= size; 22 23 float red = wave(position, 5.0, 0.9*size, 1.008); 24 float green = wave(position, 3.5, 0.5*size, 2.23); 25 float blue = wave(position, 1.5, 1.2*size, 1.42); 26 27 return vec3(lum + red, lum + green, lum + blue); 28 } 29 30 void main(void) { 31 // normalize position 32 vec2 position = gl_FragCoord.xy / resolution.xy; 33 34 vec3 result = vec3(0.0, 0.0, 0.0); 35 result += combo(position, 0.5, 0.05); 36 37 gl_FragColor = vec4(result,0); 38 39 }

最後の行のgl_FragColorですべてのAlphaを0に設定しているにも関わらず、画像のような描画です。
ちなみにDraw時の処理は以下です

C++

1 2 glPushClientAttrib(GL_ALL_ATTRIB_BITS); 3 post.begin(cam);//カメラ設定です 4 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 5 ofEnableBlendMode(OF_BLENDMODE_ALPHA); 6 ofSetColor(255); 7 bloom.draw();//ここでシェーダを書き出しています。

ほかのオブジェクトなどの描画条件から必要のなさそうにみえるものもありますが、順番としてはこのコードとなります。

最終的には、シェーダで黒い部分は完全に透明にして、Pleneの4隅は完全に透明にしたいと思っています。

ちなみにofxFXは↓になります
https://github.com/patriciogonzalezvivo/ofxFX

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問