Castor3D 0.16.0
Multiplatform 3D engine
Public Member Functions | List of all members
castor3d::shader::LightingModel Class Referenceabstract

#include <GlslLighting.hpp>

Inheritance diagram for castor3d::shader::LightingModel:
Inheritance graph
[legend]
Collaboration diagram for castor3d::shader::LightingModel:
Collaboration graph
[legend]

Public Member Functions

C3D_API LightingModel (LightingModelID lightingModelId, sdw::ShaderWriter &writer, Materials const &materials, Utils &utils, BRDFHelpers &brdf, Shadow &shadowModel, Lights &lights, bool hasIblSupport, bool enableVolumetric, castor::String prefix)
 
virtual C3D_API ~LightingModel ()=default
 
LightingModelID getLightingModelId () const
 
bool hasIblSupport () const
 
C3D_API void finish (PassShaders const &passShaders, DerivSurfaceBase const &surface, Utils &utils, sdw::Vec3 const worldEye, BlendComponents &components)
 
C3D_API sdw::Vec3 combine (DebugOutput &debugOutput, BlendComponents const &components, sdw::Vec3 const &incident, DirectLighting directLighting, IndirectLighting indirectLighting, sdw::Float const &ambientOcclusion, sdw::Vec3 const &emissive, sdw::Vec3 reflectedDiffuse, sdw::Vec3 reflectedSpecular, sdw::Vec3 refracted, sdw::Vec3 coatReflected, sdw::Vec3 sheenReflected)
 
virtual C3D_API sdw::Vec3 combine (DebugOutput &debugOutput, BlendComponents const &components, sdw::Vec3 const &incident, DirectLighting directLighting, IndirectLighting indirectLighting, sdw::Float const &ambientOcclusion, sdw::Vec3 const &emissive, sdw::Vec3 reflectedDiffuse, sdw::Vec3 reflectedSpecular, sdw::Vec3 refracted)
 
virtual C3D_API void adjustDirectLighting (BlendComponents const &components, DirectLighting &lighting) const =0
 

Diffuse + Specular

C3D_API void compute (DebugOutput &debugOutput, DirectionalLight const &light, BlendComponents const &components, BackgroundModel &background, LightSurface const &lightSurface, sdw::UInt const &receivesShadows, DirectLighting &output)
 
C3D_API void compute (DebugOutput &debugOutput, PointLight const &light, BlendComponents const &components, LightSurface const &lightSurface, sdw::UInt const &receivesShadows, DirectLighting &output)
 
C3D_API void compute (DebugOutput &debugOutput, SpotLight const &light, BlendComponents const &components, LightSurface const &lightSurface, sdw::UInt const &receivesShadows, DirectLighting &output)
 

Diffuse only

C3D_API sdw::Vec3 computeDiffuse (DebugOutput &debugOutput, DirectionalLight const &light, BlendComponents const &components, BackgroundModel &background, LightSurface const &lightSurface, sdw::UInt const &receivesShadows)
 
C3D_API sdw::Vec3 computeDiffuse (DebugOutput &debugOutput, PointLight const &light, BlendComponents const &components, LightSurface const &lightSurface, sdw::UInt const &receivesShadows)
 
C3D_API sdw::Vec3 computeDiffuse (DebugOutput &debugOutput, SpotLight const &light, BlendComponents const &components, LightSurface const &lightSurface, sdw::UInt const &receivesShadows)
 

All but diffuse

LightingModelID m_lightingModelId
 
sdw::ShaderWriter & m_writer
 
Materials const & m_materials
 
Utilsm_utils
 
Shadowm_shadowModel
 
Lightsm_lights
 
bool m_hasIblSupport
 
bool m_enableVolumetric
 
castor::String m_prefix
 
castor::RawUniquePtr< sdw::Struct > m_type
 
castor::RawUniquePtr< sdw::UInt > m_directionalCascadeIndex
 
castor::RawUniquePtr< sdw::UInt > m_directionalCascadeCount
 
castor::RawUniquePtr< sdw::Mat4 > m_directionalTransform
 
sdw::Function< sdw::Void, PDirectionalLight, InBlendComponents, InLightSurface, sdw::InUInt, InOutDirectLighting > m_computeDirectional
 
sdw::Function< sdw::Void, PPointLight, InBlendComponents, InLightSurface, sdw::InUInt, InOutDirectLighting > m_computePoint
 
