|
C3D_API | BlinnPhongLightingModel (sdw::ShaderWriter &writer, Utils &utils, ShadowOptions shadowOptions, SssProfiles const *sssProfiles, bool enableVolumetric) |
|
C3D_API | PhongLightingModel (sdw::ShaderWriter &writer, Utils &utils, ShadowOptions shadowOptions, SssProfiles const *sssProfiles, bool enableVolumetric, bool isBlinnPhong) |
|
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 std::unique_ptr< LightMaterial > | declMaterial (std::string const &name, bool enabled) 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 &texCoords0, sdw::Vec3 &texCoords1, sdw::Vec3 &texCoords2, sdw::Vec3 &texCoords3, sdw::Vec3 &normal, sdw::Vec3 &tangent, sdw::Vec3 &bitangent, sdw::Vec3 &emissive, sdw::Float &opacity, sdw::Float &occlusion, sdw::Float &transmittance, 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 &texCoords0, sdw::Vec3 &texCoords1, sdw::Vec3 &texCoords2, sdw::Vec3 &texCoords3, sdw::Vec3 &emissive, sdw::Float &opacity, sdw::Float &occlusion, LightMaterial &lightMat) override |
|
bool | isBlinnPhong () const |
|
C3D_API | LightingModel (sdw::ShaderWriter &writer, Utils &utils, ShadowOptions shadowOptions, SssProfiles const *sssProfiles, bool enableVolumetric, 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, bool enabled=true)=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 |
|