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

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

#include <CloudShadow.h>

struct  Params
 

Public 成员函数

 CloudShadow ()=default
 
 CloudShadow (const Params &params)
 
const Paramsparams () 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.h21 行定义.

构造及析构函数说明

◆ CloudShadow() [1/2]

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

◆ CloudShadow() [2/2]

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

在文件 CloudShadow.h33 行定义.

引用了 params() , 以及 setParams().

成员函数说明

◆ cloudOffset()

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

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

在文件 CloudShadow.cpp20 行定义.

引用了 eve::procgen::CloudShadow::Params::cloudAltitude, 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.cpp27 行定义.

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

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

◆ params()

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

在文件 CloudShadow.h35 行定义.

被这些函数引用 CloudShadow() , 以及 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.cpp39 行定义.

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

被这些函数引用 eve::procgen::Procgen::sampleCloudShadow().

◆ 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.cpp51 行定义.

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

◆ setCloudAltitude()

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

在文件 CloudShadow.cpp17 行定义.

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

◆ setParams()

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

在文件 CloudShadow.cpp8 行定义.

引用了 params().

被这些函数引用 CloudShadow().

◆ setStrength()

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

在文件 CloudShadow.cpp18 行定义.

引用了 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.cpp34 行定义.

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

被这些函数引用 eve::procgen::Procgen::cloudShadowFactor() , 以及 sampleFactor().


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