|
C3D_API | PbrMRLightingModel (sdw::ShaderWriter &writer, Utils &utils, ShadowOptions shadowOptions, SssProfiles const *sssProfiles, bool isOpaqueProgram) |
|
C3D_API std::unique_ptr< LightMaterial > | declMaterial (std::string const &name) override |
|
C3D_API sdw::Vec3 | combine (sdw::Vec3 const &directDiffuse, sdw::Vec3 const &indirectDiffuse, sdw::Vec3 const &directSpecular, sdw::Vec3 const &indirectSpecular, sdw::Vec3 const &ambient, sdw::Vec3 const &indirectAmbient, sdw::Float const &ambientOcclusion, sdw::Vec3 const &emissive, sdw::Vec3 const &reflected, sdw::Vec3 const &refracted, sdw::Vec3 const &materialAlbedo) override |
|
C3D_API ReflectionModelPtr | getReflectionModel (uint32_t &envMapBinding, uint32_t envMapSet) const override |
|
C3D_API void | compute (DirectionalLight const &light, LightMaterial const &material, Surface const &surface, sdw::Vec3 const &worldEye, sdw::Int const &receivesShadows, OutputComponents &output) const override |
|
C3D_API void | compute (PointLight const &light, LightMaterial const &material, Surface const &surface, sdw::Vec3 const &worldEye, sdw::Int const &receivesShadows, OutputComponents &output) const override |
|
C3D_API void | compute (SpotLight const &light, LightMaterial const &material, Surface const &surface, sdw::Vec3 const &worldEye, sdw::Int const &receivesShadows, OutputComponents &output) const override |
|
C3D_API void | computeMapContributions (PassFlags const &passFlags, TextureFlagsArray const &textures, TextureConfigurations const &textureConfigs, TextureAnimations const &textureAnims, sdw::Array< sdw::CombinedImage2DRgba32 > const &maps, sdw::UVec4 const &textures0, sdw::UVec4 const &textures1, sdw::Vec3 &texCoords, sdw::Vec3 &normal, sdw::Vec3 &tangent, sdw::Vec3 &bitangent, sdw::Vec3 &emissive, sdw::Float &opacity, sdw::Float &occlusion, sdw::Float &transmittanc, LightMaterial &lightMat, sdw::Vec3 &tangentSpaceViewPosition, sdw::Vec3 &tangentSpaceFragPosition) override |
|
C3D_API sdw::Vec3 | computeDiffuse (DirectionalLight const &light, LightMaterial const &material, Surface const &surface, sdw::Vec3 const &worldEye, sdw::Int const &receivesShadows) const override |
|
C3D_API sdw::Vec3 | computeDiffuse (PointLight const &light, LightMaterial const &material, Surface const &surface, sdw::Vec3 const &worldEye, sdw::Int const &receivesShadows) const override |
|
C3D_API sdw::Vec3 | computeDiffuse (SpotLight const &light, LightMaterial const &material, Surface const &surface, sdw::Vec3 const &worldEye, sdw::Int const &receivesShadows) const override |
|
C3D_API void | computeMapDiffuseContributions (PassFlags const &passFlags, TextureFlagsArray const &textures, TextureConfigurations const &textureConfigs, TextureAnimations const &textureAnims, sdw::Array< sdw::CombinedImage2DRgba32 > const &maps, sdw::UVec4 const &textures0, sdw::UVec4 const &textures1, sdw::Vec3 const &texCoords, sdw::Vec3 &emissive, sdw::Float &opacity, sdw::Float &occlusion, LightMaterial &lightMat) override |
|
C3D_API | LightingModel (sdw::ShaderWriter &writer, Utils &utils, ShadowOptions shadowOptions, SssProfiles const *sssProfiles, bool isOpaqueProgram, std::string prefix) |
|
virtual C3D_API | ~LightingModel ()=default |
|
virtual C3D_API sdw::Vec3 | combine (sdw::Vec3 const &directDiffuse, sdw::Vec3 const &indirectDiffuse, sdw::Vec3 const &directSpecular, sdw::Vec3 const &indirectSpecular, sdw::Vec3 const &ambient, sdw::Vec3 const &indirectAmbient, sdw::Float const &ambientOcclusion, sdw::Vec3 const &emissive, sdw::Vec3 const &reflected, sdw::Vec3 const &refracted, sdw::Vec3 const &materialAlbedo)=0 |
|
virtual C3D_API std::unique_ptr< LightMaterial > | declMaterial (std::string const &name)=0 |
|
virtual C3D_API ReflectionModelPtr | getReflectionModel (uint32_t &envMapBinding, uint32_t envMapSet) const =0 |
|
C3D_API void | declareDirectionalModel (bool lightUbo, uint32_t lightBinding, uint32_t lightSet, uint32_t &shadowMapBinding, uint32_t shadowMapSet) |
|
C3D_API void | declarePointModel (bool lightUbo, uint32_t lightBinding, uint32_t lightSet, uint32_t &shadowMapBinding, uint32_t shadowMapSet) |
|
C3D_API void | declareSpotModel (bool lightUbo, uint32_t lightBinding, uint32_t lightSet, uint32_t &shadowMapBinding, uint32_t shadowMapSet) |
|
C3D_API DirectionalLight | getDirectionalLight (sdw::UInt const &index) const |
|
C3D_API PointLight | getPointLight (sdw::UInt const &index) const |
|
C3D_API SpotLight | getSpotLight (sdw::UInt const &index) const |
|
Shadow & | getShadowModel () const |
|
C3D_API void | declareModel (uint32_t lightsBufBinding, uint32_t lightsBufSet, uint32_t &shadowMapBinding, uint32_t shadowMapSet) |
|
C3D_API void | computeCombined (LightMaterial const &material, SceneData const &sceneData, Surface const &surface, sdw::Vec3 const &worldEye, sdw::Int const &receivesShadows, OutputComponents &output) const |
|
C3D_API void | declareDiffuseModel (uint32_t lightsBufBinding, uint32_t lightsBufSet, uint32_t &shadowMapBinding, uint32_t shadowMapSet) |
|
C3D_API sdw::Vec3 | computeCombinedDiffuse (LightMaterial const &material, SceneData const &sceneData, Surface const &surface, sdw::Vec3 const &worldEye, sdw::Int const &receivesShadows) const |
|
|
static C3D_API const castor::String | getName () |
|
static C3D_API LightingModelPtr | create (sdw::ShaderWriter &writer, Utils &utils, ShadowOptions shadowOptions, SssProfiles const *sssProfiles, bool isOpaqueProgram) |
|
static C3D_API LightingModelPtr | createModel (Utils &utils, castor::String const &name, uint32_t lightsBufBinding, uint32_t lightsBufSet, ShadowOptions const &shadows, SssProfiles const *sssProfiles, uint32_t &shadowMapBinding, uint32_t shadowMapSet, bool isOpaqueProgram) |
|
template<typename LightsBufBindingT > |
static LightingModelPtr | createModelT (Utils &utils, castor::String const &name, LightsBufBindingT lightsBufBinding, uint32_t lightsBufSet, ShadowOptions const &shadows, SssProfiles const *sssProfiles, uint32_t &shadowMapBinding, uint32_t shadowMapSet, bool isOpaqueProgram) |
|
template<typename LightBindingT > |
static LightingModelPtr | createModel (Utils &utils, castor::String const &name, LightType light, LightBindingT lightBinding, uint32_t lightSet, bool lightUbo, ShadowOptions const &shadows, SssProfiles const *sssProfiles, uint32_t &shadowMapBinding, uint32_t shadowMapSet) |
|
static C3D_API LightingModelPtr | createDiffuseModel (Utils &utils, castor::String const &name, uint32_t lightsBufBinding, uint32_t lightsBufSet, ShadowOptions const &shadows, uint32_t &shadowMapBinding, uint32_t shadowMapSet, bool isOpaqueProgram) |
|
template<typename LightsBufBindingT > |
static LightingModelPtr | createDiffuseModelT (Utils &utils, castor::String const &name, LightsBufBindingT lightsBufBinding, uint32_t lightsBufSet, ShadowOptions const &shadows, uint32_t &shadowMapBinding, uint32_t shadowMapSet, bool isOpaqueProgram) |
|
|
bool | m_isSpecularGlossiness |
|
CookTorranceBRDF | m_cookTorrance |
|
sdw::Function< sdw::Void, InDirectionalLight, InPbrLightMaterial, InSurface, sdw::InVec3, sdw::InInt, OutputComponents & > | m_computeDirectional |
|
sdw::Function< sdw::Void, InPointLight, InPbrLightMaterial, InSurface, sdw::InVec3, sdw::InInt, OutputComponents & > | m_computePoint |
|
sdw::Function< sdw::Void, InSpotLight, InPbrLightMaterial, InSurface, sdw::InVec3, sdw::InInt, OutputComponents & > | m_computeSpot |
|
sdw::Function< sdw::Vec3, InOutDirectionalLight, InPbrLightMaterial, InSurface, sdw::InVec3, sdw::InInt > | m_computeDirectionalDiffuse |
|
sdw::Function< sdw::Vec3, InOutPointLight, InPbrLightMaterial, InSurface, sdw::InVec3, sdw::InInt > | m_computePointDiffuse |
|
sdw::Function< sdw::Vec3, InOutSpotLight, InPbrLightMaterial, InSurface, sdw::InVec3, sdw::InInt > | m_computeSpotDiffuse |
|
C3D_API | PbrLightingModel (bool isSpecularGlossiness, sdw::ShaderWriter &writer, Utils &utils, ShadowOptions shadowOptions, SssProfiles const *sssProfiles, bool isOpaqueProgram) |
|
void | doDeclareModel () override |
|
void | doDeclareComputeDirectionalLight () override |
|
void | doDeclareComputePointLight () override |
|
void | doDeclareComputeSpotLight () override |
|
void | doDeclareDiffuseModel () override |
|
void | doDeclareComputeDirectionalLightDiffuse () override |
|
void | doDeclareComputePointLightDiffuse () override |
|
void | doDeclareComputeSpotLightDiffuse () override |
|
C3D_API Light | getBaseLight (sdw::UInt &offset) const |
|
C3D_API void | doDeclareLightsBuffer (uint32_t binding, uint32_t set) |
|
C3D_API void | doDeclareDirectionalLightUbo (uint32_t binding, uint32_t set) |
|
C3D_API void | doDeclarePointLightUbo (uint32_t binding, uint32_t set) |
|
C3D_API void | doDeclareSpotLightUbo (uint32_t binding, uint32_t set) |
|
C3D_API void | doDeclareGetBaseLight () |
|
C3D_API void | doDeclareGetDirectionalLight () |
|
C3D_API void | doDeclareGetPointLight () |
|
C3D_API void | doDeclareGetSpotLight () |
|
C3D_API void | doDeclareGetCascadeFactors () |
|
sdw::ShaderWriter & | m_writer |
|
Utils & | m_utils |
|
std::unique_ptr< sdw::Struct > | m_type |
|
std::unique_ptr< sdw::Ssbo > | m_ssbo |
|
std::unique_ptr< sdw::RImageBufferRgba32 > | m_tbo |
|
bool | m_isOpaqueProgram |
|
std::string | m_prefix |
|
std::shared_ptr< Shadow > | m_shadowModel |
|
std::shared_ptr< SssTransmittance > | m_sssTransmittance |
|
sdw::Function< sdw::Vec3, sdw::InVec3, sdw::InVec4, sdw::InUInt > | m_getCascadeFactors |
|
sdw::Function< sdw::Vec3, sdw::InVec3, sdw::InVec4Array, sdw::InUInt > | m_getTileFactors |
|
sdw::Function< shader::Light, sdw::InOutUInt > | m_getBaseLight |
|
sdw::Function< shader::DirectionalLight, sdw::InUInt > | m_getDirectionalLight |
|
sdw::Function< shader::PointLight, sdw::InUInt > | m_getPointLight |
|
sdw::Function< shader::SpotLight, sdw::InUInt > | m_getSpotLight |
|