Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QSSGRenderLayer Struct Reference

#include <qssgrenderlayer_p.h>

+ Inheritance diagram for QSSGRenderLayer:
+ Collaboration diagram for QSSGRenderLayer:

Classes

struct  FogOptions
 

Public Types

enum class  AAMode : quint8 { NoAA = 0 , SSAA , MSAA , ProgressiveAA }
 
enum class  AAQuality : quint8 { Normal = 2 , High = 4 , VeryHigh = 8 }
 
enum class  HorizontalField : quint8 { LeftWidth = 0 , LeftRight , WidthRight }
 
enum class  VerticalField : quint8 { TopHeight = 0 , TopBottom , HeightBottom }
 
enum class  UnitType : quint8 { Percent = 0 , Pixels }
 
enum class  Background : quint8 {
  Transparent = 0 , Unspecified , Color , SkyBox ,
  SkyBoxCubeMap
}
 
enum class  TonemapMode : quint8 {
  None = 0 , Linear , Aces , HejlDawson ,
  Filmic
}
 
enum class  LayerFlag { EnableDepthTest = 0x1 , EnableDepthPrePass = 0x2 , RenderToTarget = 0x3 }
 
enum class  MaterialDebugMode : quint8 {
  None = 0 , BaseColor = 1 , Roughness , Metalness ,
  Diffuse , Specular , ShadowOcclusion , Emission ,
  AmbientOcclusion , Normal , Tangent , Binormal ,
  F0
}
 
enum  RenderExtensionMode { Underlay , Overlay , Count }
 
- Public Types inherited from QSSGRenderNode
enum class  LocalState : quint8 { Active = 1 << 0 , Pickable = 1 << 1 }
 
enum class  GlobalState : quint8 { Active = 1 << 2 , Pickable = 1 << 3 }
 
enum class  DirtyFlag : quint32 {
  TransformDirty = 1 << 4 , OpacityDirty = 1 << 5 , ActiveDirty = 1 << 6 , PickableDirty = 1 << 7 ,
  SubNodeDirty = 1 << 8 , GlobalValuesDirty = TransformDirty | OpacityDirty | ActiveDirty | PickableDirty , DirtyMask = GlobalValuesDirty | SubNodeDirty
}
 
using FlagT = std::underlying_type_t< DirtyFlag >
 
using ChildList = QSSGInvasiveLinkedList< QSSGRenderNode, &QSSGRenderNode::previousSibling, &QSSGRenderNode::nextSibling >
 
- Public Types inherited from QSSGRenderGraphObject
enum  BaseType : quint16 {
  Node = 0x10 , Light = 0x20 , Camera = 0x40 , Renderable = 0x80 ,
  Resource = 0x100 , Material = 0x200 , Texture = 0x400 , Extension = 0x800
}
 
enum class  Type : quint16 {
  Unknown = 0 , Node = BaseType::Node , Layer , Joint ,
  Skeleton , ImportScene , ReflectionProbe , DirectionalLight = BaseType::Light | BaseType::Node ,
  PointLight , SpotLight , OrthographicCamera = BaseType::Camera | BaseType::Node , PerspectiveCamera ,
  CustomFrustumCamera , CustomCamera , Model = BaseType::Renderable | BaseType::Node , Item2D ,
  Particles , SceneEnvironment = BaseType::Resource , Effect , Geometry ,
  TextureData , MorphTarget , ModelInstance , ModelBlendParticle ,
  ResourceLoader , DefaultMaterial = BaseType::Material | BaseType::Resource , PrincipledMaterial , CustomMaterial ,
  SpecularGlossyMaterial , Skin , Image2D = BaseType::Texture | BaseType::Resource , ImageCube ,
  RenderExtension = BaseType::Extension
}
 

Public Member Functions

constexpr bool ssaoEnabled () const
 
 QSSGRenderLayer ()
 
 ~QSSGRenderLayer ()
 
void setProbeOrientation (const QVector3D &angles)
 
void addEffect (QSSGRenderEffect &inEffect)
 
bool hasEffect (QSSGRenderEffect *inEffect) const
 
void setImportScene (QSSGRenderNode &rootNode)
 
void removeImportScene (QSSGRenderNode &rootNode)
 
