class
#include <esp/gfx/PbrShader.h>
PbrShader
Public types
- class Configuration
- PBR Shader configuration.
- struct PbrEquationScales
-
enum (anonymous): Magnum::
UnsignedInt { ColorOutput = Magnum::Shaders::GenericGL3D::ColorOutput, ObjectIdOutput = Magnum::Shaders::GenericGL3D::ObjectIdOutput } -
enum class Flag: Magnum::
UnsignedLong { BaseColorTexture = 1ULL << 0, NoneRoughnessMetallicTexture = 1ULL << 1, OcclusionTexture = 1ULL << 2, NormalTexture = 1ULL << 3, EmissiveTexture = 1ULL << 4, VertexColor = 1ULL << 5, TextureTransformation = 1ULL << 6, PrecomputedTangent = 1ULL << 7, ObjectId = 1ULL << 8, InstancedObjectId = (1ULL << 9) | ObjectId, ClearCoatLayer = 1ULL << 10, ClearCoatTexture = (1ULL << 11) | ClearCoatLayer, ClearCoatRoughnessTexture = (1ULL << 12) | ClearCoatLayer, ClearCoatNormalTexture = (1ULL << 13) | ClearCoatLayer, SpecularLayer = 1ULL << 14, SpecularLayerTexture = (1ULL << 15) | SpecularLayer, SpecularLayerColorTexture = (1ULL << 16) | SpecularLayer, AnisotropyLayer = 1ULL << 17, AnisotropyLayerTexture = (1ULL << 18) | AnisotropyLayer, TransmissionLayer = 1ULL << 19, TransmissionLayerTexture = (1ULL << 20) | TransmissionLayer, VolumeLayer = 1ULL << 21, VolumeLayerThicknessTexture = (1ULL << 22) | VolumeLayer, DoubleSided = 1ULL << 23, SkinnedMesh = 1ULL << 23, DirectLighting = 1ULL << 24, ImageBasedLighting = 1ULL << 25, UseBurleyDiffuse = 1ULL << 26, SkipMissingTBNCalc = 1ULL << 27, UseMikkelsenTBN = 1ULL << 28, MapMatTxtrToLinear = 1ULL << 29, MapIBLTxtrToLinear = 1ULL << 30, MapOutputToSRGB = 1ULL << 31, UseDirectLightTonemap = 1ULL << 32, UseIBLTonemap = 1ULL << 33, SkipClearCoatLayer = 1ULL << 34, SkipSpecularLayer = 1ULL << 35, SkipAnisotropyLayer = 1ULL << 36, DebugDisplay = 1ULL << 37 } - Flags enums describing various features present in shader.
- enum class PbrDebugDisplay: uint8_t { None = 0, DirectDiffuse = 1, DirectSpecular = 2, IblDiffuse = 3, IblSpecular = 4, Normal = 5 }
-
using Position = Magnum::
Shaders:: GenericGL3D:: Position - vertex positions
-
using Normal = Magnum::
Shaders:: GenericGL3D:: Normal - normal direction
- using JointIds = Magnum::Shaders::GenericGL3D::JointIds
- Joint ids (See Magnum/Shaders/PhongGL.h)
- using Weights = Magnum::Shaders::GenericGL3D::Weights
- Weights (See Magnum/Shaders/PhongGL.h)
- using SecondaryJointIds = Magnum::Shaders::GenericGL3D::SecondaryJointIds
- Secondary joint ids (See Magnum/Shaders/PhongGL.h)
- using SecondaryWeights = Magnum::Shaders::GenericGL3D::SecondaryWeights
- Secondary weights (See Magnum/Shaders/PhongGL.h)
-
using TextureCoordinates = Magnum::
Shaders:: GenericGL3D:: TextureCoordinates - 2D texture coordinates
-
using Tangent4 = Magnum::
Shaders:: GenericGL3D:: Tangent4 - Tangent direction with the fourth component indicating the handedness.
-
using Color4 = Magnum::
Shaders:: GenericGL3D:: Color4 - Four-component vertex color.
-
using Flags = Corrade::
Containers:: EnumSet<Flag> - Flags.
Constructors, destructors, conversion operators
Public functions
- auto operator=(const PbrShader&) -> PbrShader& deleted
- Copying is not allowed.
- auto operator=(PbrShader&&) -> PbrShader& defaulted noexcept
- Move assignment.
-
auto lightCount() const -> Magnum::
UnsignedInt - Get number of lights.
- auto directLightingIsEnabled() const -> bool
- whether this shader as direct lighting enabled and there are lights defined.
- auto lightingIsEnabled() const -> bool
- whether this shader has any lighting enabled, either direct or indirect/IBL.
- auto directAndIBLIsEnabled() const -> bool
- whether this shader has both direct lighting and IBL enabled.
- auto isTextured() const -> bool
- whether any textures are present in this shader.
- auto flags() const -> Flags
- Flags.
-
auto bindBaseColorTexture(Magnum::
GL:: Texture2D& texture) -> PbrShader& - Bind the BaseColor texture.
-
auto bindMetallicRoughnessTexture(Magnum::
GL:: Texture2D& texture) -> PbrShader& - Bind the metallic-roughness texture NOTE that though MetallicRoughnessTexture exists, it does not mean both metallic texture and roughness texture exist.
-
auto bindNormalTexture(Magnum::
GL:: Texture2D& texture) -> PbrShader& - Bind the normal texture.
-
auto bindEmissiveTexture(Magnum::
GL:: Texture2D& texture) -> PbrShader& - Bind the emissive texture.
-
auto bindClearCoatFactorTexture(Magnum::
GL:: Texture2D& texture) -> PbrShader& - Bind the clearcoat factor texture.
-
auto bindClearCoatRoughnessTexture(Magnum::
GL:: Texture2D& texture) -> PbrShader& - Bind the clearcoat roughness texture.
-
auto bindClearCoatNormalTexture(Magnum::
GL:: Texture2D& texture) -> PbrShader& - Bind the clearcoat normal texture.
-
auto bindSpecularLayerTexture(Magnum::
GL:: Texture2D& texture) -> PbrShader& - Bind the specular layer texture.
-
auto bindSpecularLayerColorTexture(Magnum::
GL:: Texture2D& texture) -> PbrShader& - Bind the specular layer color texture.
-
auto bindAnisotropyLayerTexture(Magnum::
GL:: Texture2D& texture) -> PbrShader& - Bind the anisotropy layer texture.
-
auto bindIrradianceCubeMap(Magnum::
GL:: CubeMapTexture& texture) -> PbrShader& - Bind the irradiance cubemap texture.
-
auto bindBrdfLUT(Magnum::
GL:: Texture2D& texture) -> PbrShader& - Bind the BRDF LUT texture NOTE: requires Flag::ImageBasedLighting is set.
-
auto bindPrefilteredMap(Magnum::
GL:: CubeMapTexture& texture) -> PbrShader& - Bind the prefiltered environment map (cubemap texture) NOTE: requires Flag::ImageBasedLighting is set.
-
auto setTextureMatrix(const Magnum::
Matrix3& matrix) -> PbrShader& - set the texture transformation matrix
-
auto setProjectionMatrix(const Magnum::
Matrix4& matrix) -> PbrShader& - Set "projection" matrix to the uniform on GPU.
-
auto setViewMatrix(const Magnum::
Matrix4& matrix) -> PbrShader& - Set view matrix to the uniform on GPU.
-
auto setModelMatrix(const Magnum::
Matrix4& matrix) -> PbrShader& - Set model matrix to the uniform on GPU.
-
auto setNormalMatrix(const Magnum::
Matrix3x3& matrix) -> PbrShader& - Set normal matrix to the uniform on GPU normal = inverse transpose of the up-left 3x3 matrix of the modelview matrix.
-
auto setBaseColor(const Magnum::
Color4& color) -> PbrShader& - Set base color to the uniform on GPU.
-
auto setEmissiveColor(const Magnum::
Color3& color) -> PbrShader& - Set emissive color to the uniform on GPU.
- auto setRoughness(float roughness) -> PbrShader&
- Set roughness to the uniform on GPU.
- auto setMetallic(float metallic) -> PbrShader&
- Set metallic to the uniform on GPU.
- auto setIndexOfRefraction(float ior) -> PbrShader&
- Set index of refraction.
- auto setClearCoatFactor(float ccFactor) -> PbrShader&
- Set clearcoat intensity/factor.
- auto setClearCoatRoughness(float ccRoughness) -> PbrShader&
- Set clearcoat roughness.
- auto setClearCoatNormalTextureScale(float ccTextureScale) -> PbrShader&
- Set clearcoat normal texture scale.
- auto setSpecularLayerFactor(float specLayerFactor) -> PbrShader&
- Set specular layer factor.
-
auto setSpecularLayerColorFactor(const Magnum::
Color3& color) -> PbrShader& - Set specular layer color factor.
- auto setAnisotropyLayerFactor(float anisoLayerFactor) -> PbrShader&
- Set anisotropy layer factor.
-
auto setAnisotropyLayerDirection(const Magnum::
Vector2& anisoLayerDirection) -> PbrShader& - Set anisotropy layer direction 2d vector.
- auto setObjectId(unsigned int objectId) -> PbrShader&
- Set object id to the uniform on GPU.
-
auto setCameraWorldPosition(const Magnum::
Vector3& cameraWorldPos) -> PbrShader& - Set object id to the uniform on GPU.
- auto setPrefilteredMapMipLevels(unsigned int mipLevels) -> PbrShader&
- Set total mipmap levels of the prefiltered environment map to the uniform on GPU.
-
auto setLightPositions(Corrade::
Containers:: ArrayView<const Magnum:: Vector4> vectors) -> PbrShader& - Set light positions or directions.
-
auto setLightPositions(std::
initializer_list<Magnum:: Vector4> vectors) -> PbrShader& -
auto setLightVector(unsigned int lightIndex,
const Magnum::
Vector4& vec) -> PbrShader& - Set the position or direction of a specific light See vec for details.
-
auto setLightPosition(unsigned int lightIndex,
const Magnum::
Vector3& pos) -> PbrShader& - Set the position of a specific light.
-
auto setLightDirection(unsigned int lightIndex,
const Magnum::
Vector3& dir) -> PbrShader& - Set the direction of a specific light.
- auto setLightRange(unsigned int lightIndex, float range) -> PbrShader&
- Set the range of a specific light.
-
auto setLightColor(unsigned int lightIndex,
const Magnum::
Vector3& color, float intensity = 1.0f) -> PbrShader& - Set the color of a specific light.
-
auto setLightColors(Corrade::
Containers:: ArrayView<const Magnum:: Color3> colors) -> PbrShader& - Set the colors of the lights.
-
auto setLightColors(std::
initializer_list<Magnum:: Color3> colors) -> PbrShader& -
auto setLightRanges(Corrade::
Containers:: ArrayView<const float> ranges) -> PbrShader& - Set the ranges of the lights.
-
auto setLightRanges(std::
initializer_list<float> ranges) -> PbrShader& - auto setDirectLightIntensity(float lightIntensity) -> PbrShader&
- Set the global lighting intensity applied equally across all lights for direct lighting.
-
auto setGamma(const Magnum::
Vector3& gamma) -> PbrShader& - Set the gamma value used for remapping sRGB to linear approximations.
- auto setTonemapExposure(float exposure) -> PbrShader&
- Set the IBL exposure value.
- auto setNormalTextureScale(float scale) -> PbrShader&
- Set the scale of the normal texture.
-
auto setJointMatrices(Corrade::
Containers:: ArrayView<const Magnum:: Matrix4> matrices) -> PbrShader& - Set joint matrices (See Magnum/Shaders/PhongGL.h)
-
auto setJointMatrices(std::
initializer_list<Magnum:: Matrix4> matrices) -> PbrShader& -
auto setJointMatrix(Magnum::
UnsignedInt id, const Magnum:: Matrix4& matrix) -> PbrShader& - Set joint matrix for given joint (See Magnum/Shaders/PhongGL.h)
-
auto setPerInstanceJointCount(Magnum::
UnsignedInt count) -> PbrShader& - Set per-instance joint count (See Magnum/Shaders/PhongGL.h)
- auto setPbrEquationScales(const PbrEquationScales& scales) -> PbrShader&
- Set the scales for different components in the pbr equation.
- auto setDebugDisplay(PbrDebugDisplay index) -> PbrShader&
- debug display visualization
Protected variables
- Flags flags_
-
Magnum::
UnsignedInt lightCount_ -
Magnum::
UnsignedInt jointCount_ -
Magnum::
UnsignedInt perVertexJointCount_ -
Magnum::
UnsignedInt secondaryPerVertexJointCount_ - bool isSkinned_
- bool isTextured_
- bool lightingIsEnabled_
- bool directLightingIsEnabled_
- bool directAndIBLisEnabled_
- bool mapInputToLinear_
- int viewMatrixUniform_
- int modelMatrixUniform_
- int normalMatrixUniform_
- int projMatrixUniform_
- int baseColorUniform_
- int roughnessUniform_
- int metallicUniform_
- int iorUniform_
- int emissiveColorUniform_
- int objectIdUniform_
- int textureMatrixUniform_
- int normalTextureScaleUniform_
- int lightColorsUniform_
- int lightRangesUniform_
- int jointMatricesUniform_
- int perInstanceJointCountUniform_
- int lightDirectionsUniform_
- int directLightingIntensityUniform_
- int tonemapExposureUniform_
- int gammaUniform_
- int invGammaUniform_
- int cameraWorldPosUniform_
- int prefilteredMapMipLevelsUniform_
- int clearCoatFactorUniform_
- int clearCoatTextureScaleUniform_
- int clearCoatRoughnessUniform_
- int specularLayerFactorUniform_
- int specularLayerColorFactorUniform_
- int anisotropyLayerFactorUniform_
- int anisotropyLayerDirectionUniform_
- int componentScalesUniform_
- int pbrDebugDisplayUniform_
Enum documentation
enum esp:: gfx:: PbrShader:: (anonymous): Magnum:: UnsignedInt
Enumerators | |
---|---|
ColorOutput |
Color shader output. Generic output, present always. Expects three- or four-component floating-point or normalized buffer attachment. |
ObjectIdOutput |
Object ID shader output. Generic output, present only if Flag::ObjectId is set. Expects a single-component unsigned integral attachment. Writes the value set in setObjectId() there. |
enum class esp:: gfx:: PbrShader:: Flag: Magnum:: UnsignedLong
Flags enums describing various features present in shader.
Enumerators | |
---|---|
BaseColorTexture |
Multiply base color with the baseColor texture. |
NoneRoughnessMetallicTexture |
This flag term means the NoneRoughnessMetallic texture is present, with the Roughness in G channel and metalness in B channel (R and Alpha channels are not used). |
OcclusionTexture |
|
NormalTexture |
Modify normals according to a texture. |
EmissiveTexture |
emissive texture |
VertexColor |
Support mesh vertex colors |
TextureTransformation |
Enable texture coordinate transformation. If this flag is set, the shader expects that at least one of Flag::BaseColorTexture, Flag::RoughnessTexture, Flag::MetallicTexture, Flag::NormalTexture, Flag::EmissiveTexture Flag::NoneRoughnessMetallicTexture or Flag::OcclusionRoughnessMetallicTexture is enabled as well. |
PrecomputedTangent |
TODO: Do we need instanced object? (instanced texture, instanced id etc.) TODO: Do we need VertexColor? Multiply diffuse color with a vertex color. Requires either the Color3 or Color4 attribute to be present. |
ObjectId |
Enable object ID output for this shader. |
InstancedObjectId |
Support Instanced object ID. Retrieves a per-instance / per-vertex object ID from the ObjectId attribute. If this is false, the shader will use the node's semantic ID |
ClearCoatLayer |
Has ClearCoat layer. |
ClearCoatTexture |
Has ClearCoat Texture in ClearCoat layer |
ClearCoatRoughnessTexture |
Has Roughness Texture in ClearCoat layer |
ClearCoatNormalTexture |
Has Normal Texture in ClearCoat layer |
SpecularLayer |
Has KHR_materials_specular layer |
SpecularLayerTexture |
Has Specular Texture in KHR_materials_specular layer |
SpecularLayerColorTexture |
Has Specular Color Texture in KHR_materials_specular layer |
AnisotropyLayer |
Has KHR_materials_anisotropy layer |
AnisotropyLayerTexture |
Has Anisotropy Texture in KHR_materials_anisotropy layer |
TransmissionLayer |
Has KHR_materials_transmission layer |
TransmissionLayerTexture |
Has transmission texture in KHR_materials_transmission layer |
VolumeLayer |
Has KHR_materials_volume layer |
VolumeLayerThicknessTexture |
Has Thickness texture in KHR_materials_volume layer |
DoubleSided |
Enable double-sided rendering. |
SkinnedMesh |
Enable Skin rendering |
DirectLighting |
If not set, disable direct lighting regardless of presence of lights. Ignored if no direct lights present. |
ImageBasedLighting |
Enable image based lighting |
UseBurleyDiffuse |
Whether or not the direct lighting diffuse calculation should use the Disney/Burley algorithm or the lambertian calculation. If set, the PBR shader uses a calc based on modified to be more energy conserving. https://media.disneyanimation.com/uploads/production/publication_ |
SkipMissingTBNCalc |
If set, skip TBN frame calculation in fragment shader. This calculation enables normal textures and anisotropy when no precomputed tangents are provided. TODO : implement in shader. |
UseMikkelsenTBN |
Use the Mikkelsen algorithm to calculate TBN, as per https:/ |
MapMatTxtrToLinear |
Whether we should use shader-based srgb->linear approx remapping of applicable material color textures in PBR rendering for direct lighting and IBL. This field should be removed/ignored when Magnum fully supports sRGB texture conversion on load. |
MapIBLTxtrToLinear |
Whether we should use shader-based srgb->linear approx remapping of applicable IBL environment textures in PBR rendering for IBL calculations. This field should be removed/ignored when Magnum fully supports sRGB texture conversion on load. |
MapOutputToSRGB |
Whether we should use shader-based linear->srgb approx remapping of color output in PBR rendering for direct lighting and IBL results. This field should be removed/ignored when an appropriate framebuffer is used for output to handle this conversion. |
UseDirectLightTonemap |
Whether or not to use tonemappping for direct lighting. |
UseIBLTonemap |
Whether or not to use tonemappping for image-based lighting. |
SkipClearCoatLayer |
Whether we should skip all clearcoat layer calcs. Values will still be sent to the shader, but no actual calcuations will be performed if this is set. |
SkipSpecularLayer |
Whether we should skip all specular layer calcs. Values will still be sent to the shader, but no actual calcuations will be performed if this is set. |
SkipAnisotropyLayer |
Whether we should skip all anisotropy layer calcs. Values will still be sent to the shader, but no actual calcuations will be performed if this is set. |
DebugDisplay |
Enable shader debug mode. Then developer can set the uniform PbrDebugDisplay in the fragment shader for debugging |
Typedef documentation
typedef Magnum:: Shaders:: GenericGL3D:: TextureCoordinates esp:: gfx:: PbrShader:: TextureCoordinates
2D texture coordinates
Used only if at least one of Flag::BaseColorTexture, Flag::NormalTexture and Flag::RoughnessTexture Flag::MetallicTexture is set.
typedef Magnum:: Shaders:: GenericGL3D:: Tangent4 esp:: gfx:: PbrShader:: Tangent4
Tangent direction with the fourth component indicating the handedness.
T = Tangent, B = BiTangent, N = Normal
1.0 means T, B, N form a right-handed coordinate; -1.0 means T, B, N form a left-handed coordinate;
Used only if Flag::NormalTexture is set.
Function documentation
esp:: gfx:: PbrShader:: PbrShader(const Configuration& config) explicit
Constructor.
Parameters | |
---|---|
config | : PbrShader::Configuration holding flags structure, number of lights, joints, etc. |
PbrShader& esp:: gfx:: PbrShader:: bindBaseColorTexture(Magnum:: GL:: Texture2D& texture)
Bind the BaseColor texture.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: bindMetallicRoughnessTexture(Magnum:: GL:: Texture2D& texture)
Bind the metallic-roughness texture NOTE that though MetallicRoughnessTexture exists, it does not mean both metallic texture and roughness texture exist.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: bindNormalTexture(Magnum:: GL:: Texture2D& texture)
Bind the normal texture.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: bindEmissiveTexture(Magnum:: GL:: Texture2D& texture)
Bind the emissive texture.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: bindClearCoatFactorTexture(Magnum:: GL:: Texture2D& texture)
Bind the clearcoat factor texture.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: bindClearCoatRoughnessTexture(Magnum:: GL:: Texture2D& texture)
Bind the clearcoat roughness texture.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: bindClearCoatNormalTexture(Magnum:: GL:: Texture2D& texture)
Bind the clearcoat normal texture.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: bindSpecularLayerTexture(Magnum:: GL:: Texture2D& texture)
Bind the specular layer texture.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: bindSpecularLayerColorTexture(Magnum:: GL:: Texture2D& texture)
Bind the specular layer color texture.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: bindAnisotropyLayerTexture(Magnum:: GL:: Texture2D& texture)
Bind the anisotropy layer texture.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: bindIrradianceCubeMap(Magnum:: GL:: CubeMapTexture& texture)
Bind the irradiance cubemap texture.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: bindBrdfLUT(Magnum:: GL:: Texture2D& texture)
Bind the BRDF LUT texture NOTE: requires Flag::ImageBasedLighting is set.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: bindPrefilteredMap(Magnum:: GL:: CubeMapTexture& texture)
Bind the prefiltered environment map (cubemap texture) NOTE: requires Flag::ImageBasedLighting is set.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setTextureMatrix(const Magnum:: Matrix3& matrix)
set the texture transformation matrix
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setProjectionMatrix(const Magnum:: Matrix4& matrix)
Set "projection" matrix to the uniform on GPU.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setViewMatrix(const Magnum:: Matrix4& matrix)
Set view matrix to the uniform on GPU.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setModelMatrix(const Magnum:: Matrix4& matrix)
Set model matrix to the uniform on GPU.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setNormalMatrix(const Magnum:: Matrix3x3& matrix)
Set normal matrix to the uniform on GPU normal = inverse transpose of the up-left 3x3 matrix of the modelview matrix.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setBaseColor(const Magnum:: Color4& color)
Set base color to the uniform on GPU.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setEmissiveColor(const Magnum:: Color3& color)
Set emissive color to the uniform on GPU.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setRoughness(float roughness)
Set roughness to the uniform on GPU.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setMetallic(float metallic)
Set metallic to the uniform on GPU.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setIndexOfRefraction(float ior)
Set index of refraction.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setClearCoatFactor(float ccFactor)
Set clearcoat intensity/factor.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setClearCoatRoughness(float ccRoughness)
Set clearcoat roughness.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setClearCoatNormalTextureScale(float ccTextureScale)
Set clearcoat normal texture scale.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setSpecularLayerFactor(float specLayerFactor)
Set specular layer factor.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setSpecularLayerColorFactor(const Magnum:: Color3& color)
Set specular layer color factor.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setAnisotropyLayerFactor(float anisoLayerFactor)
Set anisotropy layer factor.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setAnisotropyLayerDirection(const Magnum:: Vector2& anisoLayerDirection)
Set anisotropy layer direction 2d vector.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setObjectId(unsigned int objectId)
Set object id to the uniform on GPU.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setCameraWorldPosition(const Magnum:: Vector3& cameraWorldPos)
Set object id to the uniform on GPU.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setPrefilteredMapMipLevels(unsigned int mipLevels)
Set total mipmap levels of the prefiltered environment map to the uniform on GPU.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setLightPositions(Corrade:: Containers:: ArrayView<const Magnum:: Vector4> vectors)
Set light positions or directions.
Parameters | |
---|---|
vectors | an array of the light vectors |
Returns | Reference to self (for method chaining) |
when vec.w == 0, it means vec.xyz is the light direction; when vec.w == 1, it means vec.xyz is the light position; vec is an element in the "vectors" array
PbrShader& esp:: gfx:: PbrShader:: setLightPositions(std:: initializer_list<Magnum:: Vector4> vectors)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
PbrShader& esp:: gfx:: PbrShader:: setLightVector(unsigned int lightIndex,
const Magnum:: Vector4& vec)
Set the position or direction of a specific light See vec for details.
Parameters | |
---|---|
lightIndex | the index of the light, MUST be smaller than lightCount_ |
vec | the direction (or position) of the light in camera space; when vec.w == 0, it means vec.xyz is the light direction; when vec.w == 1, it means vec.xyz is the light position; |
Returns | Reference to self (for method chaining) Note: If the light was a directional (point) light, it will be overridden as a point (directional) light |
PbrShader& esp:: gfx:: PbrShader:: setLightPosition(unsigned int lightIndex,
const Magnum:: Vector3& pos)
Set the position of a specific light.
Parameters | |
---|---|
lightIndex | the index of the light, MUST be smaller than lightCount_ |
pos | the position of the light in camera space |
Returns | Reference to self (for method chaining) Note: If the light was a directional light, it will be overridden as a point light; |
PbrShader& esp:: gfx:: PbrShader:: setLightDirection(unsigned int lightIndex,
const Magnum:: Vector3& dir)
Set the direction of a specific light.
Parameters | |
---|---|
lightIndex | the index of the light, MUST be smaller than lightCount_ |
dir | the direction of the light in camera space |
Returns | Reference to self (for method chaining) NOTE: If the light was a point light, it will be overridden as a direction light; |
PbrShader& esp:: gfx:: PbrShader:: setLightRange(unsigned int lightIndex,
float range)
Set the range of a specific light.
Parameters | |
---|---|
lightIndex | the index of the light, MUST be smaller than lightCount_ |
range | the range of the light |
Returns | Reference to self (for method chaining) |
PbrShader& esp:: gfx:: PbrShader:: setLightColor(unsigned int lightIndex,
const Magnum:: Vector3& color,
float intensity = 1.0f)
Set the color of a specific light.
Parameters | |
---|---|
lightIndex | the index of the light, MUST be smaller than lightCount_ |
color | the color of the light |
intensity | the intensity of the light |
Returns | Reference to self (for method chaining) |
PbrShader& esp:: gfx:: PbrShader:: setLightColors(Corrade:: Containers:: ArrayView<const Magnum:: Color3> colors)
Set the colors of the lights.
Parameters | |
---|---|
colors | the colors of the lights NOTE: the intensity MUST be included in the color |
Returns | Reference to self (for method chaining) |
PbrShader& esp:: gfx:: PbrShader:: setLightColors(std:: initializer_list<Magnum:: Color3> colors)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
PbrShader& esp:: gfx:: PbrShader:: setLightRanges(Corrade:: Containers:: ArrayView<const float> ranges)
Set the ranges of the lights.
Parameters | |
---|---|
ranges | the ranges of the lights |
Returns | Reference to self (for method chaining) |
PbrShader& esp:: gfx:: PbrShader:: setLightRanges(std:: initializer_list<float> ranges)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
PbrShader& esp:: gfx:: PbrShader:: setDirectLightIntensity(float lightIntensity)
Set the global lighting intensity applied equally across all lights for direct lighting.
Parameters | |
---|---|
lightIntensity | config-driven global intensity knob to easily control the intensity of the entire scene by a single field |
Returns | Reference to self (for method chaining) |
PbrShader& esp:: gfx:: PbrShader:: setGamma(const Magnum:: Vector3& gamma)
Set the gamma value used for remapping sRGB to linear approximations.
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setTonemapExposure(float exposure)
Set the IBL exposure value.
Parameters | |
---|---|
exposure | config-driven exposure value for IBL calculations. |
Returns | Reference to self (for method chaining) |
PbrShader& esp:: gfx:: PbrShader:: setNormalTextureScale(float scale)
Set the scale of the normal texture.
Parameters | |
---|---|
scale | |
Returns | Reference to self (for method chaining) |
PbrShader& esp:: gfx:: PbrShader:: setJointMatrices(Corrade:: Containers:: ArrayView<const Magnum:: Matrix4> matrices)
Set joint matrices (See Magnum/Shaders/PhongGL.h)
Returns | Reference to self (for method chaining) |
---|
PbrShader& esp:: gfx:: PbrShader:: setJointMatrices(std:: initializer_list<Magnum:: Matrix4> matrices)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. (See Magnum/Shaders/PhongGL.h)
PbrShader& esp:: gfx:: PbrShader:: setJointMatrix(Magnum:: UnsignedInt id,
const Magnum:: Matrix4& matrix)
Set joint matrix for given joint (See Magnum/Shaders/PhongGL.h)
Returns | Reference to self (for method chaining) @m_since_latest |
---|
Unlike setJointMatrices() updates just a single joint matrix. Expects that id
is less than jointCount().
PbrShader& esp:: gfx:: PbrShader:: setPerInstanceJointCount(Magnum:: UnsignedInt count)
Set per-instance joint count (See Magnum/Shaders/PhongGL.h)
Returns | Reference to self (for method chaining) @m_since_latest |
---|
Offset added to joint IDs in the JointIds and SecondaryJointIds in instanced draws. Should be less than jointCount(). Initial value is 0
, meaning every instance will use the same joint matrices, setting it to a non-zero value causes the joint IDs to be interpreted as gl_InstanceID*count + jointId
.
PbrShader& esp:: gfx:: PbrShader:: setPbrEquationScales(const PbrEquationScales& scales)
Set the scales for different components in the pbr equation.
Parameters | |
---|---|
scales | |
Returns | Reference to self (for method chaining) |