Cloud shadows cast onto the ground plane. 更多...
#include <CloudShadow.h>
类 | |
| struct | Params |
Public 成员函数 | |
| CloudShadow ()=default | |
| CloudShadow (const Params ¶ms) | |
| const Params & | params () const |
| void | setParams (const Params ¶ms) |
| 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 第 21 行定义.
构造及析构函数说明
◆ CloudShadow() [1/2]
|
default |
◆ CloudShadow() [2/2]
|
inlineexplicit |
在文件 CloudShadow.h 第 33 行定义.
引用了 params() , 以及 setParams().
成员函数说明
◆ 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, 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, eve::procgen::CloudShadow::Params::sunDirY, x , 以及 z.
被这些函数引用 sampleCoverage() , 以及 shadowFactorAt().
◆ params()
|
inline |
在文件 CloudShadow.h 第 35 行定义.
被这些函数引用 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.cpp 第 39 行定义.
◆ 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 行定义.
◆ 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 | ) |
◆ 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, x , 以及 z.
被这些函数引用 eve::procgen::Procgen::cloudShadowFactor() , 以及 sampleFactor().
该类的文档由以下文件生成:
- src/modules/procgen/texture/CloudShadow.h
- src/modules/procgen/texture/CloudShadow.cpp