- Public Member Functions inherited from QSSGRenderNode
 QSSGRenderNode ()
 
 QSSGRenderNode (Type type)
 
 ~QSSGRenderNode () override
 
void markDirty (DirtyFlag dirtyFlag)
 
void clearDirty (DirtyFlag dirtyFlag)
 
constexpr bool isDirty (DirtyFlag dirtyFlag=DirtyFlag::DirtyMask) const
 
void setState (LocalState state, bool on=true)
 
constexpr bool getLocalState (LocalState stateFlag) const
 
constexpr bool getGlobalState (GlobalState stateFlag) const
 
void addChild (QSSGRenderNode &inChild)
 
void removeChild (QSSGRenderNode &inChild)
 
void removeFromGraph ()
 
bool calculateGlobalVariables ()
 
QSSGBounds3 getBounds (QSSGBufferManager &inManager, bool inIncludeChildren=true) const
 
QSSGBounds3 getChildBounds (QSSGBufferManager &inManager) const
 
QVector3D getGlobalPos () const
 
QVector3D getGlobalPivot () const
 
QVector3D getDirection () const
 
QVector3D getScalingCorrectDirection () const
 
void calculateMVPAndNormalMatrix (const QMatrix4x4 &inViewProjection, QMatrix4x4 &outMVP, QMatrix3x3 &outNormalMatrix) const
 
QMatrix3x3 calculateNormalMatrix () const
 
- Public Member Functions inherited from QSSGRenderGraphObject
Q_QUICK3D_PROFILE_ID QSSGRenderGraphObject (QSSGRenderGraphObject::Type inType)
 
virtual ~QSSGRenderGraphObject ()
 

Public Attributes

QSSGRenderEffectfirstEffect
 
QSSGLayerRenderDatarenderData = nullptr
 
QList< QSSGRenderExtension * > renderExtensions [RenderExtensionMode::Count]
 
QString texturePath
 
QSSGRenderLayer::AAMode antialiasingMode
 
QSSGRenderLayer::AAQuality antialiasingQuality
 
QSSGRenderLayer::Background background
 
QVector3D clearColor
 
float aoStrength = 0.0f
 
float aoDistance = 5.0f
 
float aoSoftness = 50.0f
 
float aoBias = 0.0f
 
qint32 aoSamplerate = 2
 
bool aoDither = false
 
bool aoEnabled = false
 
QSSGRenderImagelightProbe
 
float probeExposure
 
float probeHorizon
 
QMatrix3x3 probeOrientation
 
QVector3D probeOrientationAngles
 
QSSGRenderImageskyBoxCubeMap = nullptr
 
bool temporalAAEnabled
 
float temporalAAStrength
 
bool ssaaEnabled
 
float ssaaMultiplier
 
bool specularAAEnabled
 
bool temporalAAIsActive
 
bool progressiveAAIsActive
 
uint tempAAPassIndex
 
uint progAAPassIndex
 
QSSGRenderCameraexplicitCamera
 
QSSGRenderCamerarenderedCamera
 
TonemapMode tonemapMode
 
LayerFlags layerFlags
 
QRhiShaderResourceBindingsskyBoxSrb = nullptr
 
QVarLengthArray< QRhiShaderResourceBindings *, 4 > item2DSrbs
 
bool skyBoxIsRgbe8 = false
 
float skyboxBlurAmount = 0.0f
 
bool gridEnabled = false
 
float gridScale = 1.0f
 
quint32 gridFlags = 0
 
QRhiShaderResourceBindingsgridSrb = nullptr
 
QSSGLightmapperOptions lmOptions
 
QRect scissorRect
 
struct QSSGRenderLayer::FogOptions fog
 
QVector< QSSGRenderGraphObject * > resourceLoaders
 
MaterialDebugMode debugMode = MaterialDebugMode::None
 
bool wireframeMode = false
 
QSSGRenderNodeimportSceneNode = nullptr
 
- Public Attributes inherited from QSSGRenderNode
QVector3D pivot
 
int staticFlags = 0
 
float localOpacity = 1.0f
 
FlagT flags { FlagT(DirtyFlag::GlobalValuesDirty) | FlagT(LocalState::Active) }
 
QMatrix4x4 localTransform
 