sdw::Function< sdw::Void, PSpotLight, InBlendComponents, InLightSurface, sdw::InUInt, InOutDirectLighting > m_computeSpot
 
sdw::Function< sdw::Vec3, InOutDirectionalLight, InBlendComponents, InLightSurface, sdw::InUInt > m_computeDirectionalDiffuse
 
sdw::Function< sdw::Vec3, InOutPointLight, InBlendComponents, InLightSurface, sdw::InUInt > m_computePointDiffuse
 
sdw::Function< sdw::Vec3, InOutSpotLight, InBlendComponents, InLightSurface, sdw::InUInt > m_computeSpotDiffuse
 
sdw::Function< sdw::Void, PDirectionalLight, InBlendComponents, InLightSurface, sdw::InUInt, InOutDirectLighting > m_computeDirectionalAllButDiffuse
 
sdw::Function< sdw::Void, PPointLight, InBlendComponents, InLightSurface, sdw::InUInt, InOutDirectLighting > m_computePointAllButDiffuse
 
sdw::Function< sdw::Void, PSpotLight, InBlendComponents, InLightSurface, sdw::InUInt, InOutDirectLighting > m_computeSpotAllButDiffuse
 
C3D_API void computeAllButDiffuse (DebugOutput &debugOutput, DirectionalLight const &light, BlendComponents const &components, BackgroundModel &background, LightSurface const &lightSurface, sdw::UInt const &receivesShadows, DirectLighting &output)
 
C3D_API void computeAllButDiffuse (DebugOutput &debugOutput, PointLight const &light, BlendComponents const &components, LightSurface const &lightSurface, sdw::UInt const &receivesShadows, DirectLighting &output)
 
C3D_API void computeAllButDiffuse (DebugOutput &debugOutput, SpotLight const &light, BlendComponents const &components, LightSurface const &lightSurface, sdw::UInt const &receivesShadows, DirectLighting &output)
 
C3D_API void doAttenuate (sdw::Float const attenuation, DirectLighting &output, bool withDiffuse=true)
 
C3D_API void doApplyShadows (DirectionalShadowData const &light, sdw::Int const shadowMapIndex, sdw::Vec2 const &lightIntensity, LightSurface const &lightSurface, sdw::Vec3 const &radiance, sdw::UInt const &receivesShadows, DirectLighting &output, bool withDiffuse=true)
 
C3D_API void doApplyShadows (PointShadowData const &light, sdw::Int const shadowMapIndex, sdw::Float const lightRange, LightSurface const &lightSurface, sdw::Vec3 const &radiance, sdw::UInt const &receivesShadows, DirectLighting &output, bool withDiffuse=true)
 
C3D_API void doApplyShadows (SpotShadowData const &light, sdw::Int const shadowMapIndex, sdw::Float const lightRange, LightSurface const &lightSurface, sdw::Vec3 const &radiance, sdw::UInt const &receivesShadows, DirectLighting &output, bool withDiffuse=true)
 
C3D_API void doApplyShadowsDiffuse (DirectionalShadowData const &light, sdw::Int const shadowMapIndex, LightSurface const &lightSurface, sdw::Vec3 const &radiance, sdw::UInt const &receivesShadows, sdw::Vec3 &output)
 
C3D_API void doApplyShadowsDiffuse (PointShadowData const &light, sdw::Int const shadowMapIndex, sdw::Float const lightRange, LightSurface const &lightSurface, sdw::Vec3 const &radiance, sdw::UInt const &receivesShadows, sdw::Vec3 &output)
 
C3D_API void doApplyShadowsDiffuse (SpotShadowData const &light, sdw::Int const shadowMapIndex, sdw::Float const lightRange, LightSurface const &lightSurface, sdw::Vec3 const &radiance, sdw::UInt const &receivesShadows, sdw::Vec3 &output)
 
C3D_API void doApplyVolumetric (ShadowData const &shadows, sdw::Int const shadowMapIndex, sdw::Vec2 const &lightIntensity, LightSurface const &lightSurface, sdw::Vec3 output, bool multiply)
 
virtual C3D_API void doInitialiseBackground (BackgroundModel &background)
 
virtual C3D_API sdw::Vec3 doComputeRadiance (Light const &light, sdw::Vec3 const &lightDirection) const
 
virtual C3D_API void doComputeSheenTerm (sdw::Vec3 const &radiance, sdw::Float const &intensity, BlendComponents const &components, LightSurface const &lightSurface, sdw::Float const &isLit, sdw::Vec2 output)
 
