2016-08-04 8 views
1

私は遅延レンダラーにライトボリュームを使用しようとしています。しかし、私はステンシル操作の問題に遭遇します。 今、私はフォーマットVK_FORMAT_D32_SFLOAT_S8_UINTの深度/ステンシルアタッチメントを使用しています。照明のサブパスでは、位置を再構成するために奥行きを読み取り、光量をマスクするためにステンシルを読み書きする必要があります。 ライティングサブパスには、入力添付ファイルとして深度/ステンシルを追加したいが、深さの添付ファイルとして追加する必要がありますが、これらは同時に明らかに不可能な異なるレイアウトを必要とします。サブパスに同じ(深さの)アタッチメントを読み書きする

今は、同じサブパスの入力添付ファイルと深度添付ファイルの両方に同じ添付ファイルを参照しています。 入力添付ファイルとして、レイアウトはVK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALで、奥行き添付ファイルとしてはレイアウトはVK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL(妥当性検査エラーは何もありません)であり、私のステンシル操作は実行されません。

深さとステンシルの2つの異なる添付ファイルを作成することができましたが、それはメモリを増やすことになります。ですから、私の質問は、同じ深度/ステンシルの添付ファイルを読み書きできるサブパスをどのように設定するのですか? (単一のパイプライン内でも)

+0

レイアウトを一般的に使用できるはずです –

答えて

1

これらは

ナンセンス異なるレイアウトを必要とします。それはGENERALのレイアウトです。

入力添付ファイルおよび深さの両方として使用するアタッチメント/ステンシルアタッチメントがVK_IMAGE_LAYOUT_GENERALまたはVK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALレイアウト

明らかに後者のいずれかである必要がありますあなたのための便利ではありません。仕様でも、明示的にアップすることをもたらします;)

関連する問題