Textureの色の乗算について
ポテトサラダ  2017/01/01(Sun) 15:46
Siv3DのTextureは色を乗算して描画することができます。
しかし、基準の色が白なので、白を乗算する(明るくする)ことができないように思います。
Siv3Dの機能内でそれを実現することは可能でしょうか?
記事編集
Reputeless  2017/01/03(Tue) 00:06
texture.draw(Color(220, 120, 100));
のような Siv3D の 2D 描画における標準の色の乗算は

[0<= r, g, b <= 1.0]
ColorF(r_1, g_1, b_1) に対して ColorF(r_2, g_2, b_2) を乗算した結果が ColorF(r_1 * r_2, g_1 * g_2, b_1 * b_2) となることを意味します。

ColorF(1.2, 1.5, 2.0) のような色を乗算できれば良いのですが、
2D 描画では Color 型に変換する過程で Color(255,255,255) に Clamp されてしまうので実現できません。

この場合はカスタム 2D PixelShader を使います。

https://github.com/voidproc/siv3d_examples
にある「ピクセルシェーダでテクスチャを白く点滅させるエフェクト」が近いサンプルコードです。
編集
ポテトサラダ  2017/01/04(Wed) 20:50
新年早々にありがとうございます!
わかりやすい説明までくださって感激です。なるほど、理屈としてはそういった構造なんですね。浅学の至りで恥ずかしい限りです。
さっそく試してみようと思います。今年も引き続き頑張っていきます。
編集
件名
Re: Textureの色の乗算について
名前
コメント
画像添付


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

- WEB PATIO -