Castor3D 0.17.0
Multiplatform 3D engine
Public Member Functions | List of all members
castor3d::shader::BRDFHelpers Class Reference

#include <GlslBRDFHelpers.hpp>

Public Member Functions

C3D_API BRDFHelpers (sdw::ShaderWriter &writer)
 
C3D_API sdw::RetFloat visibilitySmithGGXCorrelated (sdw::Float const &NdotV, sdw::Float const &NdotL, sdw::Float const &alphaRoughness)
 
C3D_API sdw::RetFloat visibilityGGX (sdw::Float const &NdotV, sdw::Float const &NdotL, sdw::Float const &alphaRoughness)
 
C3D_API sdw::RetFloat visibilityBeckmann (sdw::Float const &NdotL, sdw::Float const &NdotV, sdw::Float const &NdotH, sdw::Float const &VdotH)
 
C3D_API sdw::RetFloat visibilityAshikhmin (sdw::Float const &NdotL, sdw::Float const &NdotV)
 
C3D_API sdw::RetFloat visibilitySheen (sdw::Float const &NdotV, sdw::Float const &NdotL, sdw::Float const &sheenRoughness)
 
C3D_API sdw::RetFloat distributionBlinn (sdw::Float const &NdotH, sdw::Float const &alphaRoughness)
 
C3D_API sdw::RetFloat distributionBeckmann (sdw::Float const &NdotH, sdw::Float const &alphaRoughness)
 
C3D_API sdw::RetFloat distributionGGX (sdw::Float const &NdotH, sdw::Float const &alphaRoughness)
 
C3D_API sdw::RetFloat distributionCharlie (sdw::Float const &NdotH, sdw::Float const &sheenRoughness)
 
C3D_API RetMicrofacetDistributionSample importanceSampleGGX (sdw::Vec2 const &xi, sdw::Float const &roughness)
 
C3D_API RetMicrofacetDistributionSample importanceSampleCharlie (sdw::Vec2 const &xi, sdw::Float const &roughness)
 
C3D_API sdw::RetVec4 getImportanceSample (MicrofacetDistributionSample const &is, sdw::Vec3 const &n)
 
C3D_API sdw::RetVec2 hammersley (sdw::UInt const &i, sdw::UInt const &n)
 
C3D_API void computeSpecularBrdfs (DebugOutputCategory const &debugOutput, BlendComponents const &components, sdw::Vec3 const &reflectedDiffuse, sdw::Vec3 const &reflectedSpecular, sdw::Vec3 const &metalFresnel, sdw::Vec3 const &dielectricFresnel, sdw::Vec3 &metal, sdw::Vec3 &dielectric)
 
C3D_API sdw::RetVec3 computeFresnel (sdw::Float const &NdotV, sdw::Float const &roughness, sdw::Vec3 const &F0, sdw::Float const &specularWeight)
 

Constructor & Destructor Documentation

◆ BRDFHelpers()

C3D_API castor3d::shader::BRDFHelpers::BRDFHelpers ( sdw::ShaderWriter & writer)
explicit

Member Function Documentation

◆ computeFresnel()

C3D_API sdw::RetVec3 castor3d::shader::BRDFHelpers::computeFresnel ( sdw::Float const & NdotV,
sdw::Float const & roughness,
sdw::Vec3 const & F0,
sdw::Float const & specularWeight )

◆ computeSpecularBrdfs()

C3D_API void castor3d::shader::BRDFHelpers::computeSpecularBrdfs ( DebugOutputCategory const & debugOutput,
BlendComponents const & components,
sdw::Vec3 const & reflectedDiffuse,
sdw::Vec3 const & reflectedSpecular,
sdw::Vec3 const & metalFresnel,
sdw::Vec3 const & dielectricFresnel,
sdw::Vec3 & metal,
sdw::Vec3 & dielectric )

◆ distributionBeckmann()

C3D_API sdw::RetFloat castor3d::shader::BRDFHelpers::distributionBeckmann ( sdw::Float const & NdotH,
sdw::Float const & alphaRoughness )

◆ distributionBlinn()

C3D_API sdw::RetFloat castor3d::shader::BRDFHelpers::distributionBlinn ( sdw::Float const & NdotH,
sdw::Float const & alphaRoughness )

◆ distributionCharlie()

C3D_API sdw::RetFloat castor3d::shader::BRDFHelpers::distributionCharlie ( sdw::Float const & NdotH,
sdw::Float const & sheenRoughness )

◆ distributionGGX()

C3D_API sdw::RetFloat castor3d::shader::BRDFHelpers::distributionGGX ( sdw::Float const & NdotH,
sdw::Float const & alphaRoughness )

◆ getImportanceSample()

C3D_API sdw::RetVec4 castor3d::shader::BRDFHelpers::getImportanceSample ( MicrofacetDistributionSample const & is,
sdw::Vec3 const & n )

◆ hammersley()

C3D_API sdw::RetVec2 castor3d::shader::BRDFHelpers::hammersley ( sdw::UInt const & i,
sdw::UInt const & n )

◆ importanceSampleCharlie()

C3D_API RetMicrofacetDistributionSample castor3d::shader::BRDFHelpers::importanceSampleCharlie ( sdw::Vec2 const & xi,
sdw::Float const & roughness )

◆ importanceSampleGGX()

C3D_API RetMicrofacetDistributionSample castor3d::shader::BRDFHelpers::importanceSampleGGX ( sdw::Vec2 const & xi,
sdw::Float const & roughness )

◆ visibilityAshikhmin()

C3D_API sdw::RetFloat castor3d::shader::BRDFHelpers::visibilityAshikhmin ( sdw::Float const & NdotL,
sdw::Float const & NdotV )

◆ visibilityBeckmann()

C3D_API sdw::RetFloat castor3d::shader::BRDFHelpers::visibilityBeckmann ( sdw::Float const & NdotL,
sdw::Float const & NdotV,
sdw::Float const & NdotH,
sdw::Float const & VdotH )

◆ visibilityGGX()

C3D_API sdw::RetFloat castor3d::shader::BRDFHelpers::visibilityGGX ( sdw::Float const & NdotV,
sdw::Float const & NdotL,
sdw::Float const & alphaRoughness )

◆ visibilitySheen()

C3D_API sdw::RetFloat castor3d::shader::BRDFHelpers::visibilitySheen ( sdw::Float const & NdotV,
sdw::Float const & NdotL,
sdw::Float const & sheenRoughness )

◆ visibilitySmithGGXCorrelated()

C3D_API sdw::RetFloat castor3d::shader::BRDFHelpers::visibilitySmithGGXCorrelated ( sdw::Float const & NdotV,
sdw::Float const & NdotL,
sdw::Float const & alphaRoughness )

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