同じ明るさの色を循環


8

OK。だから私は色のついた粒子の束で取り組んでいるゲームを持っています。それらのそれぞれは独自の色を取得しますが、それらはすべて特定の色合いに近いです。

HSV色空間を使用していることをよりよく説明すると、0〜360(H)で循環するグローバル変数があり、特定の粒子のそれぞれがランダムな量を追加または減算します。

ここに画像の説明を入力してください HSVを使用しているのは、Hを変更するだけで色を切り替えるのが最も簡単な方法だからです。

これは非常に見栄えがよく、すべてのものですが、パーティクルは着色された純粋な光であると想定されています。現在、それらはすべてシェードで色付けされた円ですが、後でグローエフェクトやその他のシェーディングテクニックを追加する可能性があります。

問題は、すべての色合い(HまたはVをいじらない)が、私たちの目で見た明るさの点で同じであるとは限らないことであり、これが問題を引き起こします。たとえば、それらすべてが青の色合いである場合、かなり暗く見えます。

明らかに、シェーダーでこれらのHSVカラーをRGBカラーに変換する必要があり、いくつかの計算を行うと、何が問題なのかがすぐにわかりました...色の輝度が等しくありませんでした!

私が理解しているように、輝度はおおよそ(0.2126*color.r + 0.7152*color.g + 0.0722*color.b)であり、それがすべてがオフになっている理由です。

高輝度を維持しながら、さまざまな彩度(ホイールの度の色)をすべて取得できるようにする方法はありますか?おそらく、HSVとは異なる種類の色を使用する必要があるのでしょうか、それとも、カラーホイール上のxの次数で、yの輝度を持つ色を見つける式ですか?

どうもありがとう!


残念ながらこれには限界があります。マンセル表色系のように知覚的に均一な色空間を見ると、明るい黄色が強い青色よりもはるかに高い知覚値を持っていることがわかります。あなたが均一な知覚価値/輝度を維持したいの手段なら、あなたが得ることができることをどちらかの黄色の色調で濃いの黄土色と対になって豊かなロイヤルブルー、または淡いベビーブルーで鮮やかな黄色。どちらの方法でも、カラーホイールのどこかで彩度を犠牲にします。
DMGregory

1
お気づきのとおり、RGBとHSLは人間の目ではなく、可能な画面の色を中心に設計されています。HUSLHCLご覧ください。L * a * b *を使用することもあります。
amitp

@amitpそれらの色空間はかなり新しいようで、色空間の定義方法と変換方法にいくつかの違いがあります。これに対して最も信頼できるソースはどれですか?
J.Doe、

私はバスに乗っているので、正式な答えは書かない方がいいですが、問題の根底にあるのは次のとおりです。色相、輝度、彩度の3つの変数を接続する方程式システムを解く必要があります。したがって、ここでは、特定の輝度を持つという条件を満たすHとSが与えられた特定の値を検索しています。難しいことではありません。ただし、一部の色は一部の色ほど明るくならないことがすぐにわかります(100Vの黄色のように青を見つけることをお試しください)。画面上で表現できる値を取得するために、値を固定することができます。
Gustavo Maciel 2016

ええ、私はそれに取り組んできました。私は再帰的な式を行っています...そして非再帰的な式(それはうまく機能していません)。
J.Doe

回答:


2

HCYはあなたのニーズに適しているかもしれません。ウィキペディアのHSLおよびHSVページによると、HSVで発生している問題(色相が異なる同じ「V」は人間の知覚に対応しない)はHSLと類似していますが、HCYはあなたのニーズに合う可能性があります- HCYの「Y」は「luma」用です。

ルミナンスは[元のカラーイメージの明るさ]とほぼ同じですが、彩度が高いと多少異なります。対照的に、HSL LとHSV Vは、知覚的明度とは大きく異なります。

HCYはWikipediaのページで「luma / chroma / hue」として説明されています。一方、このページでは、「HCY」の省略形が使用されているように見え、RGBとの変換方法が示されています。


2
代替の分割の提案は、青(0、0、1)のような色では機能しません。目的の輝度に到達する前に、原色の範囲を飽和させる可能性があるためです。プレーヤーの画面上の青色の蛍光体は、任意に明るく駆動することはできません(ただし、HDRは画面の残りの部分を暗くして、青色が同じくらい明るいと錯覚させることもできます。または、輝度ターゲットを0.0722に設定して、全体的に非常に暗い色を犠牲にして、任意の色をその輝度に分割します)
DMGregory

いい視点ね。答えのその部分を改善します。
Jibb Smart、2016

代替案を改善する方法はたくさんありますが、OPが望んでいるような結果を実際に得る前にかなり複雑になるため、代替案を削除しました。HCYで十分です。
Jibb Smart、2016

私はこれのすべてでいくつかの実験をしています。これらの色空間がどのように形成されるかを確認するために、数日後に更新します。本当にありがとうございました!
J.Doe

@DMGregoryは、「全体的に非常に暗い色を犠牲にして、任意の色をその輝度に分割できるように輝度ターゲットを0.0722に設定する」とはどういう意味かについて詳しく説明してもらえますか?
J.Doe、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.