QMatrix4x4 globalTransform
 
QMatrix4x4 localInstanceTransform
 
QMatrix4x4 globalInstanceTransform
 
float globalOpacity = 1.0f
 
QSSGRenderNodeparent = nullptr
 
QSSGRenderNodenextSibling = nullptr
 
QSSGRenderNodepreviousSibling = nullptr
 
QSSGRenderNodeinstanceRoot = nullptr
 
quint32 dfsIndex = 0
 
ChildList children
 
QString debugObjectName
 
- Public Attributes inherited from QSSGRenderGraphObject
Type type
 

Additional Inherited Members

- Static Public Member Functions inherited from QSSGRenderNode
static QMatrix4x4 calculateTransformMatrix (QVector3D position, QVector3D scale, QVector3D pivot, QQuaternion rotation)
 
static float signedSquared (float val)
 
- Static Public Member Functions inherited from QSSGRenderGraphObject
static Q_REQUIRED_RESULT constexpr bool isNodeType (Type type) Q_DECL_NOTHROW
 
static Q_REQUIRED_RESULT constexpr bool isLight (Type type) Q_DECL_NOTHROW
 
static Q_REQUIRED_RESULT constexpr bool isCamera (Type type) Q_DECL_NOTHROW
 
static Q_REQUIRED_RESULT constexpr bool isMaterial (Type type) Q_DECL_NOTHROW
 
static Q_REQUIRED_RESULT constexpr bool isTexture (Type type) Q_DECL_NOTHROW
 
static Q_REQUIRED_RESULT constexpr bool isRenderable (Type type) Q_DECL_NOTHROW
 
static Q_REQUIRED_RESULT constexpr bool isResource (Type type) Q_DECL_NOTHROW
 
static constexpr bool isExtension (Type type) noexcept
 
static Q_REQUIRED_RESULT constexpr bool hasGraphicsResources (Type type) Q_DECL_NOTHROW
 
static const char * asString (QSSGRenderGraphObject::Type type)
 
static QDebug debugPrintImpl (QDebug stream, QSSGRenderGraphObject::Type type)
 
- Static Public Attributes inherited from QSSGRenderNode
static constexpr QVector3D initScale { 1.0f, 1.0f, 1.0f }
 

Detailed Description

Definition at line 41 of file qssgrenderlayer_p.h.

Member Enumeration Documentation

◆ AAMode

enum class QSSGRenderLayer::AAMode : quint8
strong
Enumerator
NoAA 
SSAA 
MSAA 
ProgressiveAA 

Definition at line 43 of file qssgrenderlayer_p.h.

◆ AAQuality

enum class QSSGRenderLayer::AAQuality : quint8
strong
Enumerator
Normal 
High 
VeryHigh 

Definition at line 51 of file qssgrenderlayer_p.h.

◆ Background

enum class QSSGRenderLayer::Background : quint8
strong
Enumerator
Transparent 
Unspecified 
Color 
SkyBox 
SkyBoxCubeMap 

Definition at line 78 of file qssgrenderlayer_p.h.

◆ HorizontalField

Enumerator
LeftWidth 
LeftRight 
WidthRight 

Definition at line 58 of file qssgrenderlayer_p.h.

◆ LayerFlag

enum class QSSGRenderLayer::LayerFlag
strong
Enumerator
EnableDepthTest 
EnableDepthPrePass 

True when we render a depth pass before.

RenderToTarget 

Does this layer render to the normal render target,.

Definition at line 96 of file qssgrenderlayer_p.h.

◆ MaterialDebugMode

Enumerator
None 
BaseColor 
Roughness 
Metalness 
Diffuse 
Specular 
ShadowOcclusion 
Emission 
AmbientOcclusion 
Normal 
Tangent 
Binormal 
F0 

Definition at line 104 of file qssgrenderlayer_p.h.

◆ RenderExtensionMode

Enumerator
Underlay 
Overlay 
Count 

Definition at line 124 of file qssgrenderlayer_p.h.

◆ TonemapMode

enum class QSSGRenderLayer::TonemapMode : quint8
strong
Enumerator
None 
Linear 
Aces 
HejlDawson 
Filmic 

Definition at line 87 of file qssgrenderlayer_p.h.