virtual C3D_API void doComputeScatteringTerm (ShadowData const &shadows, sdw::Int const shadowMapIndex, sdw::Vec3 const &radiance, sdw::Vec2 const &lightIntensity, BlendComponents const &components, LightSurface const &lightSurface, sdw::Vec3 output)
 
virtual C3D_API void doInitLightSpecifics (LightSurface const &lightSurface, BlendComponents const &components)
 
virtual C3D_API DerivFloat doGetNdotL (LightSurface const &lightSurface, BlendComponents const &components)
 
virtual C3D_API DerivFloat doGetNdotH (LightSurface const &lightSurface, BlendComponents const &components)
 
virtual C3D_API void doFinish (PassShaders const &passShaders, BlendComponents &components)=0
 
virtual C3D_API sdw::Vec3 doComputeDiffuseTerm (sdw::Vec3 const &radiance, sdw::Float const &intensity, BlendComponents const &components, LightSurface const &lightSurface, sdw::Float &isLit, sdw::Vec3 output)=0
 
virtual C3D_API void doComputeSpecularTerm (sdw::Vec3 const &radiance, sdw::Float const &intensity, BlendComponents const &components, LightSurface const &lightSurface, sdw::Float const &isLit, sdw::Vec3 output)=0
 
virtual C3D_API void doComputeCoatingTerm (sdw::Vec3 const &radiance, sdw::Float const &intensity, BlendComponents const &components, LightSurface const &lightSurface, sdw::Float const &isLit, sdw::Vec3 output)=0
 
virtual C3D_API sdw::Vec3 doGetDiffuseBrdf (BlendComponents const &components, DirectLighting const &lighting, IndirectLighting const &indirect, sdw::Float const &ambientOcclusion, sdw::Vec3 const &reflectedDiffuse)=0
 
virtual C3D_API sdw::Vec3 doGetSpecularBrdf (BlendComponents const &components, DirectLighting const &lighting, IndirectLighting const &indirect, sdw::Float const &ambientOcclusion, sdw::Vec3 const &reflectedSpecular)=0
 

Constructor & Destructor Documentation

◆ LightingModel()

C3D_API castor3d::shader::LightingModel::LightingModel ( LightingModelID lightingModelId,
sdw::ShaderWriter & writer,
Materials const & materials,
Utils & utils,
BRDFHelpers & brdf,
Shadow & shadowModel,
Lights & lights,
bool hasIblSupport,
bool enableVolumetric,
castor::String prefix )

◆ ~LightingModel()

virtual C3D_API castor3d::shader::LightingModel::~LightingModel ( )
virtualdefault

Member Function Documentation

◆ adjustDirectLighting()

virtual C3D_API void castor3d::shader::LightingModel::adjustDirectLighting ( BlendComponents const & components,
DirectLighting & lighting ) const
pure virtual

◆ combine() [1/2]

virtual C3D_API sdw::Vec3 castor3d::shader::LightingModel::combine ( DebugOutput & debugOutput,
BlendComponents const & components,
sdw::Vec3 const & incident,
DirectLighting directLighting,
IndirectLighting indirectLighting,
sdw::Float const & ambientOcclusion,
sdw::Vec3 const & emissive,
sdw::Vec3 reflectedDiffuse,
sdw::Vec3 reflectedSpecular,
sdw::Vec3 refracted )
virtual

◆ combine() [2/2]

C3D_API sdw::Vec3 castor3d::shader::LightingModel::combine ( DebugOutput & debugOutput,
BlendComponents const & components,
sdw::Vec3 const & incident,
DirectLighting directLighting,
IndirectLighting indirectLighting,
sdw::Float const & ambientOcclusion,
sdw::Vec3 const & emissive,
sdw::Vec3 reflectedDiffuse,
sdw::Vec3 reflectedSpecular,
sdw::Vec3 refracted,
sdw::Vec3 coatReflected,
sdw::Vec3 sheenReflected )

◆ compute() [1/3]

C3D_API void castor3d::shader::LightingModel::compute ( DebugOutput & debugOutput,
DirectionalLight const & light,
BlendComponents const & components,
BackgroundModel & background,
LightSurface const & lightSurface,
sdw::UInt const & receivesShadows,
DirectLighting & output )

◆ compute() [2/3]

C3D_API void castor3d::shader::LightingModel::compute ( DebugOutput & debugOutput,
PointLight const & light,
BlendComponents const & components,
LightSurface const & lightSurface,
sdw::UInt const & receivesShadows,
DirectLighting & output )

