Qt 3D渲染 C++类

The Qt 3D Render module contains functionality to support 2D and 3D rendering using Qt 3D. 更多...

命名空间

Qt3DRender

包含启用2D和3D渲染的类

Qt3DRender::Render

命名空间,用于访问Renderer和QRenderPlugin类

Qt3DRender::QAbstractLight

在Qt 3D场景中封装QAbstractLight对象

Qt3DRender::QAbstractRayCaster

3D场景中光栅化的抽象基类

Qt3DRender::QAbstractTexture

用于提供纹理的基类

Qt3DRender::QAbstractTextureImage

封装创建OpenGL纹理图像所需的信息

Qt3DRender::QAlphaCoverage

启用alpha到覆盖的多采样模式

Qt3DRender::QAlphaTest

指定alpha参考测试

Qt3DRender::QBlendEquation

指定用于RGB混合方程和Alpha混合方程的方程

Qt3DRender::QBlendEquationArguments

封装混合信息:指定输入值(将要绘制的)如何影响现有值(已经绘制)

Qt3DRender::QBlitFramebuffer

帧图节点,用于将像素值矩形从渲染目标的一个区域传输到另一个区域

Qt3DRender::QBufferCapture

在GPU和CPU之间交换缓冲区数据

Qt3DRender::QCamera

定义视图点,通过该视图点将渲染场景

Qt3DRender::QCameraLens

Qt3DRender::QCameraLens指定3D场景中Camera的投影矩阵

Qt3DRender::QCameraSelector

允许选择要使用的Camera的类

Qt3DRender::QClearBuffers

用于清除缓冲区的类

Qt3DRender::QClipPlane

启用额外的OpenGL裁剪平面,该平面可以应用于着色器中的gl_ClipDistance

Qt3DRender::QColorMask

允许指定应写入当前绑定的帧缓冲区的颜色组件

Qt3DRender::QComputeCommand

QComponent,用于在GPU上发布compute着色器的工作

Qt3DRender::QCullFace

指定是否启用前向或后向面剔除

Qt3DRender::QDebugOverlay

启用带有场景详细信息的可视化覆盖

Qt3DRender::QDepthRange

启用将深度值重映射到深度缓冲区

Qt3DRender::QDepthTest

将片元着色器的深度值与写入样本的深度进行比较

Qt3DRender::QDirectionalLight

在Qt 3D场景中封装Directional Light对象

Qt3DRender::QDispatchCompute

帧图节点,用于在GPU上发布compute着色器的工作

Qt3DRender::QDithering

启用抗锯齿处理

Qt3DRender::QEffect

Qt 3D场景中效果的基类

Qt3DRender::QEnvironmentLight

在Qt 3D场景中封装环境光对象

Qt3DRender::QFilterKey

过滤键及其值的存储

Qt3DRender::QFrameGraphNode

所有FrameGraph配置节点的基类

Qt3DRender::QFrontFace

定义前向和后向面对的多边形

Qt3DRender::QFrustumCulling

为FrameGraph启用视锥剔除

Qt3DRender::QGeometryRenderer

封装几何渲染

Qt3DRender::QGraphicsApiFilter

识别所需API来用于附加的QTechnique

Qt3DRender::QLayer

筛选渲染哪些实体的方式

Qt3DRender::QLayerFilter

控制帧图分支中绘制的层

Qt3DRender::QLevelOfDetail

根据屏幕上实体的大小控制渲染实体复杂性的方式

Qt3DRender::QLevelOfDetailBoundingSphere

简单的球体体积,由其中心和半径定义

Qt3DRender::QLevelOfDetailSwitch

提供基于距离或屏幕大小的子实体启用方式

Qt3DRender::QLineWidth

指定光栅化线的宽度

Qt3DRender::QMaterial

提供一个抽象类,该类应是场景中所有材质组件类的基类

Qt3DRender::QMemoryBarrier

用于放置内存屏障的类

Qt3DRender::QMesh

自定义网格加载器

Qt3DRender::QMultiSampleAntiAliasing

启用多样本抗锯齿

Qt3DRender::QNoDepthMask

禁用深度写入

Qt3DRender::QNoDraw

当Qt3DRender::QNoDraw节点在一个FrameGraph分支中存在时,这将防止渲染器渲染任何原始图形

Qt3DRender::QNoPicking

当Qt3DRender::QNoPicking节点在一个FrameGraph分支中存在时,这将防止渲染渲染方面为此分支执行选择

Qt3DRender::QObjectPicker

通过称为选择的过程实例化可用于与QEntity交互的组件

Qt3DRender::QPaintedTextureImage

一个可以通过QPainter写入的QAbstractTextureImage

Qt3DRender::QParameter

提供存储名称和值对的空间。这映射到一个着色器统一变量

Qt3DRender::QPickEvent

保存选择时的对象信息

Qt3DRender::QPickLineEvent

保存选择线段时的信息

Qt3DRender::QPickPointEvent

保存选择点云段时的信息

Qt3DRender::QPickTriangleEvent

保存选择三角形时的信息

Qt3DRender::QPickingProxy

可用于提供仅用于选择的备用QGeometryView

Qt3DRender::QPickingSettings

指定如何处理实体选择

Qt3DRender::QPointLight

将点光源对象封装在Qt 3D场景中

Qt3DRender::QPointSize

指定光栅化点的大小。可以是静态设置的,也可以由着色器程序设置

Qt3DRender::QPolygonOffset

设置缩放和步进以计算多边形偏移的深度值

Qt3DRender::QProximityFilter

选择在目标实体距离阈值内的实体

Qt3DRender::QRasterMode

渲染状态允许控制要执行的光栅化类型

Qt3DRender::QRayCaster

Qt3DRender::QRayCaster用于在3D世界坐标中执行射线投射测试

Qt3DRender::QRayCasterHit

通过模型投射射线时的命中细节

Qt3DRender::QRenderAspect

Qt3DRender::QRenderCapabilities

保存与可用渲染引擎相关的设置

Qt3DRender::QRenderCapture

渲染捕获的帧图节点

Qt3DRender::QRenderCaptureReply

接收渲染捕获请求的结果

Qt3DRender::QRenderPass

封装一个渲染通道

Qt3DRender::QRenderPassFilter

为Filter键和参数向量提供存储空间

Qt3DRender::QRenderSettings

保存与渲染过程相关的设置并承载活动框架图

Qt3DRender::QRenderState

所有渲染状态的具体的抽象基类

Qt3DRender::QRenderStateSet

FrameGraph节点提供了一种指定在帧图分支执行期间应用的一组QRenderState对象的方法

Qt3DRender::QRenderSurfaceSelector

提供了一种指定渲染表面的方法

Qt3DRender::QRenderTarget

封装了一个目标(通常是一个帧缓冲区对象),渲染器可以将内容渲染到该目标

Qt3DRender::QRenderTargetOutput

允许指定渲染目标的附加内容(无论是颜色纹理、深度纹理等...)

Qt3DRender::QRenderTargetSelector

提供了指定渲染目标的方法

Qt3DRender::QSceneLoader

提供了加载现有场景的设施

Qt3DRender::QScissorTest

丢弃屏幕正方形区域内特定的矩形部分的片段

Qt3DRender::QScreenRayCaster

根据屏幕坐标进行光线投射测试

Qt3DRender::QSeamlessCubemap

启用无缝立方图纹理过滤

Qt3DRender::QSetFence

用于在图形命令流中插入栅栏的FrameGraphNode

Qt3DRender::QShaderData

提供了一种指定统一块或着色器结构值的方法

Qt3DRender::QShaderImage

提供对着色器程序图像的访问

Qt3DRender::QShaderProgram

封装了一个着色器程序

Qt3DRender::QShaderProgramBuilder

