Closed WLiangJun closed 4 years ago
これは以下のような、レンダーテクスチャとアルファブレンドの問題だと思います。 https://qiita.com/luckin/items/43a8a98a88a3ba20e92b
解決方法は以下のようになります。
SrcBlend = D3D11_BLEND_SRC_ALPHA
DestBlend = D3D11_BLEND_INV_SRC_ALPHA
BlendOp = D3D11_BLEND_OP_ADD
SrcBlendAlpha = D3D11_BLEND_ZERO
DestBlendAlpha = D3D11_BLEND_INV_SRC_ALPHA
BlendOpAlpha = D3D11_BLEND_OP_ADD
SrcBlend = D3D11_BLEND_ONE
DestBlend = D3D11_BLEND_INV_SRC_ALPHA
BlendOp = D3D11_BLEND_OP_ADD
SrcBlendAlpha = D3D11_BLEND_ONE
DestBlendAlpha = D3D11_BLEND_INV_SRC_ALPHA
BlendOpAlpha = D3D11_BLEND_OP_ADD
アドバイスありがとうございます。あなたが提案したのはdx11のそのバージョンで、私はあなたが言った通りに変更しても元の問題です(上で述べた2つの問題と違い、上の問題はglfw sampleとsaba_viewerの存在する小さな問題です)。dx11とglfwの2つのsampleを試したんですが、枠と背景色を抜いてアルファブレンドするとおかしいです。これはdx11の問題です: あなたにたくさんの質問をして申し訳ありませんが、本当に解決したいです。
glfw の GLFW_TRANSPARENT_FRAMEBUFFER を使用しているみたいですね。
以下のように描画すればうまくいくかもしれません。
今度、自分でも試してみます。
ありがとうございます。確かにglfwのGLFW_TRANSPARENT_FRAMEBUFFERです。貴重なご提案ありがとうございます。何とかして、この問題を解決できるように頑張ります。私はコンピュータ関連の専門ではないので、この問題は私にとって難しい。時間とエネルギーがあれば試してみても、無理をする必要はありません。でも、後期の更新を楽しみにしています。
@WLiangJun
glfw のサンプルに透明ウィンドウのオプションを追加しました。
888549e25d62eb9644a202de3ecffc1bae1e64c5
simple_mmd_viewer_glfw -option -model
ありがとうございます。ちょっと試してみましたが、あなたの助けで、ついにその二つの問題を解決しました。お忙しい中、わざわざcodeを修正していただきありがとうございます。
解決できたとのことでよかったです。
まず、sabaライブラリを使って、自分のMMDデスクトップマスコットプログラムを作ってみたのですが、窓の背景と枠を透明にしてみたら、モデルがalphaを持っている限り!=0とすると,2つの問題が存在する: 1.もし,外層が半透明であれば,中にまったく不透明なものがあっても,デスクトップの背景の内容が透過してしまう。
2.背景が薄いとモデルが明るさを増しておかしくなる。黒一色の背景でのみ正常に表示される。
sabaのライブラリの面で相応の修正をして、この問題を解決できますか?ありがとうございます。問題の具体的な表現は次の2つのスクリーンショットです: 左正規モデルの場合のcharamin OMPの効果。