载入中...
搜索中...
未找到
eve::graphics::fog::FogProfile类 参考

Unit-density optical profile for participating media. 更多...

#include <FogProfile.h>

Public 成员函数

float extinctionPerDensity () const noexcept
 Extinction coefficient per unit density (σ_t), non-negative.
 
const glm::vec3 & albedo () const noexcept
 Single-scattering albedo in [0,1].
 
float ambientOcclusion () const noexcept
 Ambient occlusion strength in [0,1].
 
float ambientUp () const noexcept
 Upward ambient visibility scale in [0,1].
 
float ambientDown () const noexcept
 Downward ambient visibility scale in [0,1].
 
float anisotropy () const noexcept
 Henyey–Greenstein anisotropy in [-0.99, 0.99].
 
Result< void > configure (float extinctionPerDensity, const glm::vec3 &albedo, float ambientOcclusion, float ambientUp, float ambientDown, float anisotropy)
 Atomically replace the optical profile.
 
float extinctionAt (float density) const noexcept
 Extinction for a sampled density value.
 
glm::vec3 scatteringAt (float density) const noexcept
 Scattering coefficient σ_s = albedo * σ_t.
 
float phase (float cosTheta) const noexcept
 Dual-lobe Henyey–Greenstein phase evaluated for cosθ.
 
glm::vec3 ambientRadiance (const glm::vec3 &skyUp, const glm::vec3 &groundDown, float density) const noexcept
 Ambient term using up/down visibility and AO.
 

详细描述

Unit-density optical profile for participating media.

Art layers must not write these fields; they only consume rendered results.

在文件 FogProfile.h 第 16 行定义.

成员函数说明

◆ albedo()

const glm::vec3 & eve::graphics::fog::FogProfile::albedo ( ) const
inlinenoexcept

Single-scattering albedo in [0,1].

在文件 FogProfile.h 第 21 行定义.

被这些函数引用 configure().

◆ ambientDown()

float eve::graphics::fog::FogProfile::ambientDown ( ) const
inlinenoexcept

Downward ambient visibility scale in [0,1].

在文件 FogProfile.h 第 27 行定义.

被这些函数引用 configure().

◆ ambientOcclusion()

float eve::graphics::fog::FogProfile::ambientOcclusion ( ) const
inlinenoexcept

Ambient occlusion strength in [0,1].

在文件 FogProfile.h 第 23 行定义.

被这些函数引用 configure().

◆ ambientRadiance()

glm::vec3 eve::graphics::fog::FogProfile::ambientRadiance ( const glm::vec3 &  skyUp,
const glm::vec3 &  groundDown,
float  density 
) const
noexcept

Ambient term using up/down visibility and AO.

在文件 FogProfile.cpp 第 74 行定义.

被这些函数引用 eve::graphics::fog::FogRayMarch::integrate().

◆ ambientUp()

float eve::graphics::fog::FogProfile::ambientUp ( ) const
inlinenoexcept

Upward ambient visibility scale in [0,1].

在文件 FogProfile.h 第 25 行定义.

被这些函数引用 configure().

◆ anisotropy()

float eve::graphics::fog::FogProfile::anisotropy ( ) const
inlinenoexcept

Henyey–Greenstein anisotropy in [-0.99, 0.99].

在文件 FogProfile.h 第 29 行定义.

被这些函数引用 configure() , 以及 eve::graphics::fog::FogFroxelBridge::inject().

◆ configure()

Result< void > eve::graphics::fog::FogProfile::configure ( float  extinctionPerDensity,
const glm::vec3 &  albedo,
float  ambientOcclusion,
float  ambientUp,
float  ambientDown,
float  anisotropy 
)

Atomically replace the optical profile.

返回
Ok, or Rejected when any argument is non-finite / out of range.

在文件 FogProfile.cpp 第 24 行定义.

引用了 albedo(), ambientDown(), ambientOcclusion(), ambientUp(), anisotropy(), eve::Diagnostic::error(), extinctionPerDensity(), eve::Result< T >::failure(), eve::InvalidArgument, eve::Result< T >::success() , 以及 v.

◆ extinctionAt()

float eve::graphics::fog::FogProfile::extinctionAt ( float  density) const
noexcept

◆ extinctionPerDensity()

float eve::graphics::fog::FogProfile::extinctionPerDensity ( ) const
inlinenoexcept

Extinction coefficient per unit density (σ_t), non-negative.

在文件 FogProfile.h 第 19 行定义.

被这些函数引用 configure().

◆ phase()

float eve::graphics::fog::FogProfile::phase ( float  cosTheta) const
noexcept

Dual-lobe Henyey–Greenstein phase evaluated for cosθ.

参数
cosThetaDot product of view and light directions in [-1,1].

在文件 FogProfile.cpp 第 67 行定义.

引用了 c , 以及 g.

被这些函数引用 eve::graphics::fog::FogFroxelBridge::integrate(), eve::graphics::fog::AnalyticalVolLight::integrate() , 以及 eve::graphics::fog::FogRayMarch::integrate().

◆ scatteringAt()

glm::vec3 eve::graphics::fog::FogProfile::scatteringAt ( float  density) const
noexcept

Scattering coefficient σ_s = albedo * σ_t.

在文件 FogProfile.cpp 第 63 行定义.

被这些函数引用 eve::graphics::fog::FogFroxelBridge::inject(), eve::graphics::fog::AnalyticalVolLight::integrate() , 以及 eve::graphics::fog::FogRayMarch::integrate().


该类的文档由以下文件生成: