带有多个键的QT3D QML RenderPassFilter似乎存在错误

带有多个键的QT3D QML RenderPassFilter似乎存在错误,qml,qt3d,Qml,Qt3d,我刚开始使用QML创建QT3D场景。 我想过滤使用RenderPassFilter渲染场景的哪些元素。 下面是我的非常简单的渲染器: import Qt3D.Core 2.0 import Qt3D.Render 2.0 Viewport { id: root property color clearColor: Qt.rgba(0, 0, 0.2, 1) property Camera mainCamera RenderSurfaceSelector { id: s

我刚开始使用QML创建QT3D场景。 我想过滤使用RenderPassFilter渲染场景的哪些元素。 下面是我的非常简单的渲染器:

import Qt3D.Core 2.0
import Qt3D.Render 2.0

Viewport {
  id: root
  property color clearColor: Qt.rgba(0, 0, 0.2, 1)
  property Camera mainCamera

  RenderSurfaceSelector {
    id: surfaceSelector

    // Clear Buffer
    ClearBuffers {
      buffers: ClearBuffers.ColorDepthBuffer
      clearColor: root.clearColor
      NoDraw {}
    }


    RenderPassFilter {
      matchAny: [FilterKey{name: "type"; value: "filter1"}] // <-- THIS LINE IS THE FILTER 

      CameraSelector {
        id: selector
        camera: mainCamera
      }
    }
  }
}
将显示具有筛选值
filter2
的对象集,而不是
filter1

现在我的问题是matchAny字段是一个列表,所以我希望它能够包含几个元素。不幸的是,下面的代码根本没有显示任何元素

RenderPassFilter {
  matchAny: [FilterKey{name: "type"; value: "filter1"}, FilterKey{name: "type"; value: "filter2"}] // <-- THIS LINE IS THE FILTER 

  CameraSelector {
    id: selector
    camera: mainCamera
  }
}
RenderPassFilter{

matchAny:[FilterKey{name:“type”;value:“filter1”},FilterKey{name:“type”;value:“filter2”}]/好的,经过多次尝试,我得到的是:

1) 我在问题编辑中写的是正确的:使用

RenderPassFilter {
  matchAny: [FilterKey{name: "type"; value: "filter1"}]
  // ... stuff
}
表示如果渲染过程至少包含过滤器
FilterKey{name:“type”;value:“filter1”}

2) 测试过程是否具有类型
filter1
filter2
的唯一方法是创建两个不同的RenderPassFilter:

RenderPassFilter {
  matchAny: [FilterKey{name: "type"; value: "filter1"}]
  // ... stuff
}
RenderPassFilter {
  matchAny: [FilterKey{name: "type"; value: "filter2"}]
  // ... stuff
}
RenderPassFilter {
  matchAny: [FilterKey{name: "type"; value: "filter1"}]
  // ... stuff
}
RenderPassFilter {
  matchAny: [FilterKey{name: "type"; value: "filter2"}]
  // ... stuff
}