はい、可能です。
最も簡単な解決策は、エンティティからマテリアルを削除することです。 あなたはこのようなものだろう:
Entity {
property bool visible: true // or ideally, dynamically read from a c++ property or whatever suits you
Material {
id: myMaterial
// stuff
}
GeometryRenderer {
id: myRenderer
// stuff
}
components: visible ? [myMaterial, myRenderer] : []
}
別の解決策は、(多分もう少し難しい)あなたの材料に使うエフェクトでフィルタを使用することですが。 エフェクトコンポーネントには、1つまたは複数のRenderPassがあります。これらのそれぞれは、パスがフィルタキーを持つことができるレンダリング:
RenderPass {
id: myPass
filterKeys: [ FilterKey { name: "PassType"; value: "customFilterIdString" } ] // <-- This line here
renderStates: [
BlendEquationArguments {
...
},
...
]
}
それぞれのパスはRenderPassFilterコンポーネントを使用して、あなたのRenderTreeでフィルタリングすることができますレンダリング。これにより、オブジェクト全体のセットをスキップし、パスの実行順序を指定できます。これはもう少し進歩しており、特定のオブジェクトを隠すだけの場合は必要ではないと思っていますが、ドキュメントを読んで、これらのコンポーネントを使って例を探すことを躊躇しないでください