一部のゲームでは、透明性のために従来のアルファの代わりにディザリングパターンを使用しているのはなぜですか?


24

最近、私はいくつかの3Dゲーム(例:)でGTA IVある種の順序付けられたディザリングを使用して、透明度/アルファをシミュレートしています。

ポリゴンは通常のように透明ではありませんが、代わりに透明度をシミュレートするために左から右に徐々に切り替わるディザリングテクスチャをレンダリングします。

ここに画像の説明を入力してください

この効果は不快ではありませんが、最初は驚くべきものです(従来のアルファブレンディングとは対照的)

それが生み出す視覚的な美的効果を除いて、いくつかのゲームがこれを行う理由はありますか(パフォーマンスの向上、帯域幅の節約、または私が考えていない他の何か)?

Webで検索しましたが、この手法については何も見つかりません。


ピクセルアートスタイルと一緒になったようです。
マイケルハウス

@ Byte56ピクセルアートスタイル?GTA IV?え?
ネイサンリード

@NathanReed Heh、GTA IVではありません。OPは最近ゲームでそれを見たことに言及しています。
マイケルハウス

1
近距離平面に近づきすぎている3Dオブジェクトをフェードするときに、アルファブレンディングよりもこの手法の方が快適だと思います。
アンドレアス

回答:


27

これは、遅延シェーディングを使用するゲームの透明性に対するかなり一般的なアプローチです。遅延シェーディングでは、適切な透明度はまったく機能しません。1つのサーフェスのデータ(深さ、法線ベクトル、色など)のみが各ピクセルに保存でき、適切な透明度には、ピクセルでオーバーラップする複数のサーフェスが含まれるため、それぞれが独立している必要があります点灯。

ゲームエンジンがこれに対処する方法はいくつかあります。

  • 透明なサーフェスにはフォワードシェーディング(おそらく照明モデルを減らして)を使用し、不透明なサーフェスにはディファードシェーディングを使用します。透明な表面は、背面から前面への並べ替えで個別のパスで描画する必要があります。
  • ディザリングを使用します。ディザリングはより一般的にスティップリングまたはスクリーンドア透明度として知られていますが、ピクセルごとに1つのサーフェスのみを提供するため、遅延シェーディングで機能します。これはLODトランジションで特にうまく機能します。これは通常、固定時間で終了し、点描が見える時間を制限するためです。たとえば、建物のガラス窓にはあまり適していません。
  • 点描を使用することもできますが、その後、点描されたピクセルを再結合するポストプロセスブラーを適用し、適切な透明度の近似値を与えます。Volitionはこれを「推論された照明」という名前で、Saints Row the Third(およびおそらく他のゲームの一部)で行います。これは非常にきれいに見えますが、ポストプロセスブラーは高価です。
  • そしてもちろん、順序に依存しない透明化メソッドはすべてありますが、それらを使用するゲームは知りません。これまでのところ、これらは技術デモ用です。

また、これらのアプローチを組み合わせて使用​​することもできます。たとえば、ガラスウィンドウのフォワードシェーディングとLODトランジションの点描です。

一部のゲームでは、ソフトシャドウに点描を使用していることにも注意してください。これはパフォーマンスのトレードオフです。より良いシャドウは、ピクセルシェーダーでより多くのテクスチャサンプルを必要としますが、これには時間がかかりますが、使用するサンプルを少なくし、それらの位置をランダムにオフセットすることで、見た目の良い結果を得ることができます。ランダムオフセットは点描効果を生み出します。


遅延シェーディングテクニックについて知りませんでした(en.wikipedia.org/wiki/Deferred_shadingで説明 )。また、アルファ問題の可能性についても話します。今理にかなっています。答えてくれてありがとう
tigrou

0

これは、パフォーマンスの単純なトレードオフです。アルファブレンディングでは現在のカラーバッファーからの読み取りが必要ですが、この種のディザリングは書き込み専用(またはもちろん破棄専用)です。

この手法とマルチサンプリングを組み合わせることができます。マルチサンプリングは、アルファカバレッジと呼ばれます


どのような「パフォーマンスのトレードオフ」について話しているのですか?シェーダーで廃棄を使用すると、Early-Zはオフになります。ブレンドはハードウェアで行われ、高速です。
タラ

実際に、高解像度で適切なシーンのエンジンでテストしました。すべてのジオメトリのブレンドを有効にするか無効にするかによって、パフォーマンスの違いはまったくありませんでした。ディザリングは通常、遅延レンダリングで使用されるため、Nathan Reedの答えは正しいです。
タラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.