Qt3DExtras::QForwardRenderer Class
class Qt3DExtras::QForwardRendererQForwardRenderer 提供了一个前向渲染器的默认FrameGraph实现。更多内容...
| 标题: | #include <qforwardrenderer.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3dextras) target_link_libraries(mytarget PRIVATE Qt6::3dextras) |
| qmake: | QT += 3dextras |
| 在 QML 中: | ForwardRenderer |
| 继承自: | Qt3DRender::QTechniqueFilter |
| 状态: | 已弃用 |
该类已弃用。我们强烈建议在新代码中不要使用它。
属性
|
|
公共函数
| Qt3DRender::QClearBuffers::BufferType | buffersToClear() const |
| Qt3DCore::QEntity * | camera() const |
| QColor | clearColor() const |
| QSize | externalRenderTargetSize() const |
| float | gamma() const |
| bool | isFrustumCullingEnabled() const |
| bool | showDebugOverlay() const |
| QObject * | surface() const |
| QRectF | viewportRect() const |
公共槽位
| void | setBuffersToClear(Qt3DRender::QClearBuffers::BufferType) |
| void | setCamera(Qt3DCore::QEntity *camera) |
| void | setClearColor(const QColor &clearColor) |
| void | setExternalRenderTargetSize(const QSize &size) |
| void | setFrustumCullingEnabled(bool enabled) |
| void | setGamma(float gamma) |
| void | setShowDebugOverlay(bool showDebugOverlay) |
| void | setSurface(QObject *surface) |
| void | setViewportRect(const QRectF &viewportRect) |
信号
| void | buffersToClearChanged(Qt3DRender::QClearBuffers::BufferType) |
| void | cameraChanged(Qt3DCore::QEntity *camera) |
| void | clearColorChanged(const QColor &clearColor) |
| void | externalRenderTargetSizeChanged(const QSize &size) |
| void | frustumCullingEnabledChanged(bool enabled) |
| void | gammaChanged(float gamma) |
| void | showDebugOverlayChanged(bool showDebugOverlay) |
| void | surfaceChanged(QObject *surface) |
| void | viewportRectChanged(const QRectF &viewportRect) |
详细说明
前向渲染是 OpenGL 传统上采用的方式。它一次渲染一个对象,并在渲染过程中逐个对对象进行着色,直接将结果渲染到后缓冲区中。
QForwardRenderer 是一个单叶FrameGraph树,其中包含一个Qt3DRender::QViewport 、一个Qt3DRender::QCameraSelector 以及一个Qt3DRender::QClearBuffers 。QForwardRenderer 有一个默认的要求过滤器键,其名称为“renderingStyle”,值为“forward”。如果您需要过滤掉某些渲染技术,应基于该过滤器键进行操作。
默认情况下,视口占据整个屏幕,清屏颜色为白色。锥体剔除功能也已启用。
属性文档
buffersToClear : Qt3DRender::QClearBuffers::BufferType
用于存储待清空的当前缓冲区。默认值为 ColorDepthBuffer
访问函数:
| Qt3DRender::QClearBuffers::BufferType | buffersToClear() const |
| void | setBuffersToClear(Qt3DRender::QClearBuffers::BufferType) |
通知信号:
| void | buffersToClearChanged(Qt3DRender::QClearBuffers::BufferType) |
camera : Qt3DCore::QEntity*
保存用于渲染场景的当前相机实体。
注意:摄像机是一个 QEntity,其组件之一为 QCameraLens。
访问函数:
| Qt3DCore::QEntity * | camera() const |
| void | setCamera(Qt3DCore::QEntity *camera) |
通知器信号:
| void | cameraChanged(Qt3DCore::QEntity *camera) |
clearColor : QColor
保存场景的当前清除颜色。在渲染之前,帧缓冲区会被初始化为该清除颜色。
访问函数:
| QColor | clearColor() const |
| void | setClearColor(const QColor &clearColor) |
通知信号:
| void | clearColorChanged(const QColor &clearColor) |
externalRenderTargetSize : QSize
包含外部渲染目标的大小。当渲染不以窗口表面为目标时(如在surface 中设置的那样),外部渲染目标便会发挥作用。
访问函数:
| QSize | externalRenderTargetSize() const |
| void | setExternalRenderTargetSize(const QSize &size) |
通知信号:
| void | externalRenderTargetSizeChanged(const QSize &size) |
frustumCulling : bool
指示渲染器是否对场景应用视锥体剔除。
访问函数:
| bool | isFrustumCullingEnabled() const |
| void | setFrustumCullingEnabled(bool enabled) |
通知器信号:
| void | frustumCullingEnabledChanged(bool enabled) |
gamma : float
存储渲染器对场景应用的伽马值。
访问函数:
| float | gamma() const |
| void | setGamma(float gamma) |
通知信号:
| void | gammaChanged(float gamma) |
showDebugOverlay : bool
如果为真,将在场景上渲染一个调试覆盖层。它将显示有关运行时渲染状态的详细信息,允许用户开启或关闭日志记录等。
访问函数:
| bool | showDebugOverlay() const |
| void | setShowDebugOverlay(bool showDebugOverlay) |
通知器信号:
| void | showDebugOverlayChanged(bool showDebugOverlay) |
surface : QObject*
保存当前的渲染表面。
访问函数:
| QObject * | surface() const |
| void | setSurface(QObject *surface) |
通知器信号:
| void | surfaceChanged(QObject *surface) |
viewportRect : QRectF
保存当前归一化的视口矩形。
访问函数:
| QRectF | viewportRect() const |
| void | setViewportRect(const QRectF &viewportRect) |
通知信号:
| void | viewportRectChanged(const QRectF &viewportRect) |
© 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.