0

私の現在のレンダラーは、頂点の位置と色によってフォームを描画します。まだテクスチャを処理できません。

struct Form
{
    unsigned int Positions, Colors, Elements, Program;
};

ここで、テクスチャの機能を実装したいと思います。最終的なゲームでは、テクスチャのないフォームではなく色が存在するため、並行機能を開発するのではなく、色機能を置き換えたいと考えています。

そのため、レンダラーは頂点の位置とテクスチャ座標によってフォームを描画する必要があります。

struct Form
{
    unsigned int Positions, Coordinates, Elements, Texture, Program;
};

ここまでは順調ですね。しかし、テクスチャなしでレンダリングする機能がなければ、画像ファイルが存在しないか、何らかの理由でロードできない場合、アプリケーションはフォームを描画できません。したがって、画像ファイルを読み込めない場合は、特定の単色 (ピンクなど) へのフォールバックを実装したいと考えています。

2つの機能を完全に開発せずに、このフォールバックを実現するにはどうすればよいですか? 一般的なアプローチはありますか?これをシェーダーで実現できたらいいのにと思います。または、ピンクのテクスチャをビデオ カードに送信して、すべてのフォームを同等に扱うこともできます。悲しいことに、それを実装する方法、または可能かどうかさえわかりません。

4

2 に答える 2

4

この問題は、手続き的にダミーのチェッカー テクスチャを作成し、有効なテクスチャを持たないオブジェクトに割り当てることで解決しました。頂点の色やメッシュの色に基づいていませんが、機能します。また、シェーダーの変更は不要で、ヌル テクスチャをチェックするための数行のコードのみが必要です。

于 2013-01-03T15:32:21.703 に答える
1

テクスチャがバインドされていないテクスチャ ユニットからサンプリングすると、取得したサンプルは常に白になります。完全なテクスチャ バウンドなしでテクスチャからサンプリングしてもエラーにはなりません。したがって、その白を使用して、フォールバック カラーで調整することができます。

于 2013-01-03T15:33:26.760 に答える