![]() |
Qt 6.x
The Qt SDK
|
#include <QtQuick3DUtils/private/qssgutils_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrenderdefaultmaterialshadergenerator_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendercontextcore_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendershadercodegenerator_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrenderimage_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrenderlight_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendercamera_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendershadowmap_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendercustommaterial_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendershaderlibrarymanager_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendershaderkeys_p.h>
#include <QtQuick3DRuntimeRender/private/qssgshadermaterialadapter_p.h>
#include <QtCore/QByteArray>
Go to the source code of this file.
Classes | |
struct | QT_BEGIN_NAMESPACE::ImageStrings< Type > |
struct | QT_BEGIN_NAMESPACE::ImageStringSet |
Namespaces | |
namespace | QT_BEGIN_NAMESPACE |
Combined button and popup list for selecting options. | |
Macros | |
#define | DefineImageStrings(V) |
#define | DefineImageStringTableEntry(V) |
#define | MAX_MORPH_TARGET 8 |
Typedefs | |
using | QT_BEGIN_NAMESPACE::Type = QSSGRenderableImage::Type |
Variables | |
constexpr ImageStringSet | QT_BEGIN_NAMESPACE::imageStringTable [] |
const int | QT_BEGIN_NAMESPACE::TEXCOORD_VAR_LEN = 16 |
static QVarLengthArray< QSSGMaterialShaderGenerator::ShadowVariableNames, 16 > | q3ds_shadowMapVariableNames |
static constexpr QByteArrayView | qssg_shader_arg_names [] |
static float | ZERO_MATRIX [16] = {} |
#define DefineImageStrings | ( | V | ) |
Definition at line 28 of file qssgrenderdefaultmaterialshadergenerator.cpp.
#define DefineImageStringTableEntry | ( | V | ) |
Definition at line 68 of file qssgrenderdefaultmaterialshadergenerator.cpp.
#define MAX_MORPH_TARGET 8 |
Definition at line 469 of file qssgrenderdefaultmaterialshadergenerator.cpp.
|
static |
Definition at line 121 of file qssgrenderdefaultmaterialshadergenerator.cpp.
Referenced by generateFragmentShader().
|
static |
Definition at line 230 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QSSGStageGeneratorBase::addFunction(), QSSGMaterialShaderGenerator::LightVariableNames::lightColor, and QSSGMaterialShaderGenerator::LightVariableNames::normalizedDirection.
Referenced by generateMainLightCalculation().
|
static |
Definition at line 723 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QSSGStageGeneratorBase::addFunction(), QSSGMaterialShaderGenerator::LightVariableNames::lightConstantAttenuation, QSSGMaterialShaderGenerator::LightVariableNames::lightLinearAttenuation, QSSGMaterialShaderGenerator::LightVariableNames::lightQuadraticAttenuation, and QSSGMaterialShaderGenerator::LightVariableNames::relativeDistance.
Referenced by generateMainLightCalculation().
|
static |
Definition at line 600 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QByteArray::append(), QSSGMaterialVertexPipeline::generateWorldPosition(), QSSGMaterialShaderGenerator::LightVariableNames::lightPos, QSSGMaterialShaderGenerator::LightVariableNames::normalizedDirection, QSSGMaterialShaderGenerator::LightVariableNames::relativeDirection, and QSSGMaterialShaderGenerator::LightVariableNames::relativeDistance.
Referenced by generateMainLightCalculation().
|
static |
Definition at line 830 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QSSGShaderKeyTextureChannel::A, QSSGMaterialVertexPipeline::addDefinition(), QSSGStageGeneratorBase::addFunction(), QSSGStageGeneratorBase::addInclude(), addLocalVariable(), QSSGStageGeneratorBase::addUniform(), QSSGShaderMaterialAdapter::alphaMode(), QSSGRenderLayer::AmbientOcclusion, QSSGStageGeneratorBase::append(), QSSGShaderKeyTextureChannel::B, QSSGRenderLayer::BaseColor, QSSGMaterialVertexPipeline::beginFragmentGeneration(), QSSGRenderLayer::Binormal, QSSGShaderDefaultMaterialKeyProperties::ClearcoatChannel, QSSGShaderDefaultMaterialKeyProperties::ClearcoatRoughnessChannel, QListSpecialMethodsBase< T >::contains(), QSSGShaderFeatures::CubeShadowPass, QSSGShaderFeatures::DepthPass, QSSGRenderLayer::Diffuse, QSSGRenderLayer::Emission, QSSGRenderLayer::F0, QSSGShaderCache::Fragment, QSSGShaderKeyTextureChannel::G, QSSGMaterialVertexPipeline::generateDepth(), generateImageUVCoordinates(), generateImageUVSampler(), QSSGMaterialVertexPipeline::generateLightmapUVCoords(), generateMainLightCalculation(), QSSGMaterialVertexPipeline::generateShadowWorldPosition(), QSSGMaterialVertexPipeline::generateUVCoords(), QSSGMaterialVertexPipeline::generateVarTangentAndBinormal(), QSSGMaterialVertexPipeline::generateVertexColor(), QSSGMaterialVertexPipeline::generateViewVector(), QSSGMaterialVertexPipeline::generateWorldNormal(), QSSGMaterialVertexPipeline::generateWorldPosition(), getMaterialAdapter(), QSSGShaderKeyTextureChannel::getTextureChannel(), QSSGShaderKeyBoolean::getValue(), QSSGShaderKeyUnsigned< TBitWidth >::getValue(), hasCustomFunction(), QSSGShaderMaterialAdapter::hasCustomShaderFunction(), QSSGShaderMaterialAdapter::hasCustomShaderSnippet(), QSSGShaderMaterialAdapter::hasLighting(), QSSGShaderFeatures::IblOrientation, QSSGShaderMaterialAdapter::isClearcoatEnabled(), QSSGDataView< T >::isEmpty(), QSSGShaderMaterialAdapter::isMetalnessEnabled(), QSSGShaderMaterialAdapter::isPrincipled(), QSSGShaderFeatures::isSet(), QSSGShaderMaterialAdapter::isSpecularEnabled(), QSSGShaderMaterialAdapter::isSpecularGlossy(), QSSGShaderMaterialAdapter::isTransmissionEnabled(), QSSGShaderMaterialAdapter::isUnshaded(), QSSGShaderMaterialAdapter::isVertexColorsEnabled(), QSSGRenderDefaultMaterial::KGGX, QSSGShaderFeatures::Lightmap, QSSGShaderDefaultMaterialKeyProperties::m_blendParticles, QSSGShaderDefaultMaterialKeyProperties::m_debugMode, QSSGShaderDefaultMaterialKeyProperties::m_fogEnabled, QSSGShaderDefaultMaterialKeyProperties::m_hasIbl, QSSGRenderableImage::m_imageNode, QSSGRenderImage::m_indexUV, QSSGShaderDefaultMaterialKeyProperties::m_isDoubleSided, QSSGRenderableImage::m_mapType, QSSGRenderableImage::m_nextImage, QSSGShaderDefaultMaterialKeyProperties::m_specularAAEnabled, QSSGShaderDefaultMaterialKeyProperties::m_targetBinormalOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetColorOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetCount, QSSGShaderDefaultMaterialKeyProperties::m_targetNormalOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetPositionOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetTangentOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetTexCoord0Offset, QSSGShaderDefaultMaterialKeyProperties::m_targetTexCoord1Offset, QSSGShaderDefaultMaterialKeyProperties::m_textureChannels, QSSGShaderDefaultMaterialKeyProperties::m_usesInstancing, QSSGShaderDefaultMaterialKeyProperties::m_usesInverseProjectionMatrix, QSSGShaderDefaultMaterialKeyProperties::m_usesProjectionMatrix, QSSGRenderDefaultMaterial::Mask, maybeAddMaterialFresnel(), QSSGRenderLayer::Metalness, QSSGShaderDefaultMaterialKeyProperties::MetalnessChannel, QSSGRenderLayer::None, QSSGRenderLayer::Normal, QByteArray::number(), QSSGShaderDefaultMaterialKeyProperties::OcclusionChannel, QSSGShaderDefaultMaterialKeyProperties::OpacityChannel, QSSGRenderDefaultMaterial::Opaque, QSSGShaderFeatures::OpaqueDepthPrePass, QSSGShaderFeatures::OrthoShadowPass, QList< T >::push_back(), Q_ASSERT, Q_UNLIKELY, QByteArrayLiteral, QSSGShaderKeyTextureChannel::R, QSSGShaderFeatures::ReflectionProbe, ret, QSSGRenderLayer::Roughness, QSSGShaderDefaultMaterialKeyProperties::RoughnessChannel, QSSGRenderLayer::ShadowOcclusion, QSSGRenderLayer::Specular, QSSGShaderMaterialAdapter::specularModel(), QSSGShaderFeatures::Ssao, QSSGShaderFeatures::Ssm, QSSGRenderLayer::Tangent, QSSGShaderDefaultMaterialKeyProperties::ThicknessChannel, QSSGShaderDefaultMaterialKeyProperties::TranslucencyChannel, QSSGShaderDefaultMaterialKeyProperties::TransmissionChannel, QSSGShaderMaterialAdapter::usesSharedVariables(), and QSSGShaderCache::Vertex.
Referenced by QSSGMaterialShaderGenerator::generateMaterialRhiShader().
|
static |
Definition at line 143 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QSSGMaterialVertexPipeline::addFunction(), QSSGStageGeneratorBase::addFunction(), QSSGMaterialVertexPipeline::addOutgoing(), QSSGStageGeneratorBase::addUniform(), QSSGMaterialVertexPipeline::addUniform(), QSSGMaterialVertexPipeline::assignOutput(), QSSGMaterialVertexPipeline::generateEnvMapReflection(), QSSGMaterialVertexPipeline::generateUVCoords(), QSSGRenderImage::Normal, sanityCheckImageForSampler(), and uvTransform().
Referenced by generateFragmentShader().
|
static |
Definition at line 199 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QSSGStageGeneratorBase::addUniform(), QSSGMaterialVertexPipeline::generateUVCoords(), and sanityCheckImageForSampler().
Referenced by generateFragmentShader().
|
static |
Definition at line 733 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References addTranslucencyIrradiance(), QByteArray::append(), QSSGStageGeneratorBase::append(), calculatePointLightAttenuation(), generateDirections(), generateShadowMapOcclusion(), generateTempLightColor(), getMaterialAdapter(), handleDirectionalLight(), handlePointLight(), handleSpotLight(), QSSGRenderLight::m_castShadow, QSSGRenderLight::m_fullyBaked, Q_ASSERT, QSSG_MAX_NUM_SHADOW_MAPS, setupLightVariableNames(), QSSGDataView< T >::size(), and QSSGRenderGraphObject::type.
Referenced by generateFragmentShader().
|
static |
Definition at line 345 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QSSGStageGeneratorBase::addInclude(), QSSGStageGeneratorBase::addUniform(), QSSGMaterialVertexPipeline::generateWorldPosition(), QSSGMaterialShaderGenerator::LightVariableNames::lightPos, and setupShadowMapVariableNames().
Referenced by generateMainLightCalculation().
|
static |
Definition at line 478 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QSSGShaderMaterialAdapter::isSpecularGlossy(), and QSSGMaterialShaderGenerator::LightVariableNames::lightColor.
Referenced by generateMainLightCalculation().
|
inlinestatic |
Definition at line 375 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QSSGRenderGraphObject::type.
Referenced by generateFragmentShader(), generateMainLightCalculation(), and QSSGMaterialShaderGenerator::setRhiMaterialProperties().
|
static |
Definition at line 558 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References handleSpecularLight(), hasCustomFunction(), QSSGShaderMaterialAdapter::isPrincipled(), QSSGShaderMaterialAdapter::isSpecularGlossy(), QSSGMaterialShaderGenerator::LightVariableNames::lightDirection, and QByteArrayLiteral.
Referenced by generateMainLightCalculation().
|
static |
Definition at line 623 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References handleSpecularLight(), hasCustomFunction(), QSSGShaderMaterialAdapter::isPrincipled(), QSSGShaderMaterialAdapter::isSpecularGlossy(), QSSGMaterialShaderGenerator::LightVariableNames::normalizedDirection, and QByteArrayLiteral.
Referenced by generateMainLightCalculation().
|
static |
Definition at line 488 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QSSGStageGeneratorBase::addFunction(), hasCustomFunction(), QSSGShaderMaterialAdapter::isPrincipled(), QSSGShaderMaterialAdapter::isSpecularGlossy(), QSSGMaterialShaderGenerator::LightVariableNames::lightDirection, QSSGMaterialShaderGenerator::LightVariableNames::lightSpecularColor, QSSGMaterialShaderGenerator::LightVariableNames::normalizedDirection, outputSpecularEquation(), QByteArrayLiteral, and QSSGShaderMaterialAdapter::specularModel().
Referenced by handleDirectionalLight(), handlePointLight(), and handleSpotLight().
|
static |
Definition at line 665 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QByteArray::append(), handleSpecularLight(), hasCustomFunction(), QSSGShaderMaterialAdapter::isPrincipled(), QSSGShaderMaterialAdapter::isSpecularGlossy(), QSSGMaterialShaderGenerator::LightVariableNames::lightConeAngle, QSSGMaterialShaderGenerator::LightVariableNames::lightDirection, QSSGMaterialShaderGenerator::LightVariableNames::lightInnerConeAngle, QSSGMaterialShaderGenerator::LightVariableNames::normalizedDirection, QByteArrayLiteral, and QSSGMaterialShaderGenerator::LightVariableNames::spotAngle.
Referenced by generateMainLightCalculation().
|
static |
Definition at line 471 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QSSGShaderCache::Fragment, and QSSGShaderMaterialAdapter::hasCustomShaderFunction().
Referenced by generateFragmentShader(), handleDirectionalLight(), handlePointLight(), handleSpecularLight(), and handleSpotLight().
|
static |
Definition at line 270 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QSSGStageGeneratorBase::addInclude(), QSSGShaderKeyBoolean::getValue(), and QSSGShaderDefaultMaterialKeyProperties::m_fresnelEnabled.
Referenced by generateFragmentShader().
|
static |
Definition at line 214 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QSSGStageGeneratorBase::addFunction(), QSSGStageGeneratorBase::addInclude(), and QSSGRenderDefaultMaterial::KGGX.
Referenced by handleSpecularLight().
|
static |
Definition at line 134 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References qWarning.
Referenced by generateImageUVCoordinates(), and generateImageUVSampler().
|
static |
Definition at line 288 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References QByteArray::append(), Q_ASSERT, qsnprintf(), and QSSGRenderGraphObject::type.
Referenced by generateMainLightCalculation().
|
static |
Definition at line 245 of file qssgrenderdefaultmaterialshadergenerator.cpp.
References q3ds_shadowMapVariableNames, QByteArrayLiteral, and qsnprintf().
Referenced by generateShadowMapOcclusion(), and QSSGMaterialShaderGenerator::setRhiMaterialProperties().
|
static |
Definition at line 126 of file qssgrenderdefaultmaterialshadergenerator.cpp.
Referenced by generateImageUVCoordinates().
|
static |
Definition at line 243 of file qssgrenderdefaultmaterialshadergenerator.cpp.
Referenced by setupShadowMapVariableNames().
|
staticconstexpr |
Definition at line 391 of file qssgrenderdefaultmaterialshadergenerator.cpp.
Referenced by QtQuick3DEditorHelpers::CustomMaterial::reservedArgumentNames().
|
static |
Definition at line 1841 of file qssgrenderdefaultmaterialshadergenerator.cpp.
Referenced by QSSGMaterialShaderGenerator::setRhiMaterialProperties().