Qt 5.5 的 Qt3d 的 Assimp 示例使用 ForwardRenderer。
我复制了代码,并在main.qml
QtCreator 中显示该名称下的红线表示未知组件。点击那个词不会带我去任何地方。
该程序正在编译,没有任何错误,运行时只显示一个蓝色窗口。
什么是 ForwardRenderer?为什么那里有红线?
Qt 5.5 的 Qt3d 的 Assimp 示例使用 ForwardRenderer。
我复制了代码,并在main.qml
QtCreator 中显示该名称下的红线表示未知组件。点击那个词不会带我去任何地方。
该程序正在编译,没有任何错误,运行时只显示一个蓝色窗口。
什么是 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 以及它如何处理正向渲染器:http ://www.kdab.com/qt3d-2-0-framegraph/
ForwardRenderer 本身不是 FrameGraph 节点类型。它是为方便用户而提供的前向渲染器的默认 FrameGraph 树实现。
通过检查 C++,我能够ForwardRenderer
完全在 QML中重新创建
// 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 中的一个错误。它不应该被标记为错误。