Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
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, int theDepth=-1) const
 Dumps the content of me into the stream.
 

Static Public Member Functions

static Graphic3d_BSDF CreateDiffuse (const NCollection_Vec3< float > &theWeight)
 Creates BSDF describing diffuse (Lambertian) surface.
 
static Graphic3d_BSDF CreateMetallic (const NCollection_Vec3< float > &theWeight, const Graphic3d_Fresnel &theFresnel, const float theRoughness)
 Creates BSDF describing polished metallic-like surface.
 
static Graphic3d_BSDF CreateTransparent (const NCollection_Vec3< float > &theWeight, const NCollection_Vec3< float > &theAbsorptionColor, const float 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 NCollection_Vec3< float > &theWeight, const NCollection_Vec3< float > &theAbsorptionColor, const float theAbsorptionCoeff, const float 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

NCollection_Vec4< floatKc
 Weight of coat specular/glossy BRDF.
 
NCollection_Vec3< floatKd
 Weight of base diffuse BRDF.
 
NCollection_Vec4< floatKs
 Weight of base specular/glossy BRDF.
 
NCollection_Vec3< floatKt
 Weight of base specular/glossy BTDF.
 
NCollection_Vec3< floatLe
 Radiance emitted by the surface.
 
NCollection_Vec4< floatAbsorption
 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 NCollection_Vec3< float > & theWeight)
static

Creates BSDF describing diffuse (Lambertian) surface.

◆ CreateGlass()

static Graphic3d_BSDF Graphic3d_BSDF::CreateGlass ( const NCollection_Vec3< float > & theWeight,
const NCollection_Vec3< float > & theAbsorptionColor,
const float theAbsorptionCoeff,
const float 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 NCollection_Vec3< float > & theWeight,
const Graphic3d_Fresnel & theFresnel,
const float 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 NCollection_Vec3< float > & theWeight,
const NCollection_Vec3< float > & theAbsorptionColor,
const float 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,
int 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

NCollection_Vec4<float> 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

NCollection_Vec4<float> Graphic3d_BSDF::Kc

Weight of coat specular/glossy BRDF.

◆ Kd

NCollection_Vec3<float> Graphic3d_BSDF::Kd

Weight of base diffuse BRDF.

◆ Ks

NCollection_Vec4<float> Graphic3d_BSDF::Ks

Weight of base specular/glossy BRDF.

◆ Kt

NCollection_Vec3<float> Graphic3d_BSDF::Kt

Weight of base specular/glossy BTDF.

◆ Le

NCollection_Vec3<float> Graphic3d_BSDF::Le

Radiance emitted by the surface.


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