◆ compute() [3/3]

C3D_API void castor3d::shader::LightingModel::compute ( DebugOutput & debugOutput,
SpotLight const & light,
BlendComponents const & components,
LightSurface const & lightSurface,
sdw::UInt const & receivesShadows,
DirectLighting & output )

◆ computeAllButDiffuse() [1/3]

C3D_API void castor3d::shader::LightingModel::computeAllButDiffuse ( DebugOutput & debugOutput,
DirectionalLight const & light,
BlendComponents const & components,
BackgroundModel & background,
LightSurface const & lightSurface,
sdw::UInt const & receivesShadows,
DirectLighting & output )

◆ computeAllButDiffuse() [2/3]

C3D_API void castor3d::shader::LightingModel::computeAllButDiffuse ( DebugOutput & debugOutput,
PointLight const & light,
BlendComponents const & components,
LightSurface const & lightSurface,
sdw::UInt const & receivesShadows,
DirectLighting & output )

◆ computeAllButDiffuse() [3/3]

C3D_API void castor3d::shader::LightingModel::computeAllButDiffuse ( DebugOutput & debugOutput,
SpotLight const & light,
BlendComponents const & components,
LightSurface const & lightSurface,
sdw::UInt const & receivesShadows,
DirectLighting & output )

◆ computeDiffuse() [1/3]

C3D_API sdw::Vec3 castor3d::shader::LightingModel::computeDiffuse ( DebugOutput & debugOutput,
DirectionalLight const & light,
BlendComponents const & components,
BackgroundModel & background,
LightSurface const & lightSurface,
sdw::UInt const & receivesShadows )

◆ computeDiffuse() [2/3]

C3D_API sdw::Vec3 castor3d::shader::LightingModel::computeDiffuse ( DebugOutput & debugOutput,
PointLight const & light,
BlendComponents const & components,
LightSurface const & lightSurface,
sdw::UInt const & receivesShadows )

◆ computeDiffuse() [3/3]

C3D_API sdw::Vec3 castor3d::shader::LightingModel::computeDiffuse ( DebugOutput & debugOutput,
SpotLight const & light,
BlendComponents const & components,
LightSurface const & lightSurface,
sdw::UInt const & receivesShadows )

◆ doApplyShadows() [1/3]

C3D_API void castor3d::shader::LightingModel::doApplyShadows ( DirectionalShadowData const & light,
sdw::Int const shadowMapIndex,
sdw::Vec2 const & lightIntensity,
LightSurface const & lightSurface,
sdw::Vec3 const & radiance,
sdw::UInt const & receivesShadows,
DirectLighting & output,
bool withDiffuse = true )
protected

◆ doApplyShadows() [2/3]

C3D_API void castor3d::shader::LightingModel::doApplyShadows ( PointShadowData const & light,
sdw::Int const shadowMapIndex,
sdw::Float const lightRange,
LightSurface const & lightSurface,
sdw::Vec3 const & radiance,
sdw::UInt const & receivesShadows,
DirectLighting & output,
bool withDiffuse = true )
protected

◆ doApplyShadows() [3/3]

C3D_API void castor3d::shader::LightingModel::doApplyShadows ( SpotShadowData const & light,
sdw::Int const shadowMapIndex,
sdw::Float const lightRange,
LightSurface const & lightSurface,
sdw::Vec3 const & radiance,
sdw::UInt const & receivesShadows,
DirectLighting & output,
bool withDiffuse = true )
protected

◆ doApplyShadowsDiffuse() [1/3]

C3D_API void castor3d::shader::LightingModel::doApplyShadowsDiffuse ( DirectionalShadowData const & light,
sdw::Int const shadowMapIndex,
LightSurface const & lightSurface,
sdw::Vec3 const & radiance,
sdw::UInt const & receivesShadows,
sdw::Vec3 & output )
protected

◆ doApplyShadowsDiffuse() [2/3]

C3D_API void castor3d::shader::LightingModel::doApplyShadowsDiffuse ( PointShadowData const & light,
sdw::Int const shadowMapIndex,
sdw::Float const lightRange,
LightSurface const & lightSurface,
sdw::Vec3 const & radiance,
sdw::UInt const & receivesShadows,
sdw::Vec3 & output )
protected

◆ doApplyShadowsDiffuse() [3/3]

