Blender  V3.3
Classes | Typedefs | Enumerations | Functions
bsdf_principled_diffuse.h File Reference
#include "kernel/closure/bsdf_util.h"
#include "kernel/sample/mapping.h"

Go to the source code of this file.

Classes

struct  PrincipledDiffuseBsdf
 

Typedefs

typedef struct PrincipledDiffuseBsdf PrincipledDiffuseBsdf
 

Enumerations

enum  PrincipledDiffuseBsdfComponents { PRINCIPLED_DIFFUSE_FULL = 1 , PRINCIPLED_DIFFUSE_LAMBERT = 2 , PRINCIPLED_DIFFUSE_LAMBERT_EXIT = 4 , PRINCIPLED_DIFFUSE_RETRO_REFLECTION = 8 }
 

Functions

ccl_device int bsdf_principled_diffuse_setup (ccl_private PrincipledDiffuseBsdf *bsdf)
 
ccl_device float3 bsdf_principled_diffuse_compute_brdf (ccl_private const PrincipledDiffuseBsdf *bsdf, float3 N, float3 V, float3 L, ccl_private float *pdf)
 
ccl_device_inline float bsdf_principled_diffuse_compute_entry_fresnel (const float NdotV)
 
ccl_device_inline float bsdf_principled_diffuse_retro_reflection_sample_weight (ccl_private PrincipledDiffuseBsdf *bsdf, const float3 I)
 
ccl_device int bsdf_principled_diffuse_setup (ccl_private PrincipledDiffuseBsdf *bsdf, int components)
 
ccl_device float3 bsdf_principled_diffuse_eval_reflect (ccl_private const ShaderClosure *sc, const float3 I, const float3 omega_in, ccl_private float *pdf)
 
ccl_device float3 bsdf_principled_diffuse_eval_transmit (ccl_private const ShaderClosure *sc, const float3 I, const float3 omega_in, ccl_private float *pdf)
 
ccl_device int bsdf_principled_diffuse_sample (ccl_private const ShaderClosure *sc, float3 Ng, float3 I, float3 dIdx, float3 dIdy, float randu, float randv, ccl_private float3 *eval, ccl_private float3 *omega_in, ccl_private float3 *domega_in_dx, ccl_private float3 *domega_in_dy, ccl_private float *pdf)
 

Typedef Documentation

◆ PrincipledDiffuseBsdf

Enumeration Type Documentation

◆ PrincipledDiffuseBsdfComponents

Enumerator
PRINCIPLED_DIFFUSE_FULL 
PRINCIPLED_DIFFUSE_LAMBERT 
PRINCIPLED_DIFFUSE_LAMBERT_EXIT 
PRINCIPLED_DIFFUSE_RETRO_REFLECTION 

Definition at line 21 of file bsdf_principled_diffuse.h.

Function Documentation

◆ bsdf_principled_diffuse_compute_brdf()

ccl_device float3 bsdf_principled_diffuse_compute_brdf ( ccl_private const PrincipledDiffuseBsdf bsdf,
float3  N,
float3  V,
float3  L,
ccl_private float pdf 
)

◆ bsdf_principled_diffuse_compute_entry_fresnel()

ccl_device_inline float bsdf_principled_diffuse_compute_entry_fresnel ( const float  NdotV)

Definition at line 90 of file bsdf_principled_diffuse.h.

References schlick_fresnel().

◆ bsdf_principled_diffuse_eval_reflect()

ccl_device float3 bsdf_principled_diffuse_eval_reflect ( ccl_private const ShaderClosure sc,
const float3  I,
const float3  omega_in,
ccl_private float pdf 
)

◆ bsdf_principled_diffuse_eval_transmit()

ccl_device float3 bsdf_principled_diffuse_eval_transmit ( ccl_private const ShaderClosure sc,
const float3  I,
const float3  omega_in,
ccl_private float pdf 
)

Definition at line 133 of file bsdf_principled_diffuse.h.

References make_float3.

Referenced by bsdf_eval().

◆ bsdf_principled_diffuse_retro_reflection_sample_weight()

ccl_device_inline float bsdf_principled_diffuse_retro_reflection_sample_weight ( ccl_private PrincipledDiffuseBsdf bsdf,
const float3  I 
)

Definition at line 98 of file bsdf_principled_diffuse.h.

References blender::math::dot(), I, and schlick_fresnel().

Referenced by bssrdf_setup().

◆ bsdf_principled_diffuse_sample()

ccl_device int bsdf_principled_diffuse_sample ( ccl_private const ShaderClosure sc,
float3  Ng,
float3  I,
float3  dIdx,
float3  dIdy,
float  randu,
float  randv,
ccl_private float3 eval,
ccl_private float3 omega_in,
ccl_private float3 domega_in_dx,
ccl_private float3 domega_in_dy,
ccl_private float pdf 
)

◆ bsdf_principled_diffuse_setup() [1/2]

ccl_device int bsdf_principled_diffuse_setup ( ccl_private PrincipledDiffuseBsdf bsdf)

◆ bsdf_principled_diffuse_setup() [2/2]

ccl_device int bsdf_principled_diffuse_setup ( ccl_private PrincipledDiffuseBsdf bsdf,
int  components 
)