Open CASCADE Technology 7.8.0
Public Member Functions | Static Public Member Functions | Data Fields
Graphic3d_BSDF Class Reference

Describes material's BSDF (Bidirectional Scattering Distribution Function) used for physically-based rendering (in path tracing engine). BSDF is represented as weighted mixture of basic BRDFs/BTDFs (Bidirectional Reflectance (Transmittance) Distribution Functions). More...

#include <Graphic3d_BSDF.hxx>

Public Member Functions

 Graphic3d_BSDF ()
 Creates uninitialized BSDF.
 
void Normalize ()
 Normalizes BSDF components.
 
bool operator== (const Graphic3d_BSDF &theOther) const
 Performs comparison of two BSDFs.
 
void DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const
 Dumps the content of me into the stream.
 

Static Public Member Functions

static Graphic3d_BSDF CreateDiffuse (const Graphic3d_Vec3 &theWeight)
 Creates BSDF describing diffuse (Lambertian) surface.
 
static Graphic3d_BSDF CreateMetallic (const Graphic3d_Vec3 &theWeight, const Graphic3d_Fresnel &theFresnel, const Standard_ShortReal theRoughness)
 Creates BSDF describing polished metallic-like surface.
 
static Graphic3d_BSDF CreateTransparent (const Graphic3d_Vec3 &theWeight, const Graphic3d_Vec3 &theAbsorptionColor, const Standard_ShortReal theAbsorptionCoeff)
 Creates BSDF describing transparent object. Transparent BSDF models simple transparency without refraction (the ray passes straight through the surface).
 
static Graphic3d_BSDF CreateGlass (const Graphic3d_Vec3 &theWeight, const Graphic3d_Vec3 &theAbsorptionColor, const Standard_ShortReal theAbsorptionCoeff, const Standard_ShortReal theRefractionIndex)
 Creates BSDF describing glass-like object. Glass-like BSDF mixes refraction and reflection effects at grazing angles using physically-based Fresnel dielectric model.
 
static Graphic3d_BSDF CreateMetallicRoughness (const Graphic3d_PBRMaterial &thePbr)
 Creates BSDF from PBR metallic-roughness material.
 

Data Fields

Graphic3d_Vec4 Kc
 Weight of coat specular/glossy BRDF.
 
Graphic3d_Vec3 Kd
 Weight of base diffuse BRDF.
 
Graphic3d_Vec4 Ks
 Weight of base specular/glossy BRDF.
 
Graphic3d_Vec3 Kt
 Weight of base specular/glossy BTDF.
 
Graphic3d_Vec3 Le
 Radiance emitted by the surface.
 
Graphic3d_Vec4 Absorption
 Volume scattering color/density.
 
Graphic3d_Fresnel FresnelCoat
 Parameters of Fresnel reflectance of coat layer.
 
Graphic3d_Fresnel FresnelBase
 Parameters of Fresnel reflectance of base layer.
 

Detailed Description

Describes material's BSDF (Bidirectional Scattering Distribution Function) used for physically-based rendering (in path tracing engine). BSDF is represented as weighted mixture of basic BRDFs/BTDFs (Bidirectional Reflectance (Transmittance) Distribution Functions).

NOTE: OCCT uses two-layer material model. We have base diffuse, glossy, or transmissive layer, covered by one glossy/specular coat. In the current model, the layers themselves have no thickness; they can simply reflect light or transmits it to the layer under it. We use actual BRDF model only for direct reflection by the coat layer. For transmission through this layer, we approximate it as a flat specular surface.

Constructor & Destructor Documentation

◆ Graphic3d_BSDF()

Graphic3d_BSDF::Graphic3d_BSDF ( )

Creates uninitialized BSDF.

Member Function Documentation

◆ CreateDiffuse()

static Graphic3d_BSDF Graphic3d_BSDF::CreateDiffuse ( const Graphic3d_Vec3 theWeight)
static

Creates BSDF describing diffuse (Lambertian) surface.

◆ CreateGlass()

static Graphic3d_BSDF Graphic3d_BSDF::CreateGlass ( const Graphic3d_Vec3 theWeight,
const Graphic3d_Vec3 theAbsorptionColor,
const Standard_ShortReal  theAbsorptionCoeff,
const Standard_ShortReal  theRefractionIndex 
)
static

Creates BSDF describing glass-like object. Glass-like BSDF mixes refraction and reflection effects at grazing angles using physically-based Fresnel dielectric model.

◆ CreateMetallic()

static Graphic3d_BSDF Graphic3d_BSDF::CreateMetallic ( const Graphic3d_Vec3 theWeight,
const Graphic3d_Fresnel theFresnel,
const Standard_ShortReal  theRoughness 
)
static

Creates BSDF describing polished metallic-like surface.

◆ CreateMetallicRoughness()

static Graphic3d_BSDF Graphic3d_BSDF::CreateMetallicRoughness ( const Graphic3d_PBRMaterial thePbr)
static

Creates BSDF from PBR metallic-roughness material.

◆ CreateTransparent()

static Graphic3d_BSDF Graphic3d_BSDF::CreateTransparent ( const Graphic3d_Vec3 theWeight,
const Graphic3d_Vec3 theAbsorptionColor,
const Standard_ShortReal  theAbsorptionCoeff 
)
static

Creates BSDF describing transparent object. Transparent BSDF models simple transparency without refraction (the ray passes straight through the surface).

◆ DumpJson()

void Graphic3d_BSDF::DumpJson ( Standard_OStream theOStream,
Standard_Integer  theDepth = -1 
) const

Dumps the content of me into the stream.

◆ Normalize()

void Graphic3d_BSDF::Normalize ( )

Normalizes BSDF components.

◆ operator==()

bool Graphic3d_BSDF::operator== ( const Graphic3d_BSDF theOther) const

Performs comparison of two BSDFs.

Field Documentation

◆ Absorption

Graphic3d_Vec4 Graphic3d_BSDF::Absorption

Volume scattering color/density.

◆ FresnelBase

Graphic3d_Fresnel Graphic3d_BSDF::FresnelBase

Parameters of Fresnel reflectance of base layer.

◆ FresnelCoat

Graphic3d_Fresnel Graphic3d_BSDF::FresnelCoat

Parameters of Fresnel reflectance of coat layer.

◆ Kc

Graphic3d_Vec4 Graphic3d_BSDF::Kc

Weight of coat specular/glossy BRDF.

◆ Kd

Graphic3d_Vec3 Graphic3d_BSDF::Kd

Weight of base diffuse BRDF.

◆ Ks

Graphic3d_Vec4 Graphic3d_BSDF::Ks

Weight of base specular/glossy BRDF.

◆ Kt

Graphic3d_Vec3 Graphic3d_BSDF::Kt

Weight of base specular/glossy BTDF.

◆ Le

Graphic3d_Vec3 Graphic3d_BSDF::Le

Radiance emitted by the surface.


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