6つのレイヤーを持つキューブマップである1つのカラーアタッチメントを持つフレームバッファーを持っています。ジオメトリシェーダでレイヤードレンダリングを使用しようとしています。単純な三角形をすべてのレイヤーにレンダリングします。しかし、vkCmdBeginRenderPass
ですべてのレイヤーをクリアする方法がわかりません。vkCmdBeginRenderPassですべてのレイヤーをクリアする(Vulkan、レイヤードレンダリング)
vkCmdBeginRenderPass
pClearValues
とclearValueCount
をサポートしていますが、層数を指定することはできません。したがって、最初のレイヤーだけがクリアされます。 clearValueCountを6に設定して6個のクリア値を与えることも役に立ちません。
vkCmdClearAttachments
はレイヤーを指定できるようです。
vkCmdClearAttachments
は唯一の方法ですか、何か迷っていましたか? vkCmdBeginRenderPass
が最初のレイヤーだけをクリアする理由はありますか?ただし、レンダリングはすべてのレイヤーにレンダリングされているようです。
imageViews layerCountが実際に正しくありました。しかし、VkFramebufferCreateInfo.layersは間違っていました(興味深いことに、インテルのドライバーはレイヤーにラスタライズしていますが、レイヤーをクリアしませんでした)、Nvidiaドライバーはレンダリングもクリアもしませんでした。 低レベルのAPI;) – FibHeap