Qt 3D Render C++ Classes
Qt 3D Render 模块包含使用Qt 3D 支持 2D 和 3D 渲染的功能。更多
自 6.8 版起,该模块已被弃用。我们强烈建议不要在新代码中使用该模块。
命名空间
包含支持 2D 和 3D 渲染的类 | |
用于访问 Renderer 和 QRenderPlugin 类的命名空间 |
类
在Qt 3D 场景中封装 QAbstractLight 对象 | |
三维场景中光线投射的抽象基类 | |
用于提供纹理的基类 | |
封装了创建 OpenGL 纹理图像的必要信息 | |
启用阿尔法覆盖多重采样模式 | |
指定 alpha 参考测试 | |
指定用于 RGB 混合方程和 Alpha 混合方程的等式 | |
封装混合信息:指定输入值(即将绘制的内容)如何影响现有值(已绘制的内容) | |
FrameGraph 节点用于将像素值矩形从渲染目标的一个区域传输到另一个区域 | |
在 GPU 和 CPU 之间交换缓冲区数据 | |
定义一个视点,通过该视点渲染场景 | |
Qt3DRender::QCameraLens 指定投影矩阵,用于为 3D 场景定义相机 | |
允许选择要使用的相机的类 | |
用于清除缓冲区的类 | |
使用 gl_ClipDistance 在着色器中启用额外的 OpenGL 剪贴平面 | |
允许指定哪些颜色组件应被写入当前绑定的帧缓冲区 | |
为 GPU 上的计算着色器发布工作的 QComponent | |
指定启用正面还是背面剔除 | |
启用场景细节视觉叠加 | |
启用重映射写入深度缓冲区的深度值 | |
根据写入样本的深度测试片段着色器的深度值 | |
在Qt 3D 场景中封装定向光对象 | |
为 GPU 上的计算着色器发布工作的 FrameGraph 节点 | |
启用抖动 | |
Qt 3D 场景中特效的基类 | |
在Qt 3D 场景中封装环境光对象 | |
存储滤镜键及其值 | |
所有 FrameGraph 配置节点的基类 | |
定义前后多边形 | |
为 FrameGraph 启用凹面剔除功能 | |
封装几何图形渲染 | |
确定附加 QTechnique 所需的 API | |
过滤将被渲染的实体的方法 | |
控制在框架图形分支中绘制的图层 | |
根据屏幕尺寸控制渲染实体复杂度的方法 | |
由中心和半径定义的简单球形体积 | |
提供一种根据距离或屏幕尺寸启用子实体的方法 | |
指定光栅化线条的宽度 | |
提供一个抽象类,作为场景中所有材质组件类的基础 | |
用于设置内存障碍的类 | |
自定义网格加载器 | |
启用多采样抗锯齿 | |
禁用深度写入 | |
当一个 Qt3DRender::QNoDraw 节点出现在一个 FrameGraph 分支中时,这会阻止渲染器渲染任何基元。 | |
当一个 Qt3DRender::QNoPicking 节点出现在一个 FrameGraph 分支中时,这会阻止渲染器对给定的分支执行拾取选择。 | |
实例化一个组件,该组件可用于通过称为 "拾取 "的过程与 QEntity 进行交互 | |
可通过 QPainter 写入的 QAbstractTextureImage(抽象纹理图像 | |
为名称和值对提供存储空间。这将映射到着色器统一 | |
在对象被拾取时保存信息 | |
选取线段时保存信息 | |
选取点云的一段时保存信息 | |
选取三角形时的信息 | |
可用于提供仅用于拾取的替代 QGeometryView | |
指定如何处理实体拾取 | |
在Qt 3D 场景中封装点光源对象 | |
指定光栅化点的大小。可静态设置或由着色器程序设置 | |
设置计算多边形偏移深度值的比例和步骤 | |
选择目标实体距离阈值内的实体 | |
渲染状态允许控制要执行的光栅化类型 | |
Qt3DRender::QRayCaster 用于在三维世界坐标中执行光线投射测试 | |
通过模型投射光线时的命中细节 | |
类 | |
保存与可用渲染引擎相关的设置 | |
用于渲染捕捉的帧图节点 | |
接收渲染捕捉请求的结果 | |
封装一个渲染通道 | |
为滤镜键和参数矢量提供存储空间 | |
保存与渲染过程相关的设置,并托管活动的框架图 | |
所有渲染状态的抽象基类 | |
FrameGraph 节点提供了一种指定 QRenderState 对象集的方法,以便在执行帧图分支时应用该对象集 | |
提供一种指定渲染表面的方法 | |
封装一个目标(通常是一个帧缓冲区对象),渲染器可将其渲染到该目标中 | |
允许指定渲染目标的附件(无论是色彩纹理还是深度纹理等......)。 | |
提供指定渲染目标的方法 | |
提供加载现有场景的功能 | |
丢弃超出屏幕特定矩形范围的片段 | |
基于屏幕坐标进行光线投射测试 | |
启用无缝立方体贴图纹理过滤功能 | |
FrameGraphNode 用于在图形命令流中插入栅栏 | |
提供指定统一块或着色器结构值的方法 | |
提供对着色器程序的图像访问 | |
封装着色器程序 | |
从加载的图形中生成着色器程序内容 | |
允许在Qt 3D 场景中使用来自单独 OpenGL 上下文的纹理 ID | |
为要使用的排序类型提供存储空间 | |
在Qt 3D 场景中封装聚光灯对象 | |
控制模板平面中各个位的前后写入 | |
指定模板操作 | |
设置模版和深度测试失败时要采取的措施 | |
指定模版测试的参数 | |
指定钢网测试的参数 | |
启用或禁用帧图节点的整个子树 | |
封装技术 | |
用于选择要使用的 Q 技术的 QFrameGraphNode | |
具有 Target1D 目标格式的 QAbstractTexture(抽象纹理 | |
目标格式为 Target1DArray 的 QAbstractTexture(抽象纹理 | |
目标格式为 Target2D 的 QAbstractTexture(抽象纹理 | |
目标格式为 Target2DArray 的 QAbstractTexture(抽象纹理 | |
目标格式为 Target2DMultisample 的 QAbstractTexture(抽象纹理 | |
目标格式为 Target2DMultisampleArray 的 QAbstractTexture(抽象纹理 | |
目标格式为 Target3D 的 QAbstractTexture(抽象纹理 | |
目标格式为 TargetBuffer 的 QAbstractTexture(抽象纹理 | |
目标格式为 TargetCubeMap 的 QAbstractTexture 三维抽象纹理 | |
目标格式为 TargetCubeMapArray 的 QAbstractTexture | |
存储纹理信息,如目标、高度、宽度、深度、图层、包边以及是否启用了 mipmaps | |
保存对纹理内容进行部分更新所需的内容和信息 | |
为纹理提供图像数据 | |
封装从图像源创建 OpenGL 纹理图像所需的信息 | |
存储表示纹理的数据 | |
为 QAbstractTextureImage 提供纹理图像数据 | |
处理纹理加载和纹理属性设置 | |
目标格式为 TargetRectangle 的 QAbstractTexture | |
定义 Qt3DRender::QAbstractTexture 应用于纹理的包边模式 | |
Qt3D 场景上的视口 | |
帧图节点(FrameGraphNode),用于等待图形命令流中的栅栏成为信号 |
详细说明
Qt 3D Render 模块提供了实现 2D 和 3D 渲染所需的方面、组件和其他支持类型,作为Qt 3D 框架的一部分。
要使用该模块的类,请在 C++ 文件中添加此指令:
#include <Qt3DRender>
要与相应的 C++ 库链接,请在 qmake 项目文件中添加以下内容:
QT += 3drender
类、类型和函数在Qt3DRender 命名空间下声明。
概述
Qt 3D 渲染功能支持数据驱动配置,如Qt 3D 渲染框架图所述。
选择渲染后端
渲染方面有两个渲染后端。
- OpenGL 后端(ES 2、ES 3.2、GL 2、GL 3、GL 3.2、GL 4.3)
- RHI 后端(ES 2、GL、DirectX、Vulkan、Metal)
如果您的目标完全是 OpenGL 并使用特定的 OpenGL 功能,那么您最好使用 OpenGL 后端。这是Qt 3D 在 Qt 5 系列中独家使用的 OpenGL 后端。
如果您不使用特定的 OpenGL 功能,但又想针对可能已废弃 OpenGL 的不同平台,那么使用 RHI 后端是更好的选择。
要选择渲染后端,环境变量 QT3D_RENDERER 应设置为 "opengl "或 "rhi"。默认为 OpenGL 后端。
使用 RHI 后端时,可通过将 QSG_RHI_BACKEND 设置为以下值之一,进一步强制使用内部 RHI 后端:
- opengl -> RHI OpenGL 后端
- gl -> RHI OpenGL 后端
- gles2 -> RHI OpenGL 后端
- metal -> RHI Metal 后端
- vulkan -> RHI Vulkan 后端
- d3d11 -> RHI DirectX 11 后端
如果未指定,RHI 将默认使用其推断出的平台最佳后端。
参考
© 2025 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.