トップページ > プログラム > 2014年03月24日 > 16BiIMXL

書き込み順位&時間帯一覧

24 位/199 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000111000000000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
OpenGLスレ Part20

書き込みレス一覧

OpenGLスレ Part20
529 :デフォルトの名無しさん[sage]:2014/03/24(月) 10:54:27.13 ID:16BiIMXL
A付きのFBOをターゲットにしてレンダリングする場合
アルファブレンドオフにしてるときはそのまま出力アルファが書き込まれるみたいだけど
アレファブレンド有効にしてるときターゲットに書き込まれるアルファ値がどうなってるかの
詳細な仕様てどこかにある?

具体的には今アルファに拡張情報仕込んでるFBOがあって
このFBOへレンダリングする物体で半透明を使う必要が出てきた
RGB成分に関してはFragColor.aに指定した値でターゲットとブレンドが行われているようだが
Aには一定の値が書き込まれているみたい

フラグメントシェーダからブレンドに使う係数と
ターゲットに書き込みたいA値を別に指定して出力できるとベストなのですが
OpenGLスレ Part20
530 :デフォルトの名無しさん[sage]:2014/03/24(月) 11:04:10.69 ID:16BiIMXL
それかopenGLにDirectXのWRITEENABLEに相当するような機能ってあります?
それがあれば最悪2passでなんとか出来るのですが
OpenGLスレ Part20
533 :デフォルトの名無しさん[sage]:2014/03/24(月) 12:40:15.40 ID:16BiIMXL
>>532
オフスクリーンレンダリング用に用意したRGBA32のFBOに
RGBにはそのままカラー要素をレンダリングして
Aには特殊な拡張情報を仕込んでレンダリングしているのです
(ポストエフェクトのため)

それでアルファブレンドを使わなくて良い物体に関しては
シェーダが出力した拡張情報であるAがそのままターゲットのFBOに書き込まれているのですが
アルファブレンドしたい物体の場合、ブレンド係数のアルファと
ターゲットに出力したい拡張情報としてのAの2つを出力する必要があるじゃないですか?
シェーダが出力したFragColor.aはブレンド係数のほうに使用されていて
レンダリングターゲットのFBOには出力と関係ない一定の値が書き込まれているのです
これら2つの値をどうにかして正しく処理したいなと

ちなみにes2.0なのでMRTは使えません
2passにすればどうとでもなるけど1passで何とか出来ないかなぁ?ということです


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。