Qt 5.5 的 Qt3D 示例中的 ForwardRenderer 是什么?
What is ForwardRenderer in Qt 5.5's Qt3D examples?
Assimp example of Qt3d of Qt 5.5 uses ForwardRenderer.
我复制了代码,在 main.qml
中,QtCreator 在该名称下显示红线,表示未知组件。单击该词不会带我到任何地方。
程序正在编译,没有任何错误,在 运行 时只显示蓝色 window。
什么是ForwardRenderer?为什么会有红线?
以下是 Qt 站点上的前向渲染器文件:
https://doc.qt.io/archives/qt-5.6/qt3d-dynamicscene-cpp-forwardrenderer-H.html
https://doc.qt.io/archives/qt-5.6/qt3d-dynamicscene-cpp-forwardrenderer-cpp.html
以下是 KDAB 对什么是 FrameGraph 以及它如何处理 Forward Renderer 的解释:http://www.kdab.com/qt3d-2-0-framegraph/
ForwardRenderer is not a FrameGraph Node type in itself. It is a default FrameGraph tree implementation for a forward renderer provided as a convenience for users.
更新:手动重新创建它
通过检查 C++,我能够完全在 QML 中重新创建 ForwardRenderer
// FwdRenderer.qml
RenderSettings {
id: forward
property Camera camera: null
activeFrameGraph: TechniqueFilter {
matchAll: [ FilterKey { name: "renderingStyle"; value: "forward" } ]
RenderSurfaceSelector{
Viewport {
normalizedRect: Qt.rect(0,0,1,1)
CameraSelector{
camera: forward.camera
ClearBuffers{
buffers: ClearBuffers.ColorDepthBuffer
clearColor: Qt.rgba(1.0,0,0,0.1)
}
FrustumCulling{
}
}
}
}
}
}
事实上,这很酷。新类型 FwdRenderer
可以作为 ForwardRenderer
的直接替代品。对理解Framegraph帮助很大,希望对你有帮助。
顺便说一句,红线是那个版本的 Qt Creator 中的一个错误。它不应被标记为错误。
Assimp example of Qt3d of Qt 5.5 uses ForwardRenderer.
我复制了代码,在 main.qml
中,QtCreator 在该名称下显示红线,表示未知组件。单击该词不会带我到任何地方。
程序正在编译,没有任何错误,在 运行 时只显示蓝色 window。
什么是ForwardRenderer?为什么会有红线?
以下是 Qt 站点上的前向渲染器文件:
https://doc.qt.io/archives/qt-5.6/qt3d-dynamicscene-cpp-forwardrenderer-H.html
https://doc.qt.io/archives/qt-5.6/qt3d-dynamicscene-cpp-forwardrenderer-cpp.html
以下是 KDAB 对什么是 FrameGraph 以及它如何处理 Forward Renderer 的解释:http://www.kdab.com/qt3d-2-0-framegraph/
ForwardRenderer is not a FrameGraph Node type in itself. It is a default FrameGraph tree implementation for a forward renderer provided as a convenience for users.
更新:手动重新创建它
通过检查 C++,我能够完全在 QML 中重新创建 ForwardRenderer
// FwdRenderer.qml
RenderSettings {
id: forward
property Camera camera: null
activeFrameGraph: TechniqueFilter {
matchAll: [ FilterKey { name: "renderingStyle"; value: "forward" } ]
RenderSurfaceSelector{
Viewport {
normalizedRect: Qt.rect(0,0,1,1)
CameraSelector{
camera: forward.camera
ClearBuffers{
buffers: ClearBuffers.ColorDepthBuffer
clearColor: Qt.rgba(1.0,0,0,0.1)
}
FrustumCulling{
}
}
}
}
}
}
事实上,这很酷。新类型 FwdRenderer
可以作为 ForwardRenderer
的直接替代品。对理解Framegraph帮助很大,希望对你有帮助。
顺便说一句,红线是那个版本的 Qt Creator 中的一个错误。它不应被标记为错误。