从加载的图中生成着色器程序内容

Qt3DRender::QSharedGLTexture

允许在Qt 3D场景中使用来自分离OpenGL上下文的纹理ID

Qt3DRender::QSortPolicy

提供用于存储将使用的排序类型的存储空间

Qt3DRender::QSpotLight

在Qt 3D场景中封装一个聚光灯对象

Qt3DRender::QStencilMask

控制模板平面中各个位的写入

Qt3DRender::QStencilOperation

指定模板操作

Qt3DRender::QStencilOperationArguments

设置当模板和深度测试失败时采取的动作

Qt3DRender::QStencilTest

指定模板测试的参数

Qt3DRender::QStencilTestArguments

指定模板测试的参数

Qt3DRender::QSubtreeEnabler

启用或禁用整个帧图节点的子树

Qt3DRender::QTechnique

封装了一个技术

Qt3DRender::QTechniqueFilter

用于选择要使用的QTechniques的QFrameGraphNode

Qt3DRender::QTexture1D

具有Target1D目标格式的QAbstractTexture

Qt3DRender::QTexture1DArray

具有Target1DArray目标格式的QAbstractTexture

Qt3DRender::QTexture2D

具有Target2D目标格式的QAbstractTexture

Qt3DRender::QTexture2DArray

具有Target2DArray目标格式的QAbstractTexture

Qt3DRender::QTexture2DMultisample

具有Target2DMultisample目标格式的QAbstractTexture

Qt3DRender::QTexture2DMultisampleArray

具有Target2DMultisampleArray目标格式的QAbstractTexture

Qt3DRender::QTexture3D

具有Target3D目标格式的QAbstractTexture

Qt3DRender::QTextureBuffer

具有TargetBuffer目标格式的QAbstractTexture

Qt3DRender::QTextureCubeMap

具有TargetCubeMap目标格式的QAbstractTexture

Qt3DRender::QTextureCubeMapArray

具有TargetCubeMapArray目标格式的QAbstractTexture

Qt3DRender::QTextureData

存储纹理信息,如目标、高度、宽度、深度、层、包裹,以及是否启用mipmap

Qt3DRender::QTextureDataUpdate

包含执行纹理内容部分更新所需的内容和信息

Qt3DRender::QTextureGenerator

为纹理提供图像数据

Qt3DRender::QTextureImage

封装从图像源创建OpenGL纹理图像所需的信息

Qt3DRender::QTextureImageData

存储表示纹理的数据

Qt3DRender::QTextureImageDataGenerator

为QAbstractTextureImage提供纹理图像数据

Qt3DRender::QTextureLoader

处理纹理加载和设置纹理属性

Qt3DRender::QTextureRectangle

具有目标矩形格式的QAbstractTexture

Qt3DRender::QTextureWrapMode

定义Qt3DRender::QAbstractTexture应应用于纹理的包装模式

Qt3DRender::QViewport

Qt3D场景中的视口

Qt3DRender::QWaitFence

用于在图形命令流中等待栅栏变信号的FrameGraphNode

详细描述

Qt 3D Render模块提供了实现2D和3D渲染所需的方面、组件和其他支持类型,作为Qt 3D框架的一部分。

要使用此模块中的类,请在C++文件中添加此指令

#include <Qt3DRender>

要将链接与相应的C++库关联,请将以下内容添加到您的qmake项目文件中

QT += 3drender

类、类型和函数在Qt3DRender命名空间下声明。

概述

Qt 3D Render方面提供了对如Qt 3D Render Framegraph中描述的数据驱动配置的支持。

选择渲染后端

渲染方面包含两个渲染后端。

  • 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将默认为它在平台上推断出的最佳后端。

参考

© 2024 The Qt Company Ltd. 本文档中的贡献版权归各自所有者。本提供的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款许可的。Qt及其相关标志是芬兰和/或全球其他国家的The Qt Company Ltd.的商标。所有其他商标均为其各自所有者的财产。