◆ UnitType

enum class QSSGRenderLayer::UnitType : quint8
strong
Enumerator
Percent 
Pixels 

Definition at line 72 of file qssgrenderlayer_p.h.

◆ VerticalField

Enumerator
TopHeight 
TopBottom 
HeightBottom 

Definition at line 65 of file qssgrenderlayer_p.h.

Constructor & Destructor Documentation

◆ QSSGRenderLayer()

QT_BEGIN_NAMESPACE QSSGRenderLayer::QSSGRenderLayer ( )

Definition at line 12 of file qssgrenderlayer.cpp.

References QSSGRenderNode::Active.

◆ ~QSSGRenderLayer()

QSSGRenderLayer::~QSSGRenderLayer ( )

Definition at line 33 of file qssgrenderlayer.cpp.

References importSceneNode, and renderData.

Member Function Documentation

◆ addEffect()

void QSSGRenderLayer::addEffect ( QSSGRenderEffect inEffect)

Definition at line 48 of file qssgrenderlayer.cpp.

References firstEffect, and QSSGRenderEffect::m_nextEffect.

◆ hasEffect()

bool QSSGRenderLayer::hasEffect ( QSSGRenderEffect inEffect) const

Definition at line 55 of file qssgrenderlayer.cpp.

References firstEffect, and QSSGRenderEffect::m_nextEffect.

◆ removeImportScene()

void QSSGRenderLayer::removeImportScene ( QSSGRenderNode rootNode)

Definition at line 83 of file qssgrenderlayer.cpp.

References QSSGInvasiveLinkedList< T, Previous, Next >::back(), QSSGRenderNode::children, QSSGInvasiveLinkedList< T, Previous, Next >::clear(), importSceneNode, and QSSGInvasiveLinkedList< T, Previous, Next >::isEmpty().

Referenced by QQuick3DSceneRenderer::synchronize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setImportScene()

void QSSGRenderLayer::setImportScene ( QSSGRenderNode rootNode)

Definition at line 64 of file qssgrenderlayer.cpp.

References QSSGRenderNode::QSSGRenderNode(), QSSGRenderNode::children, QSSGInvasiveLinkedList< T, Previous, Next >::clear(), importSceneNode, QSSGInvasiveLinkedList< T, Previous, Next >::push_back(), and Q_ASSERT.

Referenced by QQuick3DSceneRenderer::synchronize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setProbeOrientation()

void QSSGRenderLayer::setProbeOrientation ( const QVector3D angles)

Definition at line 40 of file qssgrenderlayer.cpp.

References QQuaternion::fromEulerAngles(), probeOrientation, probeOrientationAngles, and QQuaternion::toRotationMatrix().

Referenced by QQuick3DRenderLayerHelpers::updateLayerNodeHelper().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ssaoEnabled()

constexpr bool QSSGRenderLayer::ssaoEnabled ( ) const
inlineconstexpr

Definition at line 149 of file qssgrenderlayer_p.h.

Member Data Documentation

◆ antialiasingMode

◆ antialiasingQuality

◆ aoBias

float QSSGRenderLayer::aoBias = 0.0f

◆ aoDistance

float QSSGRenderLayer::aoDistance = 5.0f

◆ aoDither

bool QSSGRenderLayer::aoDither = false

◆ aoEnabled

bool QSSGRenderLayer::aoEnabled = false

◆ aoSamplerate

qint32 QSSGRenderLayer::aoSamplerate = 2

◆ aoSoftness

float QSSGRenderLayer::aoSoftness = 50.0f

◆ aoStrength

float QSSGRenderLayer::aoStrength = 0.0f

◆ background

◆ clearColor

QVector3D QSSGRenderLayer::clearColor

◆ debugMode

MaterialDebugMode QSSGRenderLayer::debugMode = MaterialDebugMode::None

◆ explicitCamera

QSSGRenderCamera* QSSGRenderLayer::explicitCamera

◆ firstEffect

◆ fog

◆ gridEnabled

bool QSSGRenderLayer::gridEnabled = false

◆ gridFlags

quint32 QSSGRenderLayer::gridFlags = 0

◆ gridScale

float QSSGRenderLayer::gridScale = 1.0f