C3D_API void castor3d::shader::LightingModel::doApplyShadowsDiffuse ( SpotShadowData const & light,
sdw::Int const shadowMapIndex,
sdw::Float const lightRange,
LightSurface const & lightSurface,
sdw::Vec3 const & radiance,
sdw::UInt const & receivesShadows,
sdw::Vec3 & output )
protected

◆ doApplyVolumetric()

C3D_API void castor3d::shader::LightingModel::doApplyVolumetric ( ShadowData const & shadows,
sdw::Int const shadowMapIndex,
sdw::Vec2 const & lightIntensity,
LightSurface const & lightSurface,
sdw::Vec3 output,
bool multiply )
protected

◆ doAttenuate()

C3D_API void castor3d::shader::LightingModel::doAttenuate ( sdw::Float const attenuation,
DirectLighting & output,
bool withDiffuse = true )
protected

◆ doComputeCoatingTerm()

virtual C3D_API void castor3d::shader::LightingModel::doComputeCoatingTerm ( sdw::Vec3 const & radiance,
sdw::Float const & intensity,
BlendComponents const & components,
LightSurface const & lightSurface,
sdw::Float const & isLit,
sdw::Vec3 output )
protectedpure virtual

◆ doComputeDiffuseTerm()

virtual C3D_API sdw::Vec3 castor3d::shader::LightingModel::doComputeDiffuseTerm ( sdw::Vec3 const & radiance,
sdw::Float const & intensity,
BlendComponents const & components,
LightSurface const & lightSurface,
sdw::Float & isLit,
sdw::Vec3 output )
protectedpure virtual

◆ doComputeRadiance()

virtual C3D_API sdw::Vec3 castor3d::shader::LightingModel::doComputeRadiance ( Light const & light,
sdw::Vec3 const & lightDirection ) const
protectedvirtual

◆ doComputeScatteringTerm()

virtual C3D_API void castor3d::shader::LightingModel::doComputeScatteringTerm ( ShadowData const & shadows,
sdw::Int const shadowMapIndex,
sdw::Vec3 const & radiance,
sdw::Vec2 const & lightIntensity,
BlendComponents const & components,
LightSurface const & lightSurface,
sdw::Vec3 output )
protectedvirtual

◆ doComputeSheenTerm()

virtual C3D_API void castor3d::shader::LightingModel::doComputeSheenTerm ( sdw::Vec3 const & radiance,
sdw::Float const & intensity,
BlendComponents const & components,
LightSurface const & lightSurface,
sdw::Float const & isLit,
sdw::Vec2 output )
protectedvirtual

◆ doComputeSpecularTerm()

virtual C3D_API void castor3d::shader::LightingModel::doComputeSpecularTerm ( sdw::Vec3 const & radiance,
sdw::Float const & intensity,
BlendComponents const & components,
LightSurface const & lightSurface,
sdw::Float const & isLit,
sdw::Vec3 output )
protectedpure virtual

◆ doFinish()

virtual C3D_API void castor3d::shader::LightingModel::doFinish ( PassShaders const & passShaders,
BlendComponents & components )
protectedpure virtual

◆ doGetDiffuseBrdf()

virtual C3D_API sdw::Vec3 castor3d::shader::LightingModel::doGetDiffuseBrdf ( BlendComponents const & components,
DirectLighting const & lighting,
IndirectLighting const & indirect,
sdw::Float const & ambientOcclusion,
sdw::Vec3 const & reflectedDiffuse )
protectedpure virtual

◆ doGetNdotH()

virtual C3D_API DerivFloat castor3d::shader::LightingModel::doGetNdotH ( LightSurface const & lightSurface,
BlendComponents const & components )
protectedvirtual

◆ doGetNdotL()

virtual C3D_API DerivFloat castor3d::shader::LightingModel::doGetNdotL ( LightSurface const & lightSurface,
BlendComponents const & components )
protectedvirtual

◆ doGetSpecularBrdf()

virtual C3D_API sdw::Vec3 castor3d::shader::LightingModel::doGetSpecularBrdf ( BlendComponents const & components,
DirectLighting const & lighting,
IndirectLighting const & indirect,
sdw::Float const & ambientOcclusion,
sdw::Vec3 const & reflectedSpecular )
protectedpure virtual

◆ doInitialiseBackground()

virtual C3D_API void castor3d::shader::LightingModel::doInitialiseBackground ( BackgroundModel & background)
protectedvirtual

◆ doInitLightSpecifics()

virtual C3D_API void castor3d::shader::LightingModel::doInitLightSpecifics ( LightSurface const & lightSurface,
BlendComponents const & components )
protectedvirtual

