0

Monogame/XNA 用の GUI ライブラリを作成していますが、ボタンにテクスチャを使用する代わりに、構造体を使用してグラデーションとグラデーションの色に関する情報を保持することにしました。次に、構造体に幅と高さを渡すと、格納されている 2 つの色からグラデーションが計算され、正しい寸法と適用されたグラデーションを含むテクスチャが返されます。

私が疑問に思っていたのは、2 色のグラデーション (透明度あり) を計算する最も効率的な方法でした。シェーダー、HSL 変換、白から黒へのグラデーションへの色の適用など、これに対する多くの回答を見てきました。それらのどれも、非常に詳細または提供されたコード例ではありませんでした。これを行う最も効率的な方法は、シェーダーを使用してレンダー ターゲットに描画することだと思いますが、シェーダーの経験はほとんどありません。また、これはライブラリ (.dll) であるため、シェーダーなどのコンテンツを読み込んで描画する方法さえ知りません。

これは私が目指している効果のようなものです: 画像

また、グラデーションのさまざまな方向を許可するように、よりカスタマイズ可能にしようとしています。

public enum GradientStyle
{
    NONE = 0,
            RADIAL,
            HORIZONTAL,
            VERTICAL,
            BLEND
};

これは決して必須ではありません。今のところ、単純なグラデーションの作成方法を知りたいだけです。

4

1 に答える 1