◆ gridSrb

QRhiShaderResourceBindings* QSSGRenderLayer::gridSrb = nullptr

Definition at line 196 of file qssgrenderlayer_p.h.

◆ importSceneNode

QSSGRenderNode* QSSGRenderLayer::importSceneNode = nullptr

Definition at line 235 of file qssgrenderlayer_p.h.

Referenced by ~QSSGRenderLayer(), removeImportScene(), and setImportScene().

◆ item2DSrbs

QVarLengthArray<QRhiShaderResourceBindings *, 4> QSSGRenderLayer::item2DSrbs

Definition at line 186 of file qssgrenderlayer_p.h.

◆ layerFlags

LayerFlags QSSGRenderLayer::layerFlags
Initial value:
@ EnableDepthPrePass
True when we render a depth pass before.
@ RenderToTarget
Does this layer render to the normal render target,.

Definition at line 180 of file qssgrenderlayer_p.h.

Referenced by QQuick3DRenderLayerHelpers::updateLayerNodeHelper().

◆ lightProbe

◆ lmOptions

QSSGLightmapperOptions QSSGRenderLayer::lmOptions

◆ probeExposure

float QSSGRenderLayer::probeExposure

◆ probeHorizon

float QSSGRenderLayer::probeHorizon

◆ probeOrientation

QMatrix3x3 QSSGRenderLayer::probeOrientation

◆ probeOrientationAngles

QVector3D QSSGRenderLayer::probeOrientationAngles

Definition at line 156 of file qssgrenderlayer_p.h.

Referenced by setProbeOrientation().

◆ progAAPassIndex

◆ progressiveAAIsActive

bool QSSGRenderLayer::progressiveAAIsActive

Definition at line 168 of file qssgrenderlayer_p.h.

Referenced by QQuick3DSceneRenderer::renderToRhiTexture().

◆ renderData

◆ renderedCamera

QSSGRenderCamera* QSSGRenderLayer::renderedCamera

◆ renderExtensions

QList<QSSGRenderExtension *> QSSGRenderLayer::renderExtensions[RenderExtensionMode::Count]

Definition at line 125 of file qssgrenderlayer_p.h.

Referenced by QQuick3DSceneRenderer::synchronize().

◆ resourceLoaders

QVector<QSSGRenderGraphObject *> QSSGRenderLayer::resourceLoaders

Definition at line 221 of file qssgrenderlayer_p.h.

◆ scissorRect

QRect QSSGRenderLayer::scissorRect

Definition at line 202 of file qssgrenderlayer_p.h.

Referenced by QQuick3DSceneRenderer::synchronize().

◆ skyboxBlurAmount

float QSSGRenderLayer::skyboxBlurAmount = 0.0f

◆ skyBoxCubeMap

◆ skyBoxIsRgbe8

bool QSSGRenderLayer::skyBoxIsRgbe8 = false

Definition at line 187 of file qssgrenderlayer_p.h.

Referenced by RenderHelpers::rhiRenderReflectionMap().

◆ skyBoxSrb

QRhiShaderResourceBindings* QSSGRenderLayer::skyBoxSrb = nullptr

Definition at line 185 of file qssgrenderlayer_p.h.

◆ specularAAEnabled

bool QSSGRenderLayer::specularAAEnabled

◆ ssaaEnabled

bool QSSGRenderLayer::ssaaEnabled

◆ ssaaMultiplier

float QSSGRenderLayer::ssaaMultiplier

◆ tempAAPassIndex

◆ temporalAAEnabled

bool QSSGRenderLayer::temporalAAEnabled

◆ temporalAAIsActive

bool QSSGRenderLayer::temporalAAIsActive

Definition at line 167 of file qssgrenderlayer_p.h.

Referenced by QQuick3DSceneRenderer::renderToRhiTexture().

◆ temporalAAStrength

float QSSGRenderLayer::temporalAAStrength

◆ texturePath

QString QSSGRenderLayer::texturePath

Definition at line 132 of file qssgrenderlayer_p.h.

◆ tonemapMode

TonemapMode QSSGRenderLayer::tonemapMode

◆ wireframeMode

bool QSSGRenderLayer::wireframeMode = false

The documentation for this struct was generated from the following files: