SubRenderPass QML Type
Rendert einen Teilbereich der Arbeit innerhalb desselben Renderziels wie das übergeordnete „ RenderPass “. Mehr...
| Import Statement: | import QtQuick3D |
| Since: | Qt 6.11 |
| Inherits: |
Eigenschaften
- renderPass : RenderPass
Ausführliche Beschreibung
SubRenderPass ist ein „ Command “, der einen „ RenderPass “ in kleinere, unabhängig voneinander konfigurierte Teile unterteilt, wobei alle Teile dasselbe Renderziel nutzen. Nur der übergeordnete „ RenderPass “ steuert, in welche Texturen gerendert wird (über „ ColorAttachment “ und „ DepthTextureAttachment “) und wann der Pass beginnt (und somit, wann das Renderziel gelöscht wird). Ein SubRenderPass kann weder ein eigenes Renderziel festlegen noch Löschvorgänge steuern – diese werden stets vom übergeordneten Pass geerbt.
Was ein „SubRenderPass“ jedoch steuern kann, ist, was gerendert wird und wie: Er verfügt über eine eigene „ commands “, sodass er eine „ RenderablesFilter “ zur Auswahl einer Teilmenge von Objekten, eine „ PipelineStateOverride “ zur Änderung des Tiefen-/Blend-Zustands, eine andere „ materialMode “ usw. enthalten kann.
Eine typische Anwendung ist eine Forward-Rendering-Pipeline, bei der ein einzelner Farbdurchlauf separate SubRenderPasses für den Hintergrund, opake Objekte und transparente Objekte verwendet. Alle drei Unterdurchläufe schreiben in dieselben Farb- und Tiefentexturen, haben jedoch jeweils einen unterschiedlichen Pipeline-Zustand:
RenderPass {
id: mainColorPass
commands: [
// Render targets are set at the parent RenderPass level only
ColorAttachment { name: "color0"; target: colorTexture },
DepthTextureAttachment { target: depthTexture },
// Sub-pass 1: render the skybox background
SubRenderPass { renderPass: skyboxSubPass },
// Sub-pass 2: opaque objects with depth testing and writing
SubRenderPass { renderPass: opaqueSubPass },
// Sub-pass 3: transparent objects with blending, no depth write
SubRenderPass { renderPass: transparentSubPass }
]
}
// Sub-passes share mainColorPass's render target
RenderPass {
id: skyboxSubPass
passMode: RenderPass.SkyboxPass
}
RenderPass {
id: opaqueSubPass
commands: [
RenderablesFilter { renderableTypes: RenderablesFilter.Opaque }
]
}
RenderPass {
id: transparentSubPass
commands: [
RenderablesFilter { renderableTypes: RenderablesFilter.Transparent },
PipelineStateOverride {
blendEnabled: true
depthWriteEnabled: false
}
]
}Siehe auch RenderPass, RenderablesFilter und PipelineStateOverride.
Dokumentation zu den Eigenschaften
renderPass : RenderPass
Die ` RenderPass `, die bei der Ausführung dieses Befehls als Unterdurchlauf ausgeführt wird.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.