5#ifndef QSSG_SHADER_MATERIAL_ADAPTER_H
6#define QSSG_SHADER_MATERIAL_ADAPTER_H
19#include <QtQuick3DRuntimeRender/private/qssgrendershadercodegenerator_p.h>
20#include <QtQuick3DRuntimeRender/private/qssgrendershadowmap_p.h>
21#include <QtQuick3DRuntimeRender/private/qssgrenderlight_p.h>
22#include <QtQuick3DRuntimeRender/private/qssgrenderableimage_p.h>
23#include <QtQuick3DRuntimeRender/private/qssgrendershaderlibrarymanager_p.h>
60 virtual float ior() = 0;
88 virtual bool isUnshaded();
92 bool multiViewCompatible);
96 virtual void setCustomPropertyUniforms(
char *ubufData,
99 virtual bool usesSharedVariables();
106 bool isPrincipled()
override;
107 bool isSpecularGlossy()
override;
108 bool isMetalnessEnabled()
override;
109 bool isSpecularEnabled()
override;
110 bool isVertexColorsEnabled()
override;
111 bool isVertexColorsMaskEnabled()
override;
112 bool isInvertOpacityMapValue()
override;
113 bool isBaseColorSingleChannelEnabled()
override;
114 bool isSpecularAmountSingleChannelEnabled()
override;
115 bool isEmissiveSingleChannelEnabled()
override;
116 bool isClearcoatEnabled()
override;
117 bool isTransmissionEnabled()
override;
118 bool isFresnelScaleBiasEnabled()
override;
119 bool isClearcoatFresnelScaleBiasEnabled()
override;
120 bool hasLighting()
override;
121 bool usesCustomSkinning()
override;
122 bool usesCustomMorphing()
override;
125 QSSGRenderDefaultMaterial::VertexColorMaskFlags vertexColorRedMask()
override;
126 QSSGRenderDefaultMaterial::VertexColorMaskFlags vertexColorGreenMask()
override;
127 QSSGRenderDefaultMaterial::VertexColorMaskFlags vertexColorBlueMask()
override;
128 QSSGRenderDefaultMaterial::VertexColorMaskFlags vertexColorAlphaMask()
override;
134 float ior()
override;
135 float fresnelScale()
override;
136 float fresnelBias()
override;
137 float fresnelPower()
override;
138 float clearcoatFresnelScale()
override;
139 float clearcoatFresnelBias()
override;
140 float clearcoatFresnelPower()
override;
141 float metalnessAmount()
override;
142 float specularAmount()
override;
143 float specularRoughness()
override;
144 float bumpAmount()
override;
145 float translucentFallOff()
override;
146 float diffuseLightWrap()
override;
147 float occlusionAmount()
override;
148 float alphaCutOff()
override;
149 float pointSize()
override;
150 float lineWidth()
override;
151 float heightAmount()
override;
152 float minHeightSamples()
override;
153 float maxHeightSamples()
override;
154 float clearcoatAmount()
override;
155 float clearcoatRoughnessAmount()
override;
156 float clearcoatNormalStrength()
override;
157 float transmissionFactor()
override;
158 float thicknessFactor()
override;
159 float attenuationDistance()
override;
170 bool isPrincipled()
override;
171 bool isSpecularGlossy()
override;
172 bool isMetalnessEnabled()
override;
173 bool isSpecularEnabled()
override;
174 bool isVertexColorsEnabled()
override;
175 bool isVertexColorsMaskEnabled()
override;
176 bool isInvertOpacityMapValue()
override;
177 bool isBaseColorSingleChannelEnabled()
override;
178 bool isSpecularAmountSingleChannelEnabled()
override;
179 bool isEmissiveSingleChannelEnabled()
override;
180 bool isClearcoatEnabled()
override;
181 bool isTransmissionEnabled()
override;
182 bool isFresnelScaleBiasEnabled()
override;
183 bool isClearcoatFresnelScaleBiasEnabled()
override;
184 bool hasLighting()
override;
185 bool usesCustomSkinning()
override;
186 bool usesCustomMorphing()
override;
189 QSSGRenderDefaultMaterial::VertexColorMaskFlags vertexColorRedMask()
override;
190 QSSGRenderDefaultMaterial::VertexColorMaskFlags vertexColorGreenMask()
override;
191 QSSGRenderDefaultMaterial::VertexColorMaskFlags vertexColorBlueMask()
override;
192 QSSGRenderDefaultMaterial::VertexColorMaskFlags vertexColorAlphaMask()
override;
198 float ior()
override;
199 float fresnelScale()
override;
200 float fresnelBias()
override;
201 float fresnelPower()
override;
202 float clearcoatFresnelScale()
override;
203 float clearcoatFresnelBias()
override;
204 float clearcoatFresnelPower()
override;
205 float metalnessAmount()
override;
206 float specularAmount()
override;
207 float specularRoughness()
override;
208 float bumpAmount()
override;
209 float translucentFallOff()
override;
210 float diffuseLightWrap()
override;
211 float occlusionAmount()
override;
212 float alphaCutOff()
override;
213 float pointSize()
override;
214 float lineWidth()
override;
215 float heightAmount()
override;
216 float minHeightSamples()
override;
217 float maxHeightSamples()
override;
218 float clearcoatAmount()
override;
219 float clearcoatRoughnessAmount()
override;
220 float clearcoatNormalStrength()
override;
221 float transmissionFactor()
override;
222 float thicknessFactor()
override;
223 float attenuationDistance()
override;
226 bool isUnshaded()
override;
230 bool multiViewCompatible)
override;
234 void setCustomPropertyUniforms(
char *ubufData,
237 bool usesSharedVariables()
override;
248 bool multiViewCompatible =
false);
263namespace CustomMaterial {
264[[nodiscard]] Q_QUICK3DRUNTIMERENDER_EXPORT QList<QByteArrayView>
preprocessorVars();
The QVector3D class represents a vector or vertex in 3D space.
The QVector4D class represents a vector or vertex in 4D space.
Combined button and popup list for selecting options.
Q_QUICK3DRUNTIMERENDER_EXPORT QList< QByteArrayView > preprocessorVars()
static QByteArray prepareCustomShader(QSSGRenderCustomMaterial *customMaterial, const QSSGShaderCustomMaterialAdapter::StringPairList &uniforms, const QByteArray &snippet, QSSGShaderCache::ShaderType shaderType, QSSGCustomShaderMetaData &meta, bool multiViewCompatible)
QByteArrayView actualName
QPair< QByteArray, QByteArray > StringPair
QPair< QByteArray, QSSGCustomShaderMetaData > ShaderCodeAndMetaData
virtual float bumpAmount()=0
virtual bool isVertexColorsMaskEnabled()=0
virtual float clearcoatFresnelBias()=0
virtual float clearcoatRoughnessAmount()=0
virtual float heightAmount()=0
virtual ~QSSGShaderMaterialAdapter()
virtual QVector3D specularTint()=0
virtual bool isFresnelScaleBiasEnabled()=0
virtual float clearcoatNormalStrength()=0
virtual float maxHeightSamples()=0
virtual bool isVertexColorsEnabled()=0
virtual float occlusionAmount()=0
virtual bool isSpecularAmountSingleChannelEnabled()=0
virtual QSSGRenderImage * iblProbe()=0
virtual float specularAmount()=0
virtual bool usesCustomMorphing()=0
virtual float attenuationDistance()=0
virtual QVector3D attenuationColor()=0
virtual bool isClearcoatFresnelScaleBiasEnabled()=0
virtual float clearcoatAmount()=0
virtual bool usesCustomSkinning()=0
virtual float transmissionFactor()=0
virtual QSSGRenderDefaultMaterial::VertexColorMaskFlags vertexColorGreenMask()=0
virtual bool isPrincipled()=0
virtual bool isSpecularEnabled()=0
virtual bool isBaseColorSingleChannelEnabled()=0
virtual QVector3D emissiveColor()=0
virtual bool isEmissiveSingleChannelEnabled()=0
virtual float specularRoughness()=0
virtual bool isTransmissionEnabled()=0
virtual float pointSize()=0
virtual float fresnelPower()=0
virtual float metalnessAmount()=0
virtual float lineWidth()=0
virtual QVector4D color()=0
virtual QSSGRenderDefaultMaterial::VertexColorMaskFlags vertexColorBlueMask()=0
virtual float alphaCutOff()=0
virtual bool isInvertOpacityMapValue()=0
virtual float fresnelScale()=0
virtual float translucentFallOff()=0
virtual float diffuseLightWrap()=0
virtual float minHeightSamples()=0
virtual float thicknessFactor()=0
virtual bool hasLighting()=0
virtual bool isSpecularGlossy()=0
virtual QSSGRenderDefaultMaterial::MaterialSpecularModel specularModel()=0
virtual bool isClearcoatEnabled()=0
virtual QSSGRenderDefaultMaterial::MaterialAlphaMode alphaMode()=0
virtual float clearcoatFresnelPower()=0
virtual bool isMetalnessEnabled()=0
virtual QSSGRenderDefaultMaterial::VertexColorMaskFlags vertexColorRedMask()=0
virtual float clearcoatFresnelScale()=0
virtual float fresnelBias()=0
virtual QSSGRenderDefaultMaterial::VertexColorMaskFlags vertexColorAlphaMask()=0