◆ finish()

C3D_API void castor3d::shader::LightingModel::finish ( PassShaders const & passShaders,
DerivSurfaceBase const & surface,
Utils & utils,
sdw::Vec3 const worldEye,
BlendComponents & components )

◆ getLightingModelId()

LightingModelID castor3d::shader::LightingModel::getLightingModelId ( ) const
inline

References m_lightingModelId.

◆ hasIblSupport()

bool castor3d::shader::LightingModel::hasIblSupport ( ) const
inline

References m_hasIblSupport.

Member Data Documentation

◆ m_computeDirectional

sdw::Function< sdw::Void , PDirectionalLight , InBlendComponents , InLightSurface , sdw::InUInt , InOutDirectLighting > castor3d::shader::LightingModel::m_computeDirectional
protected

◆ m_computeDirectionalAllButDiffuse

sdw::Function< sdw::Void , PDirectionalLight , InBlendComponents , InLightSurface , sdw::InUInt , InOutDirectLighting > castor3d::shader::LightingModel::m_computeDirectionalAllButDiffuse
protected

◆ m_computeDirectionalDiffuse

sdw::Function< sdw::Vec3 , InOutDirectionalLight , InBlendComponents , InLightSurface , sdw::InUInt > castor3d::shader::LightingModel::m_computeDirectionalDiffuse
protected

◆ m_computePoint

sdw::Function< sdw::Void , PPointLight , InBlendComponents , InLightSurface , sdw::InUInt , InOutDirectLighting > castor3d::shader::LightingModel::m_computePoint
protected

◆ m_computePointAllButDiffuse

sdw::Function< sdw::Void , PPointLight , InBlendComponents , InLightSurface , sdw::InUInt , InOutDirectLighting > castor3d::shader::LightingModel::m_computePointAllButDiffuse
protected

◆ m_computePointDiffuse

sdw::Function< sdw::Vec3 , InOutPointLight , InBlendComponents , InLightSurface , sdw::InUInt > castor3d::shader::LightingModel::m_computePointDiffuse
protected

◆ m_computeSpot

sdw::Function< sdw::Void , PSpotLight , InBlendComponents , InLightSurface , sdw::InUInt , InOutDirectLighting > castor3d::shader::LightingModel::m_computeSpot
protected

◆ m_computeSpotAllButDiffuse

sdw::Function< sdw::Void , PSpotLight , InBlendComponents , InLightSurface , sdw::InUInt , InOutDirectLighting > castor3d::shader::LightingModel::m_computeSpotAllButDiffuse
protected

◆ m_computeSpotDiffuse

sdw::Function< sdw::Vec3 , InOutSpotLight , InBlendComponents , InLightSurface , sdw::InUInt > castor3d::shader::LightingModel::m_computeSpotDiffuse
protected

◆ m_directionalCascadeCount

castor::RawUniquePtr< sdw::UInt > castor3d::shader::LightingModel::m_directionalCascadeCount
protected

◆ m_directionalCascadeIndex

castor::RawUniquePtr< sdw::UInt > castor3d::shader::LightingModel::m_directionalCascadeIndex
protected

◆ m_directionalTransform

castor::RawUniquePtr< sdw::Mat4 > castor3d::shader::LightingModel::m_directionalTransform
protected

◆ m_enableVolumetric

bool castor3d::shader::LightingModel::m_enableVolumetric
protected

◆ m_hasIblSupport

bool castor3d::shader::LightingModel::m_hasIblSupport
protected

Referenced by hasIblSupport().

◆ m_lightingModelId

LightingModelID castor3d::shader::LightingModel::m_lightingModelId
protected

Referenced by getLightingModelId().

◆ m_lights

Lights& castor3d::shader::LightingModel::m_lights
protected

◆ m_materials

Materials const& castor3d::shader::LightingModel::m_materials
protected

◆ m_prefix

castor::String castor3d::shader::LightingModel::m_prefix
protected

◆ m_shadowModel

Shadow& castor3d::shader::LightingModel::m_shadowModel
protected

◆ m_type

castor::RawUniquePtr< sdw::Struct > castor3d::shader::LightingModel::m_type
protected

◆ m_utils

Utils& castor3d::shader::LightingModel::m_utils
protected

◆ m_writer

sdw::ShaderWriter& castor3d::shader::LightingModel::m_writer
protected

The documentation for this class was generated from the following file: