OpenGLでは、「ゼロ状態」レンダリングとは何ですか?


10

最近の就職の面接で、私は自分の近代的なOpenGLと頂点バッファーオブジェクトを使用したレンダリングについて学びました。なぜなら、私の大学では、即時モードレンダリングを使用する固定関数パイプラインしか教えていないためです。インタビュアーは、VBOが「ゼロステートレンダリング」と呼ばれるものに効果的に置き換えられたと私に簡単に割り込んだので、続けます。

すぐに別のテーマに移り、面接官は忙しいスケジュールのために最後に時間切れになったので、私は後でそれが何を意味するかについて尋ねるのを忘れていました。

その後、オンラインで「OpenGLゼロ状態」と「ゼロ状態レンダリング」を検索しましたが、関連すると思われる結果は得られませんでした。ほとんどがOpenGL状態に関するものだけです。

問題の組織は非常に研究に基づいているため、現在ほとんどサポートされていない拡張機能である可能性がありますか、それとも最先端の性質のために使用される用語が異なる可能性がありますか?


「ゼロ状態」でしたか、それとも「ゼロ」という単語が含まれている何かでしたか?私の推測では、彼はオーバーヘッドゼロについて話していました:gdcvault.com/play/1020791
Lasse

彼の実際の言葉が「ゼロ状態」だったと私は100%確信していますが、ビデオを流し読みすることで、それが「聞こえない」可能性は十分にあります。私の仮定は、彼がドローコールに使用される単一の新機能を参照していたということでした。「オーバーヘッドゼロ」は、OpenGLで描画するための新しい推奨される方法ですか?
usm 2014年

6
それは「ゼロ属性」だったのでしょうか?ゼロ属性レンダリング(「属性なしレンダリング」と呼ばれることが多い)、VBOを置き換えます。
Trevor Powell

5
この質問はトピック外ではなく用語の質問は絶対に許可されます。

1
インタビュアーが話していたことは、バインドレスレンダリングとして一般的に知られていることだと私は確信しています。つまり、個々のオブジェクトを変更または利用するためにグローバルハンドルにバインドする必要がなくなります。これを検索すると、より良い結果が得られるはずです。
kevintodisco 2014年

回答:


9

あなたのインタビュアーはバインドレス API について彼自身の言葉で話していました。NVIDIAは、彼らが呼んでいる、すべてのことについて、最近の素敵な発表を行った直接の状態へのアクセス12)。これはVBOを置き換えるものではありません。


編集:実際に、トレヴァー・パウエルの提案を考えてみましょう:

この記事で述べたように、一部の人々は、均一なデータまたはテクスチャをフェッチするジオメトリシェーダーを使用して、属性なしのレンダリングを優先してVBOを削除することを確実に決定できるようです。

誰かがどのようにしてエンジンを完全なスタイルレスに切り替えることを決定できるかを見ることができますが、私がチームにいたら、そのような動きは容認しません:パイプラインのこの概要を注意深く読んだ理由は、少なくなると、頂点FIFOキャッシュは完全にスキップされるため、使用できなくなります。したがって、属性なしの場合、最適化の機会がなくなります。

もちろんこれにはベンチマークが必要ですが、あくまでアプリオリであり、汎用の多目的ソリューションにとっては悪い考えのように思えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.