载入中...
搜索中...
未找到
eve::procgen::CloudShadow类 参考

Cloud shadows cast onto the ground plane. 更多...

#include <CloudShadow.h>

类

struct  Params
 Params public API. 更多...
 

Public 成员函数

 CloudShadow ()=default
 
 CloudShadow (const Params &params)
 
const Params & params () const
 
void setParams (const Params &params)
 
void setSunDirection (float x, float y, float z)
 
void setCloudAltitude (float altitude)
 
void setStrength (float strength)
 
float coverageAt (float x, float z, float time) const
 Cloud coverage projected onto ground (x, z) at time t, in [0,1].
 
float shadowFactorAt (float x, float z, float time) const
 Light multiplier in [0,1]: 1 = fully lit, (1-strength) = fully shadowed.
 
void cloudOffset (float &ox, float &oz) const
 World-space cloud-point offset implied by sun + altitude.
 
void sampleCoverage (float *out, int width, int height, float time, float x0, float z0, float extent) const
 Fill a buffer with projected coverage for a world region.
 
void sampleFactor (float *out, int width, int height, float time, float x0, float z0, float extent) const
 Fill a buffer with shadow light-multiplier factors for a world region.
 

详细描述

Cloud shadows cast onto the ground plane.

A cloud at altitude cloudAltitude above a ground point casts its shadow where the sun ray from that cloud lands. Given a directional light sunDir (normalized, pointing toward the light — e.g. +Y for a sun directly overhead), the shadow coverage at ground position (x, z) equals the CloudField coverage sampled at the cloud point directly up-sun:

cloudPoint = P + sunDir * (cloudAltitude / max(sunDir.y, eps))

coverageAt() returns [0,1] cloud coverage (1 = fully shadowed); shadowFactorAt() returns a light multiplier (1 - coverage * strength).

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

构造及析构函数说明

◆ CloudShadow() [1/2]

eve::procgen::CloudShadow::CloudShadow ( )
default

◆ CloudShadow() [2/2]

eve::procgen::CloudShadow::CloudShadow ( const Params &  params)
inlineexplicit

在文件 CloudShadow.h 第 36 行定义.

引用了 params.

成员函数说明

◆ cloudOffset()

void eve::procgen::CloudShadow::cloudOffset ( float &  ox,
float &  oz 
) const

World-space cloud-point offset implied by sun + altitude.

在文件 CloudShadow.cpp 第 20 行定义.

引用了 eve::procgen::CloudShadow::Params::cloudAltitude, ox, s, eve::procgen::CloudShadow::Params::sunDirX, eve::procgen::CloudShadow::Params::sunDirY , 以及 eve::procgen::CloudShadow::Params::sunDirZ.

被这些函数引用 coverageAt().

◆ coverageAt()

float eve::procgen::CloudShadow::coverageAt ( float  x,
float  z,
float  time 
) const

Cloud coverage projected onto ground (x, z) at time t, in [0,1].

在文件 CloudShadow.cpp 第 27 行定义.

引用了 cloudOffset(), eve::procgen::CloudField::coverageAt(), eve::procgen::CloudShadow::Params::field, ox, eve::procgen::CloudShadow::Params::sunDirY, time, x , 以及 z.

被这些函数引用 sampleCoverage() , 以及 shadowFactorAt().

◆ params()

const Params & eve::procgen::CloudShadow::params ( ) const
inline

在文件 CloudShadow.h 第 38 行定义.

被这些函数引用 setParams().

◆ sampleCoverage()

void eve::procgen::CloudShadow::sampleCoverage ( float *  out,
int  width,
int  height,
float  time,
float  x0,
float  z0,
float  extent 
) const

Fill a buffer with projected coverage for a world region.

在文件 CloudShadow.cpp 第 39 行定义.

引用了 coverageAt(), height, px, time, width, x, y , 以及 z.

◆ sampleFactor()

void eve::procgen::CloudShadow::sampleFactor ( float *  out,
int  width,
int  height,
float  time,
float  x0,
float  z0,
float  extent 
) const

Fill a buffer with shadow light-multiplier factors for a world region.

在文件 CloudShadow.cpp 第 51 行定义.

引用了 height, px, shadowFactorAt(), time, width, x, y , 以及 z.

◆ setCloudAltitude()

void eve::procgen::CloudShadow::setCloudAltitude ( float  altitude)

在文件 CloudShadow.cpp 第 17 行定义.

引用了 eve::procgen::CloudShadow::Params::cloudAltitude , 以及 v.

◆ setParams()

void eve::procgen::CloudShadow::setParams ( const Params &  params)

在文件 CloudShadow.cpp 第 8 行定义.

引用了 params().

◆ setStrength()

void eve::procgen::CloudShadow::setStrength ( float  strength)

在文件 CloudShadow.cpp 第 18 行定义.

引用了 eve::procgen::CloudShadow::Params::strength , 以及 v.

◆ setSunDirection()

void eve::procgen::CloudShadow::setSunDirection ( float  x,
float  y,
float  z 
)

◆ shadowFactorAt()

float eve::procgen::CloudShadow::shadowFactorAt ( float  x,
float  z,
float  time 
) const

Light multiplier in [0,1]: 1 = fully lit, (1-strength) = fully shadowed.

在文件 CloudShadow.cpp 第 34 行定义.

引用了 c, coverageAt(), eve::procgen::CloudShadow::Params::strength, time, x , 以及 z.

被这些函数引用 sampleFactor().


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