Haxe で色を混合できるシンプルな照明エンジンを作成しようとしています - API がほとんど同じであるため、フラッシュにタグを付けました。現在、色付きの円を BitmapData にレンダリングしてから、それをゲームの上にレンダリングしていますが、円間の交点をレンダリングするのが非常に困難です。
他の 2 つの図形の交点で構成される図形を描画する方法があるかどうか疑問に思いました (それらは円なので、数学は比較的単純なので、おそらくフラッシュに組み込む必要はありません)。これにより、2 つの円を比較的簡単にレンダリングできますが、3 番目の色を追加するとすぐに、非常に複雑になります... 最悪のシナリオでは、2 つ以上の色を使用することはできません!
最後に、ある種のシェーダーを使用してこの効果を実装することは可能でしょうか? たとえば、ピクセルを描画するたびに、既存の色を見て、2 つの組み合わせを調べます (例: 赤 + 黄色 = オレンジ)。私は Flash のシェーダーについてほとんど知りませんが、Haxe を使用しているので、また違うかもしれません!
ブレンドモードでこの効果をきれいに達成することは不可能だと思います.マゼンタやシアンのようなひどく明るい色は、私の実験からかなり早く生成されます. L*a*b* 色空間を簡単に調査しましたが、実装が非常に複雑 (かつ遅い) ように思われました。
このエフェクトが動作するようになったら、カラー マップでワールド内のピクセル位置を確認し、その結果に基づいてさまざまなエフェクトを適用する予定です。
どんな助けでも大歓迎です!
編集: Javascript にはこの機能が組み込まれているようです: Canvas の 2 つの円の間の交差領域をマークする