Castor3D 0.12.0
Multiplatform 3D engine
Public Member Functions | Static Public Member Functions | List of all members
castor3d::shader::LightMaterial Struct Referenceabstract

#include <GlslLighting.hpp>

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

Public Member Functions

C3D_API LightMaterial (sdw::ShaderWriter &writer, sdw::expr::ExprPtr expr, bool enabled)
 
 SDW_DeclStructInstance (C3D_API, LightMaterial)
 
virtual C3D_API void create (sdw::Vec3 const &albedo, sdw::Vec4 const &data3, sdw::Vec4 const &data2, Material const &material)=0
 
virtual C3D_API void create (sdw::Vec3 const &albedo, sdw::Vec4 const &data3, sdw::Vec4 const &data2, sdw::Float const &ambient=0.0_f)=0
 
virtual C3D_API void create (Material const &material)=0
 
virtual C3D_API void output (sdw::Vec4 &outData2, sdw::Vec4 &outData3) const =0
 
virtual C3D_API sdw::Vec3 getAmbient (sdw::Vec3 const &ambientLight) const =0
 
virtual C3D_API void adjustDirectSpecular (sdw::Vec3 &directSpecular) const =0
 
virtual C3D_API sdw::Vec3 getIndirectAmbient (sdw::Vec3 const &indirectAmbient) const =0
 
virtual C3D_API sdw::Float getMetalness () const =0
 
virtual C3D_API sdw::Float getRoughness () const =0
 

Static Public Member Functions

static C3D_API ast::type::BaseStructPtr makeType (ast::type::TypesCache &cache)
 

Convertors

sdw::Vec4 edgeFactors
 
sdw::Vec4 edgeColour
 
sdw::Vec4 specific
 
sdw::Vec3 albedo
 
sdw::Vec3 specular
 
sdw::Float edgeWidth
 
sdw::Float depthFactor
 
sdw::Float normalFactor
 
sdw::Float objectFactor
 
sdw::Float sssProfileIndex
 
sdw::Float sssTransmittance
 
sdw::Float albDiv
 
sdw::Float spcDiv
 
static C3D_API sdw::Vec3 computeF0 (sdw::Vec3 const &albedo, sdw::Float const &metalness)
 
static C3D_API sdw::Float computeMetalness (sdw::Vec3 const &albedo, sdw::Vec3 const &specular)
 
static C3D_API sdw::Float computeRoughness (sdw::Float const &glossiness)
 

Constructor & Destructor Documentation

◆ LightMaterial()

C3D_API castor3d::shader::LightMaterial::LightMaterial ( sdw::ShaderWriter &  writer,
sdw::expr::ExprPtr  expr,
bool  enabled 
)

Member Function Documentation

◆ adjustDirectSpecular()

virtual C3D_API void castor3d::shader::LightMaterial::adjustDirectSpecular ( sdw::Vec3 &  directSpecular) const
pure virtual

◆ computeF0()

static C3D_API sdw::Vec3 castor3d::shader::LightMaterial::computeF0 ( sdw::Vec3 const &  albedo,
sdw::Float const &  metalness 
)
static

◆ computeMetalness()

static C3D_API sdw::Float castor3d::shader::LightMaterial::computeMetalness ( sdw::Vec3 const &  albedo,
sdw::Vec3 const &  specular 
)
static

◆ computeRoughness()

static C3D_API sdw::Float castor3d::shader::LightMaterial::computeRoughness ( sdw::Float const &  glossiness)
static

◆ create() [1/3]

virtual C3D_API void castor3d::shader::LightMaterial::create ( Material const &  material)
pure virtual

◆ create() [2/3]

virtual C3D_API void castor3d::shader::LightMaterial::create ( sdw::Vec3 const &  albedo,
sdw::Vec4 const &  data3,
sdw::Vec4 const &  data2,
Material const &  material 
)
pure virtual

◆ create() [3/3]

virtual C3D_API void castor3d::shader::LightMaterial::create ( sdw::Vec3 const &  albedo,
sdw::Vec4 const &  data3,
sdw::Vec4 const &  data2,
sdw::Float const &  ambient = 0.0_f 
)
pure virtual

◆ getAmbient()

virtual C3D_API sdw::Vec3 castor3d::shader::LightMaterial::getAmbient ( sdw::Vec3 const &  ambientLight) const
pure virtual

◆ getIndirectAmbient()

virtual C3D_API sdw::Vec3 castor3d::shader::LightMaterial::getIndirectAmbient ( sdw::Vec3 const &  indirectAmbient) const
pure virtual

◆ getMetalness()

virtual C3D_API sdw::Float castor3d::shader::LightMaterial::getMetalness ( ) const
pure virtual

◆ getRoughness()

virtual C3D_API sdw::Float castor3d::shader::LightMaterial::getRoughness ( ) const
pure virtual

◆ makeType()

static C3D_API ast::type::BaseStructPtr castor3d::shader::LightMaterial::makeType ( ast::type::TypesCache &  cache)
static

◆ output()

virtual C3D_API void castor3d::shader::LightMaterial::output ( sdw::Vec4 &  outData2,
sdw::Vec4 &  outData3 
) const
pure virtual

◆ SDW_DeclStructInstance()

castor3d::shader::LightMaterial::SDW_DeclStructInstance ( C3D_API  ,
LightMaterial   
)

Member Data Documentation

◆ albDiv

sdw::Float castor3d::shader::LightMaterial::albDiv
protected

◆ albedo

sdw::Vec3 castor3d::shader::LightMaterial::albedo

◆ depthFactor

sdw::Float castor3d::shader::LightMaterial::depthFactor

◆ edgeColour

sdw::Vec4 castor3d::shader::LightMaterial::edgeColour

◆ edgeFactors

sdw::Vec4 castor3d::shader::LightMaterial::edgeFactors

◆ edgeWidth

sdw::Float castor3d::shader::LightMaterial::edgeWidth

◆ normalFactor

sdw::Float castor3d::shader::LightMaterial::normalFactor

◆ objectFactor

sdw::Float castor3d::shader::LightMaterial::objectFactor

◆ spcDiv

sdw::Float castor3d::shader::LightMaterial::spcDiv
protected

◆ specific

sdw::Vec4 castor3d::shader::LightMaterial::specific

◆ specular

sdw::Vec3 castor3d::shader::LightMaterial::specular

◆ sssProfileIndex

sdw::Float castor3d::shader::LightMaterial::sssProfileIndex

◆ sssTransmittance

sdw::Float castor3d::shader::LightMaterial::sssTransmittance

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