透明な画像への書き込み
ヴート  2023/05/13(Sat) 09:12
MSRenderTextureのアルファ値が0になった透明な画像に図形を書き込みたいです。
現状では、透明なものにFlashしても透明な画像になってしまいますのでこれを解消する方法を探してます。
記事編集
Reputeless  2023/05/13(Sat) 15:33
次のようなブレンドステートを設定すると良いです。

```cpp
# include <Siv3D.hpp> // OpenSiv3D v0.6.9

void Main()
{
Scene::SetBackground(ColorF{ 0.11 });
const Texture emoji{ ..._emoji };
RenderTexture renderTexture{ Size{ 512, 512 } };

while (System::Update())
{
{
const ScopedRenderTarget2D rt{ renderTexture.clear(ColorF{ 0.0, 0.0 }) };
const BlendState bs{ true, Blend::One, Blend::Zero, BlendOp::Add, Blend::One, Blend::Zero, BlendOp::Max };
const ScopedRenderStates2D blend{ bs };
emoji.drawAt(256, 256);
RectF{ 50, 300 - Periodic::Jump0_1(2s) * 100, 50 }.draw(ColorF{ 1.0, 0.5 });
}

for (int32 y = 0; y < 30; ++y)
{
for (int32 x = 0; x < 40; ++x)
{
if (IsEven(y + x))
{
Rect{ (x * 20), y * 20, 20 }.draw(ColorF{ 0.15 });
}
}
}

renderTexture.drawAt(Cursor::Pos()).drawFrame(2, 0);
}
}
```
編集
ヴート  2023/05/13(Sat) 22:27
早速実装し、改善を確認しました。
ありがとうございました!
編集
件名
Re: 透明な画像への書き込み
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -