|
VisuTwin Canvas
C++ 3D Engine — Metal Backend
|
Full PBR material with metalness/roughness workflow and advanced surface features. More...
#include <scene/materials/standardMaterial.h>
Public Member Functions | |
| float | anisotropy () const |
| Texture * | aoMap () const |
| const Vector2 & | aoMapOffset () const |
| float | aoMapRotation () const |
| const Vector2 & | aoMapTiling () const |
| float | bumpiness () const |
| float | clearCoat () const |
| float | clearCoatBumpiness () const |
| float | clearCoatGloss () const |
| bool | clearCoatGlossInvert () const |
| Texture * | clearCoatGlossMap () const |
| Texture * | clearCoatMap () const |
| Texture * | clearCoatNormalMap () const |
| void | clearDirtyShader () |
| Texture * | detailNormalMap () const |
| float | detailNormalScale () const |
| const TextureTransform & | detailNormalTransform () const |
| const Color & | diffuse () const |
| Texture * | diffuseMap () const |
| const Vector2 & | diffuseMapOffset () const |
| float | diffuseMapRotation () const |
| const Vector2 & | diffuseMapTiling () const |
| bool | dirtyShader () const |
| float | displacementBias () const |
| Texture * | displacementMap () const |
| float | displacementScale () const |
| const Color & | emissive () const |
| float | emissiveIntensity () const |
| Texture * | emissiveMap () const |
| const Vector2 & | emissiveMapOffset () const |
| float | emissiveMapRotation () const |
| const Vector2 & | emissiveMapTiling () const |
| void | getTextureSlots (std::vector< TextureSlot > &slots) const override |
| float | gloss () const |
| float | glossiness () const |
| bool | glossInvert () const |
| Texture * | glossMap () const |
| Texture * | heightMap () const |
| float | heightMapFactor () const |
| float | iridescenceIntensity () const |
| float | iridescenceIOR () const |
| Texture * | iridescenceMap () const |
| Texture * | iridescenceThicknessMap () const |
| float | iridescenceThicknessMax () const |
| float | iridescenceThicknessMin () const |
| float | metalness () const |
| Texture * | metalnessMap () const |
| const Vector2 & | metalnessMapOffset () const |
| float | metalnessMapRotation () const |
| const Vector2 & | metalnessMapTiling () const |
| Texture * | normalMap () const |
| const Vector2 & | normalMapOffset () const |
| float | normalMapRotation () const |
| const Vector2 & | normalMapTiling () const |
| float | opacity () const |
| Texture * | opacityMap () const |
| Texture * | reflectionMap () const |
| float | refractionIndex () const |
| void | reset () |
| void | setAnisotropy (const float value) |
| void | setAoMap (Texture *texture) |
| void | setAoMapOffset (const Vector2 &v) |
| void | setAoMapRotation (float deg) |
| void | setAoMapTiling (const Vector2 &v) |
| void | setBumpiness (const float value) |
| void | setClearCoat (const float value) |
| void | setClearCoatBumpiness (const float value) |
| void | setClearCoatGloss (const float value) |
| void | setClearCoatGlossInvert (const bool value) |
| void | setClearCoatGlossMap (Texture *texture) |
| void | setClearCoatMap (Texture *texture) |
| void | setClearCoatNormalMap (Texture *texture) |
| void | setDetailNormalMap (Texture *texture) |
| void | setDetailNormalScale (const float value) |
| void | setDetailNormalTransform (const TextureTransform &t) |
| void | setDiffuse (const Color &value) |
| void | setDiffuseMap (Texture *texture) |
| void | setDiffuseMapOffset (const Vector2 &v) |
| void | setDiffuseMapRotation (float deg) |
| void | setDiffuseMapTiling (const Vector2 &v) |
| void | setDisplacementBias (const float value) |
| void | setDisplacementMap (Texture *texture) |
| void | setDisplacementScale (const float value) |
| void | setEmissive (const Color &value) |
| void | setEmissiveIntensity (const float value) |
| void | setEmissiveMap (Texture *texture) |
| void | setEmissiveMapOffset (const Vector2 &v) |
| void | setEmissiveMapRotation (float deg) |
| void | setEmissiveMapTiling (const Vector2 &v) |
| void | setGloss (const float value) |
| void | setGlossiness (const float value) |
| void | setGlossInvert (const bool value) |
| void | setGlossMap (Texture *texture) |
| void | setHeightMap (Texture *texture) |
| void | setHeightMapFactor (const float value) |
| void | setIridescenceIntensity (const float value) |
| void | setIridescenceIOR (const float value) |
| void | setIridescenceMap (Texture *texture) |
| void | setIridescenceThicknessMap (Texture *texture) |
| void | setIridescenceThicknessMax (const float value) |
| void | setIridescenceThicknessMin (const float value) |
| void | setMetalness (const float value) |
| void | setMetalnessMap (Texture *texture) |
| void | setMetalnessMapOffset (const Vector2 &v) |
| void | setMetalnessMapRotation (float deg) |
| void | setMetalnessMapTiling (const Vector2 &v) |
| void | setNormalMap (Texture *texture) |
| void | setNormalMapOffset (const Vector2 &v) |
| void | setNormalMapRotation (float deg) |
| void | setNormalMapTiling (const Vector2 &v) |
| void | setOpacity (const float value) |
| void | setOpacityMap (Texture *texture) |
| void | setReflectionMap (Texture *texture) |
| void | setRefractionIndex (const float value) |
| void | setShadowCatcher (const bool value) |
| void | setSheenColor (const Color &value) |
| void | setSheenMap (Texture *texture) |
| void | setSheenRoughness (const float value) |
| void | setSpecGlossMap (Texture *texture) |
| void | setSpecular (const Color &value) |
| void | setSpecularColor (const Color &value) |
| void | setThickness (const float value) |
| void | setTransmissionFactor (const float value) |
| void | setTwoSidedLighting (const bool value) |
| void | setUseFog (const bool value) |
| void | setUseLighting (const bool value) |
| void | setUseMetalness (const bool value) |
| void | setUseOrenNayar (const bool value) |
| void | setUseSkybox (const bool value) |
| bool | shadowCatcher () const |
| const Color & | sheenColor () const |
| Texture * | sheenMap () const |
| float | sheenRoughness () const |
| Texture * | specGlossMap () const |
| const Color & | specular () const |
| const Color & | specularColor () const |
| StandardMaterial () | |
| float | thickness () const |
| float | transmissionFactor () const |
| bool | twoSidedLighting () const |
| void | updateUniforms (MaterialUniforms &uniforms) const override |
| bool | useFog () const |
| bool | useLighting () const |
| bool | useMetalness () const |
| bool | useOrenNayar () const |
| bool | useSkybox () const |
| Public Member Functions inherited from visutwin::canvas::Material | |
| float | alphaCutoff () const |
| AlphaMode | alphaMode () const |
| const Color & | baseColorFactor () const |
| Texture * | baseColorTexture () const |
| const TextureTransform & | baseColorTransform () const |
| int | baseColorUvSet () const |
| const std::shared_ptr< BlendState > & | blendState () const |
| void | clearParameters () |
| CullMode | cullMode () const |
| virtual const void * | customUniformData (size_t &outSize) const |
| const std::shared_ptr< DepthState > & | depthState () const |
| const Color & | emissiveFactor () const |
| Texture * | emissiveTexture () const |
| const TextureTransform & | emissiveTransform () const |
| int | emissiveUvSet () const |
| bool | hasBaseColorTexture () const |
| bool | hasEmissiveTexture () const |
| bool | hasMetallicRoughnessTexture () const |
| bool | hasNormalTexture () const |
| bool | hasOcclusionTexture () const |
| bool | isSkybox () const |
| Material () | |
| float | metallicFactor () const |
| Texture * | metallicRoughnessTexture () const |
| int | metallicRoughnessUvSet () const |
| const TextureTransform & | metalRoughTransform () const |
| const std::string & | name () const |
| float | normalScale () const |
| Texture * | normalTexture () const |
| const TextureTransform & | normalTransform () const |
| int | normalUvSet () const |
| bool | occludeDirect () const |
| uint32_t | occludeSpecular () const |
| float | occludeSpecularIntensity () const |
| float | occlusionStrength () const |
| Texture * | occlusionTexture () const |
| const TextureTransform & | occlusionTransform () const |
| int | occlusionUvSet () const |
| const ParameterValue * | parameter (const std::string &name) const |
| const std::unordered_map< std::string, ParameterValue > & | parameters () const |
| bool | removeParameter (const std::string &name) |
| float | roughnessFactor () const |
| void | setAlphaCutoff (const float value) |
| void | setAlphaMode (const AlphaMode mode) |
| void | setBaseColorFactor (const Color &value) |
| void | setBaseColorTexture (Texture *texture) |
| void | setBaseColorTransform (const TextureTransform &t) |
| void | setBaseColorUvSet (const int uvSet) |
| void | setBlendState (const std::shared_ptr< BlendState > &blendState) |
| void | setCullMode (const CullMode mode) |
| void | setDepthState (const std::shared_ptr< DepthState > &depthState) |
| void | setEmissiveFactor (const Color &value) |
| void | setEmissiveTexture (Texture *texture) |
| void | setEmissiveTransform (const TextureTransform &t) |
| void | setEmissiveUvSet (const int uvSet) |
| void | setHasBaseColorTexture (const bool value) |
| void | setHasEmissiveTexture (const bool value) |
| void | setHasMetallicRoughnessTexture (const bool value) |
| void | setHasNormalTexture (const bool value) |
| void | setHasOcclusionTexture (const bool value) |
| void | setIsSkybox (const bool value) |
| void | setMetallicFactor (const float value) |
| void | setMetallicRoughnessTexture (Texture *texture) |
| void | setMetallicRoughnessUvSet (const int uvSet) |
| void | setMetalRoughTransform (const TextureTransform &t) |
| void | setName (const std::string &name) |
| void | setNormalScale (const float value) |
| void | setNormalTexture (Texture *texture) |
| void | setNormalTransform (const TextureTransform &t) |
| void | setNormalUvSet (const int uvSet) |
| void | setOccludeDirect (const bool value) |
| void | setOccludeSpecular (const uint32_t value) |
| void | setOccludeSpecularIntensity (const float value) |
| void | setOcclusionStrength (const float value) |
| void | setOcclusionTexture (Texture *texture) |
| void | setOcclusionTransform (const TextureTransform &t) |
| void | setOcclusionUvSet (const int uvSet) |
| void | setParameter (const std::string &name, const ParameterValue &value) |
| void | setRoughnessFactor (const float value) |
| void | setShaderOverride (const std::shared_ptr< Shader > &shader) |
| void | setShaderVariantKey (const uint64_t value) |
| void | setTransparent (const bool value) |
| const std::shared_ptr< Shader > & | shaderOverride () const |
| uint64_t | shaderVariantKey () const |
| uint64_t | sortKey () const |
| bool | transparent () const |
| virtual | ~Material ()=default |
Additional Inherited Members | |
| Public Types inherited from visutwin::canvas::Material | |
| using | ParameterValue = std::variant<float, int32_t, uint32_t, bool, Color, Vector2, Vector3, Vector4, Matrix4, Texture*> |
Full PBR material with metalness/roughness workflow and advanced surface features.
StandardMaterial is the main, general-purpose material for physically-based rendering. It supports diffuse, specular, metalness, gloss/roughness, emissive, normal, AO, and height maps. Advanced features include clearcoat, anisotropy, sheen, iridescence, transmission, and displacement. Each map input is multiplied with its constant value and optional vertex colors.
Definition at line 23 of file standardMaterial.h.
| visutwin::canvas::StandardMaterial::StandardMaterial | ( | ) |
Definition at line 32 of file standardMaterial.cpp.
References reset().
Referenced by updateUniforms().
|
inline |
Definition at line 86 of file standardMaterial.h.
|
inline |
Definition at line 98 of file standardMaterial.h.
|
inline |
Definition at line 125 of file standardMaterial.h.
|
inline |
Definition at line 127 of file standardMaterial.h.
|
inline |
Definition at line 123 of file standardMaterial.h.
|
inline |
Definition at line 70 of file standardMaterial.h.
|
inline |
Definition at line 156 of file standardMaterial.h.
|
inline |
Definition at line 162 of file standardMaterial.h.
|
inline |
Definition at line 158 of file standardMaterial.h.
|
inline |
Definition at line 160 of file standardMaterial.h.
|
inline |
Definition at line 166 of file standardMaterial.h.
|
inline |
Definition at line 164 of file standardMaterial.h.
|
inline |
Definition at line 168 of file standardMaterial.h.
|
inline |
Definition at line 233 of file standardMaterial.h.
|
inline |
Definition at line 208 of file standardMaterial.h.
|
inline |
Definition at line 206 of file standardMaterial.h.
|
inline |
Definition at line 210 of file standardMaterial.h.
|
inline |
Definition at line 34 of file standardMaterial.h.
|
inline |
Definition at line 36 of file standardMaterial.h.
|
inline |
Definition at line 104 of file standardMaterial.h.
|
inline |
Definition at line 106 of file standardMaterial.h.
|
inline |
Definition at line 102 of file standardMaterial.h.
|
inline |
Definition at line 232 of file standardMaterial.h.
|
inline |
Definition at line 217 of file standardMaterial.h.
|
inline |
Definition at line 219 of file standardMaterial.h.
|
inline |
Definition at line 215 of file standardMaterial.h.
|
inline |
Definition at line 60 of file standardMaterial.h.
|
inline |
Definition at line 62 of file standardMaterial.h.
|
inline |
Definition at line 64 of file standardMaterial.h.
|
inline |
Definition at line 132 of file standardMaterial.h.
|
inline |
Definition at line 134 of file standardMaterial.h.
|
inline |
Definition at line 130 of file standardMaterial.h.
|
overridevirtual |
Populates the list of textures this material wants bound to fragment shader slots. Slot assignment: 0=baseColor, 1=normal, 3=metalRoughness, 4=occlusion, 5=emissive, 7=clearCoat, 13=clearCoatGloss, 14=clearCoatNormal. Slots 2, 6 are scene-global (envAtlas, shadow) and not material-owned.
Reimplemented from visutwin::canvas::Material.
Definition at line 237 of file standardMaterial.cpp.
References visutwin::canvas::Material::getTextureSlots().
|
inline |
Definition at line 52 of file standardMaterial.h.
|
inline |
Definition at line 199 of file standardMaterial.h.
|
inline |
Definition at line 54 of file standardMaterial.h.
|
inline |
Definition at line 56 of file standardMaterial.h.
|
inline |
Definition at line 80 of file standardMaterial.h.
|
inline |
Definition at line 82 of file standardMaterial.h.
|
inline |
Definition at line 182 of file standardMaterial.h.
|
inline |
Definition at line 184 of file standardMaterial.h.
|
inline |
Definition at line 190 of file standardMaterial.h.
|
inline |
Definition at line 192 of file standardMaterial.h.
|
inline |
Definition at line 188 of file standardMaterial.h.
|
inline |
Definition at line 186 of file standardMaterial.h.
|
inline |
Definition at line 44 of file standardMaterial.h.
|
inline |
Definition at line 48 of file standardMaterial.h.
|
inline |
Definition at line 118 of file standardMaterial.h.
|
inline |
Definition at line 120 of file standardMaterial.h.
|
inline |
Definition at line 116 of file standardMaterial.h.
|
inline |
Definition at line 68 of file standardMaterial.h.
|
inline |
Definition at line 111 of file standardMaterial.h.
|
inline |
Definition at line 113 of file standardMaterial.h.
|
inline |
Definition at line 109 of file standardMaterial.h.
|
inline |
Definition at line 74 of file standardMaterial.h.
|
inline |
Definition at line 76 of file standardMaterial.h.
|
inline |
Definition at line 150 of file standardMaterial.h.
|
inline |
Definition at line 92 of file standardMaterial.h.
| void visutwin::canvas::StandardMaterial::reset | ( | ) |
Definition at line 37 of file standardMaterial.cpp.
References visutwin::canvas::CULLFACE_BACK, visutwin::canvas::OPAQUE, visutwin::canvas::Material::setAlphaCutoff(), visutwin::canvas::Material::setAlphaMode(), visutwin::canvas::Material::setCullMode(), visutwin::canvas::Material::setOccludeDirect(), visutwin::canvas::Material::setOccludeSpecular(), visutwin::canvas::Material::setOccludeSpecularIntensity(), visutwin::canvas::Material::setTransparent(), and visutwin::canvas::SPECOCC_AO.
Referenced by StandardMaterial().
|
inline |
Definition at line 87 of file standardMaterial.h.
|
inline |
Definition at line 99 of file standardMaterial.h.
|
inline |
Definition at line 126 of file standardMaterial.h.
|
inline |
Definition at line 128 of file standardMaterial.h.
|
inline |
Definition at line 124 of file standardMaterial.h.
|
inline |
Definition at line 71 of file standardMaterial.h.
|
inline |
Definition at line 157 of file standardMaterial.h.
|
inline |
Definition at line 163 of file standardMaterial.h.
|
inline |
Definition at line 159 of file standardMaterial.h.
|
inline |
Definition at line 161 of file standardMaterial.h.
|
inline |
Definition at line 167 of file standardMaterial.h.
|
inline |
Definition at line 165 of file standardMaterial.h.
|
inline |
Definition at line 169 of file standardMaterial.h.
|
inline |
Definition at line 209 of file standardMaterial.h.
|
inline |
Definition at line 207 of file standardMaterial.h.
|
inline |
Definition at line 211 of file standardMaterial.h.
|
inline |
Definition at line 35 of file standardMaterial.h.
|
inline |
Definition at line 37 of file standardMaterial.h.
|
inline |
Definition at line 105 of file standardMaterial.h.
|
inline |
Definition at line 107 of file standardMaterial.h.
|
inline |
Definition at line 103 of file standardMaterial.h.
|
inline |
Definition at line 218 of file standardMaterial.h.
|
inline |
Definition at line 220 of file standardMaterial.h.
|
inline |
Definition at line 216 of file standardMaterial.h.
|
inline |
Definition at line 61 of file standardMaterial.h.
|
inline |
Definition at line 63 of file standardMaterial.h.
|
inline |
Definition at line 65 of file standardMaterial.h.
|
inline |
Definition at line 133 of file standardMaterial.h.
|
inline |
Definition at line 135 of file standardMaterial.h.
|
inline |
Definition at line 131 of file standardMaterial.h.
|
inline |
Definition at line 53 of file standardMaterial.h.
|
inline |
Definition at line 200 of file standardMaterial.h.
|
inline |
Definition at line 55 of file standardMaterial.h.
|
inline |
Definition at line 57 of file standardMaterial.h.
|
inline |
Definition at line 81 of file standardMaterial.h.
|
inline |
Definition at line 83 of file standardMaterial.h.
|
inline |
Definition at line 183 of file standardMaterial.h.
|
inline |
Definition at line 185 of file standardMaterial.h.
|
inline |
Definition at line 191 of file standardMaterial.h.
|
inline |
Definition at line 193 of file standardMaterial.h.
|
inline |
Definition at line 189 of file standardMaterial.h.
|
inline |
Definition at line 187 of file standardMaterial.h.
|
inline |
Definition at line 45 of file standardMaterial.h.
|
inline |
Definition at line 49 of file standardMaterial.h.
|
inline |
Definition at line 119 of file standardMaterial.h.
|
inline |
Definition at line 121 of file standardMaterial.h.
|
inline |
Definition at line 117 of file standardMaterial.h.
|
inline |
Definition at line 69 of file standardMaterial.h.
|
inline |
Definition at line 112 of file standardMaterial.h.
|
inline |
Definition at line 114 of file standardMaterial.h.
|
inline |
Definition at line 110 of file standardMaterial.h.
|
inline |
Definition at line 75 of file standardMaterial.h.
|
inline |
Definition at line 77 of file standardMaterial.h.
|
inline |
Definition at line 151 of file standardMaterial.h.
|
inline |
Definition at line 93 of file standardMaterial.h.
|
inline |
Definition at line 230 of file standardMaterial.h.
|
inline |
Definition at line 174 of file standardMaterial.h.
|
inline |
Definition at line 178 of file standardMaterial.h.
|
inline |
Definition at line 176 of file standardMaterial.h.
|
inline |
Definition at line 202 of file standardMaterial.h.
|
inline |
Definition at line 41 of file standardMaterial.h.
|
inline |
Definition at line 198 of file standardMaterial.h.
|
inline |
Definition at line 95 of file standardMaterial.h.
|
inline |
Definition at line 91 of file standardMaterial.h.
|
inline |
Definition at line 145 of file standardMaterial.h.
|
inline |
Definition at line 139 of file standardMaterial.h.
|
inline |
Definition at line 141 of file standardMaterial.h.
|
inline |
Definition at line 47 of file standardMaterial.h.
|
inline |
Definition at line 225 of file standardMaterial.h.
|
inline |
Definition at line 143 of file standardMaterial.h.
|
inline |
Definition at line 229 of file standardMaterial.h.
|
inline |
Definition at line 173 of file standardMaterial.h.
|
inline |
Definition at line 177 of file standardMaterial.h.
|
inline |
Definition at line 175 of file standardMaterial.h.
|
inline |
Definition at line 201 of file standardMaterial.h.
|
inline |
Definition at line 40 of file standardMaterial.h.
|
inline |
Definition at line 197 of file standardMaterial.h.
|
inline |
Definition at line 94 of file standardMaterial.h.
|
inline |
Definition at line 90 of file standardMaterial.h.
|
inline |
Definition at line 144 of file standardMaterial.h.
|
overridevirtual |
Packs material properties into a GPU-ready MaterialUniforms struct. Base implementation reads from typed properties and custom parameter overrides.
Reimplemented from visutwin::canvas::Material.
Definition at line 126 of file standardMaterial.cpp.
References visutwin::canvas::MaterialUniforms::anisotropy, visutwin::canvas::MaterialUniforms::baseColor, visutwin::canvas::Material::baseColorTexture(), visutwin::canvas::MaterialUniforms::clearCoatBumpiness, visutwin::canvas::MaterialUniforms::clearCoatFactor, visutwin::canvas::MaterialUniforms::clearCoatRoughness, visutwin::canvas::MaterialUniforms::detailDisplacementParams, visutwin::canvas::MaterialUniforms::detailNormalTransform0, visutwin::canvas::MaterialUniforms::detailNormalTransform1, visutwin::canvas::MaterialUniforms::emissiveColor, visutwin::canvas::MaterialUniforms::flags, visutwin::canvas::MaterialUniforms::heightMapFactor, visutwin::canvas::MaterialUniforms::iridescenceParams, visutwin::canvas::MaterialUniforms::metallicFactor, visutwin::canvas::MaterialUniforms::normalScale, visutwin::canvas::MaterialUniforms::refractionIndex, visutwin::canvas::MaterialUniforms::roughnessFactor, visutwin::canvas::MaterialUniforms::sheenColor, visutwin::canvas::MaterialUniforms::specGlossParams, StandardMaterial(), visutwin::canvas::MaterialUniforms::thickness, visutwin::canvas::MaterialUniforms::transmissionFactor, and visutwin::canvas::Material::updateUniforms().
|
inline |
Definition at line 138 of file standardMaterial.h.
|
inline |
Definition at line 140 of file standardMaterial.h.
|
inline |
Definition at line 46 of file standardMaterial.h.
|
inline |
Definition at line 224 of file standardMaterial.h.
|
inline |
Definition at line 142 of file standardMaterial.h.