DayNight module — a time-of-day cycle that drives the sun, sky and light. 更多...
#include <DayNight.h>
类 | |
| struct | Impl |
Public 成员函数 | |
| Module_REG (DayNight) | |
| DayNight () | |
| Day night. | |
| ~DayNight () override | |
| Day night. | |
| void | init (graphics::Graphics *gfx) |
| Idempotent; builds lights / sky cubemap on first call. | |
| void | update (float dt, graphics::Graphics *gfx) |
| Advance the clock and push sun/sky/light state; before gfx.render3D(). | |
| void | setTimeOfDay (float hours) |
| Sets the time of day. | |
| float | getTimeOfDay () const |
| Returns the time of day. | |
| void | setSpeed (float hoursPerRealHour) |
| Sets the speed. | |
| float | getSpeed () const |
| Returns the speed. | |
| void | setPaused (bool paused) |
| Sets the paused. | |
| bool | isPaused () const |
| True when paused. | |
| bool | isNight () const |
| True when the sun is below the horizon (night). | |
| float | getSunElevation () const |
| Solar elevation in degrees (max at local noon, ~70°). | |
| float | getSunAzimuth () const |
| Solar azimuth in degrees, measured clockwise from +Z. | |
| float | getSunDirX () const |
| World-space direction pointing AT the sun (normalized). | |
| float | getSunDirY () const |
| Returns the sun dir y. | |
| float | getSunDirZ () const |
| Returns the sun dir z. | |
| float | getSunIntensity () const |
| 0..1 sun energy; ramps to 0 below the horizon. | |
| float | getSunR () const |
| Atmosphere-attenuated direct sunlight red channel, including intensity. | |
| float | getSunG () const |
| Atmosphere-attenuated direct sunlight green channel, including intensity. | |
| float | getSunB () const |
| Atmosphere-attenuated direct sunlight blue channel, including intensity. | |
| Result< void > | setPcgManualSun (const PcgManualSunState &state) |
| Atomically replace the persistent Pcg manual-sun state. | |
| PcgManualSunState | getPcgManualSun () const noexcept |
| Return the authoritative manual-sun settings by value. | |
| Result< void > | setPcgSkybox (const PcgSkyboxState &state) |
| Atomically replace Pcg's persistent skybox override. | |
| PcgSkyboxState | getPcgSkybox () const noexcept |
| Return the authoritative Pcg skybox override by value. | |
| Result< void > | setPcgFog (const PcgFogState &state) |
| Atomically replace all Pcg fog and density-volume controls. | |
| PcgFogState | getPcgFog () const noexcept |
| Return the authoritative Pcg fog state by value. | |
| Result< void > | setPcgAmbientLight (const PcgAmbientLightState &state) |
| Atomically replace Pcg ambient colors, intensity and direct-light multiplier. | |
| PcgAmbientLightState | getPcgAmbientLight () const noexcept |
| Return the authoritative Pcg ambient-light state by value. | |
| void | setTurbidity (float turbidity) |
| Set aerosol turbidity. 1.5 is very clear; 10 is hazy. | |
| float | getTurbidity () const |
| Returns the turbidity. | |
| void | setSkyExposure (float exposure) |
| Exposure used when mapping physical sky radiance to the RGBA8 sky cubemap. | |
| float | getSkyExposure () const |
| Returns the sky exposure. | |
| void | setMieStrength (float strength) |
| Relative Mie aerosol density; controls horizon haze and solar halo. | |
| float | getMieStrength () const |
| Returns the mie strength. | |
| float | getSkyR () const |
| Returns the sky r. | |
| float | getSkyG () const |
| Returns the sky g. | |
| float | getSkyB () const |
| Returns the sky b. | |
| float | getAmbientR () const |
| Returns the ambient r. | |
| float | getAmbientG () const |
| Returns the ambient g. | |
| float | getAmbientB () const |
| Returns the ambient b. | |
| float | getAmbientBrightness () const |
| Returns the ambient brightness. | |
| void | applyAtmosphere (graphics::Volumetric *fog) const |
| Synchronize sun direction and atmosphere-derived fog lighting. | |
| void | applyReflectionProbeSky (graphics::ReflectionProbeCapture *probe) const |
| Synchronize linear directional sky radiance and sky IBL to a reflection probe. | |
| void | setWeatherInfluence (float cloudiness, float lightningFlash) |
| Apply cloud cover and lightning exposure to the unified sky/lighting model. | |
| float | getWeatherCloudiness () const |
| Returns the weather cloudiness. | |
| float | getWeatherFlash () const |
| Returns the weather flash. | |
| void | setSkyboxEnabled (bool enabled) |
| Sets the skybox enabled. | |
| bool | isSkyboxEnabled () const |
| True when skybox enabled. | |
| void | setNightLight (const std::string &name, bool enabled) |
| Enable a named light system: "moonlight"|"starlight"|"fire"|"fireflies". | |
| bool | isNightLight (const std::string &name) const |
| True when night light. | |
| void | setFirePosition (float x, float y, float z) |
| Position of the campfire point light (fire system). | |
| void | addFirefly (float x, float y, float z) |
| Add one firefly anchor (world space); up to kMaxFireflies. | |
| void | clearFireflies () |
| Clears fireflies. | |
| int | getFireflyCount () const |
| Returns the firefly count. | |
Public 成员函数 继承自 eve::Module | |
| virtual | ~Module () |
| Module. | |
| virtual std::string | getName () const =0 |
| Returns the name. | |
静态 Public 属性 | |
| static const char *const | kNamedLights [] = {"moonlight", "starlight", "fire", "fireflies"} |
| static const int | kNamedLightCount = 4 |
详细描述
DayNight module — a time-of-day cycle that drives the sun, sky and light.
Advances a 24-hour clock (configurable speed) and, each frame, repositions the directional sun to match the current solar elevation / azimuth. A procedural sky cubemap (sky gradient + sun disc + night stars) is generated on demand and registered as the 3D IBL environment so both the skybox angle and the reflected sky follow the sun as time flows.
At night the module can switch between complementary lighting systems, each implemented as a pool of Light3D entities:
- moonlight : a cool, low directional light from the moon direction
- starlight : a faint, slightly-blue ambient that softens the dark
- fire : a warm point light at a caller-provided campfire position
- fireflies : a set of warm, gently-drifting point lights
Usage from script: daynight.setTimeOfDay(12.0); // solar noon daynight.setSpeed(1.0); // 1 real hour per simulated hour daynight.setNightLight("fireflies", true); // each frame before gfx.render3D(): daynight.update(dt, gfx); camera.setAmbient(daynight.getAmbientR(), ...);
在文件 DayNight.h 第 94 行定义.
构造及析构函数说明
◆ DayNight()
| eve::daynight::DayNight::DayNight | ( | ) |
Day night.
在文件 DayNight.cpp 第 286 行定义.
◆ ~DayNight()
|
override |
Day night.
在文件 DayNight.cpp 第 287 行定义.
成员函数说明
◆ addFirefly()
| void eve::daynight::DayNight::addFirefly | ( | float | x, |
| float | y, | ||
| float | z | ||
| ) |
Add one firefly anchor (world space); up to kMaxFireflies.
在文件 DayNight.cpp 第 678 行定义.
引用了 eve::daynight::DayNight::Impl::built, eve::graphics::Light3D::createLight(), f, eve::daynight::DayNight::Impl::flies, eve::daynight::DayNight::Impl::flyLights, eve::graphics::Light3D::setColor(), eve::graphics::Light3D::setEnabled(), eve::graphics::Light3D::setPosition(), eve::graphics::Light3D::setRadius(), x, eve::daynight::DayNight::Impl::Fly::x, y , 以及 z.
◆ applyAtmosphere()
| void eve::daynight::DayNight::applyAtmosphere | ( | graphics::Volumetric * | fog | ) | const |
Synchronize sun direction and atmosphere-derived fog lighting.
This is the supported bridge between the day/night atmosphere and a graphics Volumetric instance. Density and height remain scene/weather controls; sky color, sun direction, exposure and animation time are supplied by this module.
- 参数
-
fog Target volumetric fog or cloud renderer; null is ignored.
在文件 DayNight.cpp 第 534 行定义.
引用了 eve::daynight::PcgFogState::additionalExponentialDensity, eve::daynight::PcgFogState::additionalLinearDistance, eve::daynight::PcgFogState::blue, eve::daynight::PcgFogState::density, eve::daynight::PcgFogState::densityAlbedoBlue, eve::daynight::PcgFogState::densityAlbedoGreen, eve::daynight::PcgFogState::densityAlbedoRed, eve::daynight::PcgFogState::densityVolumeDistance, eve::daynight::PcgFogState::densityVolumeEffect, eve::daynight::PcgFogState::densityVolumeTiling, eve::daynight::PcgFogState::endDistance, eve::graphics::Volumetric::getFloat(), eve::graphics::Volumetric::getMode(), eve::graphics::Volumetric::getQuality(), getSkyB(), getSkyG(), getSkyR(), getSunB(), getSunDirX(), getSunDirY(), getSunDirZ(), getSunG(), getSunR(), eve::daynight::PcgFogState::globalDensityMultiplier, eve::daynight::PcgFogState::green, eve::daynight::PcgFogState::mode, eve::daynight::PcgFogState::overrideDensityVolume, eve::daynight::PcgFogState::overrideFog, eve::daynight::DayNight::Impl::pcgFog, eve::daynight::DayNight::Impl::pcgFogBaseDensity, eve::daynight::DayNight::Impl::pcgFogBaseEnd, eve::daynight::DayNight::Impl::pcgFogBaseMode, eve::daynight::DayNight::Impl::pcgFogBaseQuality, eve::daynight::DayNight::Impl::pcgFogBaseStart, eve::daynight::DayNight::Impl::pcgFogTarget, eve::daynight::DayNight::Impl::pcgFogWasActive, eve::daynight::PcgFogState::red, eve::graphics::Volumetric::setCloudLightColor(), eve::graphics::Volumetric::setDensity(), eve::graphics::Volumetric::setFogColor(), eve::graphics::Volumetric::setFogEnd(), eve::graphics::Volumetric::setFogStart(), eve::graphics::Volumetric::setIntensity(), eve::graphics::Volumetric::setLightDirection(), eve::graphics::Volumetric::setMode(), eve::graphics::Volumetric::setQuality(), eve::graphics::Volumetric::setTime(), start, eve::daynight::PcgFogState::startDistance, eve::daynight::DayNight::Impl::sunEnergy, eve::daynight::DayNight::Impl::timeOfDay , 以及 eve::daynight::DayNight::Impl::weatherFlash.
◆ applyReflectionProbeSky()
| void eve::daynight::DayNight::applyReflectionProbeSky | ( | graphics::ReflectionProbeCapture * | probe | ) | const |
Synchronize linear directional sky radiance and sky IBL to a reflection probe.
- 参数
-
probe Target runtime probe; null is ignored.
在文件 DayNight.cpp 第 590 行定义.
引用了 color, direction, directions, eve::daynight::DayNight::Impl::elevDeg, eve::daynight::PcgSkyboxState::enabled, eve::daynight::PcgSkyboxState::exposure, eve::daynight::DayNight::Impl::mieStrength, eve::daynight::DayNight::Impl::pcgSkybox, eve::daynight::PcgSkyboxState::rotationDegrees, scale, eve::graphics::ReflectionProbeCapture::setEnvironmentLighting(), eve::graphics::ReflectionProbeCapture::setSkyFaceColor(), eve::graphics::ReflectionProbeCapture::setSkyFaceTexture(), eve::graphics::ReflectionProbeCapture::setSkyFaceTextureScale(), eve::daynight::DayNight::Impl::skyCube, eve::daynight::DayNight::Impl::skyExposure, eve::daynight::DayNight::Impl::skyFaceCenterLuminance, eve::daynight::DayNight::Impl::skyFaces, eve::daynight::DayNight::Impl::sunDir, eve::daynight::DayNight::Impl::sunEnergy, eve::daynight::PcgSkyboxState::tintBlue, eve::daynight::PcgSkyboxState::tintGreen, eve::daynight::PcgSkyboxState::tintRed, eve::daynight::DayNight::Impl::turbidity, up, view, eve::daynight::DayNight::Impl::weatherCloudiness , 以及 eve::daynight::DayNight::Impl::weatherFlash.
◆ clearFireflies()
| void eve::daynight::DayNight::clearFireflies | ( | ) |
Clears fireflies.
在文件 DayNight.cpp 第 693 行定义.
引用了 eve::daynight::DayNight::Impl::flies , 以及 eve::daynight::DayNight::Impl::flyLights.
◆ getAmbientB()
| float eve::daynight::DayNight::getAmbientB | ( | ) | const |
Returns the ambient b.
在文件 DayNight.cpp 第 524 行定义.
引用了 a, ab, eve::daynight::PcgAmbientLightState::active, getAmbientBrightness(), eve::daynight::PcgAmbientLightState::intensity, eve::daynight::DayNight::Impl::pcgAmbient , 以及 eve::daynight::DayNight::Impl::sunEnergy.
◆ getAmbientBrightness()
| float eve::daynight::DayNight::getAmbientBrightness | ( | ) | const |
Returns the ambient brightness.
在文件 DayNight.cpp 第 491 行定义.
引用了 eve::daynight::DayNight::Impl::nightLight, eve::daynight::DayNight::Impl::sunEnergy, eve::daynight::DayNight::Impl::weatherCloudiness , 以及 eve::daynight::DayNight::Impl::weatherFlash.
被这些函数引用 getAmbientB(), getAmbientG() , 以及 getAmbientR().
◆ getAmbientG()
| float eve::daynight::DayNight::getAmbientG | ( | ) | const |
Returns the ambient g.
在文件 DayNight.cpp 第 515 行定义.
引用了 a, ab, eve::daynight::PcgAmbientLightState::active, getAmbientBrightness(), eve::daynight::PcgAmbientLightState::intensity, eve::daynight::DayNight::Impl::pcgAmbient , 以及 eve::daynight::DayNight::Impl::sunEnergy.
◆ getAmbientR()
| float eve::daynight::DayNight::getAmbientR | ( | ) | const |
Returns the ambient r.
在文件 DayNight.cpp 第 506 行定义.
引用了 a, ab, eve::daynight::PcgAmbientLightState::active, getAmbientBrightness(), eve::daynight::PcgAmbientLightState::intensity , 以及 eve::daynight::DayNight::Impl::pcgAmbient.
◆ getFireflyCount()
| int eve::daynight::DayNight::getFireflyCount | ( | ) | const |
◆ getMieStrength()
| float eve::daynight::DayNight::getMieStrength | ( | ) | const |
Returns the mie strength.
在文件 DayNight.cpp 第 458 行定义.
◆ getPcgAmbientLight()
|
noexcept |
Return the authoritative Pcg ambient-light state by value.
在文件 DayNight.cpp 第 441 行定义.
◆ getPcgFog()
|
noexcept |
Return the authoritative Pcg fog state by value.
在文件 DayNight.cpp 第 419 行定义.
◆ getPcgManualSun()
|
noexcept |
Return the authoritative manual-sun settings by value.
在文件 DayNight.cpp 第 364 行定义.
◆ getPcgSkybox()
|
noexcept |
Return the authoritative Pcg skybox override by value.
在文件 DayNight.cpp 第 382 行定义.
◆ getSkyB()
| float eve::daynight::DayNight::getSkyB | ( | ) | const |
Returns the sky b.
在文件 DayNight.cpp 第 481 行定义.
引用了 angle, c, eve::daynight::PcgSkyboxState::enabled, eve::daynight::PcgSkyboxState::exposure, eve::daynight::DayNight::Impl::mieStrength, eve::daynight::DayNight::Impl::pcgSkybox, eve::daynight::PcgSkyboxState::rotationDegrees, eve::daynight::DayNight::Impl::skyExposure, eve::daynight::DayNight::Impl::sunDir, eve::daynight::DayNight::Impl::sunEnergy, eve::daynight::PcgSkyboxState::tintBlue, eve::daynight::DayNight::Impl::turbidity, eve::daynight::DayNight::Impl::weatherCloudiness , 以及 eve::daynight::DayNight::Impl::weatherFlash.
被这些函数引用 applyAtmosphere() , 以及 update().
◆ getSkyExposure()
| float eve::daynight::DayNight::getSkyExposure | ( | ) | const |
Returns the sky exposure.
在文件 DayNight.cpp 第 453 行定义.
◆ getSkyG()
| float eve::daynight::DayNight::getSkyG | ( | ) | const |
Returns the sky g.
在文件 DayNight.cpp 第 471 行定义.
引用了 angle, c, eve::daynight::PcgSkyboxState::enabled, eve::daynight::PcgSkyboxState::exposure, eve::daynight::DayNight::Impl::mieStrength, eve::daynight::DayNight::Impl::pcgSkybox, eve::daynight::PcgSkyboxState::rotationDegrees, eve::daynight::DayNight::Impl::skyExposure, eve::daynight::DayNight::Impl::sunDir, eve::daynight::DayNight::Impl::sunEnergy, eve::daynight::PcgSkyboxState::tintGreen, eve::daynight::DayNight::Impl::turbidity, eve::daynight::DayNight::Impl::weatherCloudiness , 以及 eve::daynight::DayNight::Impl::weatherFlash.
被这些函数引用 applyAtmosphere() , 以及 update().
◆ getSkyR()
| float eve::daynight::DayNight::getSkyR | ( | ) | const |
Returns the sky r.
在文件 DayNight.cpp 第 461 行定义.
引用了 angle, c, eve::daynight::PcgSkyboxState::enabled, eve::daynight::PcgSkyboxState::exposure, eve::daynight::DayNight::Impl::mieStrength, eve::daynight::DayNight::Impl::pcgSkybox, eve::daynight::PcgSkyboxState::rotationDegrees, eve::daynight::DayNight::Impl::skyExposure, eve::daynight::DayNight::Impl::sunDir, eve::daynight::DayNight::Impl::sunEnergy, eve::daynight::PcgSkyboxState::tintRed, eve::daynight::DayNight::Impl::turbidity, eve::daynight::DayNight::Impl::weatherCloudiness , 以及 eve::daynight::DayNight::Impl::weatherFlash.
被这些函数引用 applyAtmosphere() , 以及 update().
◆ getSpeed()
| float eve::daynight::DayNight::getSpeed | ( | ) | const |
◆ getSunAzimuth()
| float eve::daynight::DayNight::getSunAzimuth | ( | ) | const |
Solar azimuth in degrees, measured clockwise from +Z.
在文件 DayNight.cpp 第 308 行定义.
◆ getSunB()
| float eve::daynight::DayNight::getSunB | ( | ) | const |
Atmosphere-attenuated direct sunlight blue channel, including intensity.
在文件 DayNight.cpp 第 333 行定义.
引用了 eve::daynight::PcgAmbientLightState::active, color, eve::daynight::PcgManualSunState::enabled, eve::daynight::PcgAmbientLightState::globalLightMultiplier, eve::daynight::DayNight::Impl::manualSun, eve::daynight::DayNight::Impl::mieStrength, eve::daynight::DayNight::Impl::pcgAmbient, eve::daynight::DayNight::Impl::sunDir, eve::daynight::DayNight::Impl::sunEnergy, eve::daynight::DayNight::Impl::turbidity , 以及 eve::daynight::DayNight::Impl::weatherCloudiness.
被这些函数引用 applyAtmosphere().
◆ getSunDirX()
| float eve::daynight::DayNight::getSunDirX | ( | ) | const |
World-space direction pointing AT the sun (normalized).
在文件 DayNight.cpp 第 309 行定义.
引用了 eve::daynight::DayNight::Impl::sunDir.
被这些函数引用 applyAtmosphere().
◆ getSunDirY()
| float eve::daynight::DayNight::getSunDirY | ( | ) | const |
Returns the sun dir y.
在文件 DayNight.cpp 第 310 行定义.
引用了 eve::daynight::DayNight::Impl::sunDir.
被这些函数引用 applyAtmosphere().
◆ getSunDirZ()
| float eve::daynight::DayNight::getSunDirZ | ( | ) | const |
Returns the sun dir z.
在文件 DayNight.cpp 第 311 行定义.
引用了 eve::daynight::DayNight::Impl::sunDir.
被这些函数引用 applyAtmosphere().
◆ getSunElevation()
| float eve::daynight::DayNight::getSunElevation | ( | ) | const |
Solar elevation in degrees (max at local noon, ~70°).
在文件 DayNight.cpp 第 307 行定义.
◆ getSunG()
| float eve::daynight::DayNight::getSunG | ( | ) | const |
Atmosphere-attenuated direct sunlight green channel, including intensity.
在文件 DayNight.cpp 第 323 行定义.
引用了 eve::daynight::PcgAmbientLightState::active, color, eve::daynight::PcgManualSunState::enabled, eve::daynight::PcgAmbientLightState::globalLightMultiplier, eve::daynight::DayNight::Impl::manualSun, eve::daynight::DayNight::Impl::mieStrength, eve::daynight::DayNight::Impl::pcgAmbient, eve::daynight::DayNight::Impl::sunDir, eve::daynight::DayNight::Impl::sunEnergy, eve::daynight::DayNight::Impl::turbidity , 以及 eve::daynight::DayNight::Impl::weatherCloudiness.
被这些函数引用 applyAtmosphere().
◆ getSunIntensity()
| float eve::daynight::DayNight::getSunIntensity | ( | ) | const |
0..1 sun energy; ramps to 0 below the horizon.
在文件 DayNight.cpp 第 312 行定义.
◆ getSunR()
| float eve::daynight::DayNight::getSunR | ( | ) | const |
Atmosphere-attenuated direct sunlight red channel, including intensity.
在文件 DayNight.cpp 第 313 行定义.
引用了 eve::daynight::PcgAmbientLightState::active, color, eve::daynight::PcgManualSunState::enabled, eve::daynight::PcgAmbientLightState::globalLightMultiplier, eve::daynight::DayNight::Impl::manualSun, eve::daynight::DayNight::Impl::mieStrength, eve::daynight::DayNight::Impl::pcgAmbient, eve::daynight::DayNight::Impl::sunDir, eve::daynight::DayNight::Impl::sunEnergy, eve::daynight::DayNight::Impl::turbidity , 以及 eve::daynight::DayNight::Impl::weatherCloudiness.
被这些函数引用 applyAtmosphere().
◆ getTimeOfDay()
| float eve::daynight::DayNight::getTimeOfDay | ( | ) | const |
◆ getTurbidity()
| float eve::daynight::DayNight::getTurbidity | ( | ) | const |
◆ getWeatherCloudiness()
| float eve::daynight::DayNight::getWeatherCloudiness | ( | ) | const |
Returns the weather cloudiness.
在文件 DayNight.cpp 第 504 行定义.
◆ getWeatherFlash()
| float eve::daynight::DayNight::getWeatherFlash | ( | ) | const |
Returns the weather flash.
在文件 DayNight.cpp 第 505 行定义.
◆ init()
| void eve::daynight::DayNight::init | ( | graphics::Graphics * | gfx | ) |
Idempotent; builds lights / sky cubemap on first call.
在文件 DayNight.cpp 第 703 行定义.
引用了 eve::daynight::DayNight::Impl::built, eve::graphics::Light3D::createLight(), f, eve::daynight::DayNight::Impl::fireLight, eve::daynight::DayNight::Impl::fireX, eve::daynight::DayNight::Impl::fireY, eve::daynight::DayNight::Impl::fireZ, eve::daynight::DayNight::Impl::flies, eve::daynight::DayNight::Impl::flyLights, eve::daynight::DayNight::Impl::gfx, eve::daynight::DayNight::Impl::moonLight, eve::graphics::Light3D::setColor(), eve::graphics::Light3D::setDirection(), eve::graphics::Light3D::setEnabled(), eve::graphics::Light3D::setPosition() , 以及 eve::graphics::Light3D::setRadius().
被这些函数引用 update().
◆ isNight()
| bool eve::daynight::DayNight::isNight | ( | ) | const |
True when the sun is below the horizon (night).
在文件 DayNight.cpp 第 305 行定义.
◆ isNightLight()
| bool eve::daynight::DayNight::isNightLight | ( | const std::string & | name | ) | const |
True when night light.
在文件 DayNight.cpp 第 662 行定义.
引用了 kNamedLightCount, kNamedLights, name , 以及 eve::daynight::DayNight::Impl::nightLight.
◆ isPaused()
| bool eve::daynight::DayNight::isPaused | ( | ) | const |
◆ isSkyboxEnabled()
| bool eve::daynight::DayNight::isSkyboxEnabled | ( | ) | const |
True when skybox enabled.
在文件 DayNight.cpp 第 648 行定义.
◆ Module_REG()
| eve::daynight::DayNight::Module_REG | ( | DayNight | ) |
◆ setFirePosition()
| void eve::daynight::DayNight::setFirePosition | ( | float | x, |
| float | y, | ||
| float | z | ||
| ) |
Position of the campfire point light (fire system).
在文件 DayNight.cpp 第 669 行定义.
引用了 eve::daynight::DayNight::Impl::fireLight, eve::daynight::DayNight::Impl::fireX, eve::daynight::DayNight::Impl::fireY, eve::daynight::DayNight::Impl::fireZ, eve::graphics::Light3D::setColor(), eve::graphics::Light3D::setPosition(), eve::graphics::Light3D::setRadius(), x, y , 以及 z.
◆ setMieStrength()
| void eve::daynight::DayNight::setMieStrength | ( | float | strength | ) |
Relative Mie aerosol density; controls horizon haze and solar halo.
在文件 DayNight.cpp 第 454 行定义.
引用了 eve::daynight::DayNight::Impl::lastSkyBucket, eve::daynight::DayNight::Impl::mieStrength , 以及 v.
被这些函数引用 eve::lighting_editing::EnvironmentRuntimeApplier::applyDayNight().
◆ setNightLight()
| void eve::daynight::DayNight::setNightLight | ( | const std::string & | name, |
| bool | enabled | ||
| ) |
Enable a named light system: "moonlight"|"starlight"|"fire"|"fireflies".
在文件 DayNight.cpp 第 654 行定义.
引用了 enabled, kNamedLightCount, kNamedLights, name , 以及 eve::daynight::DayNight::Impl::nightLight.
◆ setPaused()
| void eve::daynight::DayNight::setPaused | ( | bool | paused | ) |
Sets the paused.
在文件 DayNight.cpp 第 302 行定义.
引用了 p , 以及 eve::daynight::DayNight::Impl::paused.
被这些函数引用 eve::lighting_editing::EnvironmentRuntimeApplier::applyDayNight() , 以及 eve::daynight::PcgLightingTimePhotoMode::applyPhotoModeField().
◆ setPcgAmbientLight()
| Result< void > eve::daynight::DayNight::setPcgAmbientLight | ( | const PcgAmbientLightState & | state | ) |
Atomically replace Pcg ambient colors, intensity and direct-light multiplier.
- 参数
-
state Finite non-negative colors, intensity in [0,10], multiplier in [0,5].
- 返回
- Success, or InvalidArgument without changing the previous state. @thread Game thread only; the value is copied and no callback is invoked.
在文件 DayNight.cpp 第 421 行定义.
引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::daynight::DayNight::Impl::pcgAmbient, state, eve::Result< T >::success(), value , 以及 values.
被这些函数引用 eve::daynight::PcgLightingAmbientPhotoMode::applyPhotoModeField(), eve::daynight::PcgLightingAmbientPhotoMode::setAuthority() , 以及 eve::daynight::PcgLightingAmbientPhotoMode::~PcgLightingAmbientPhotoMode().
◆ setPcgFog()
| Result< void > eve::daynight::DayNight::setPcgFog | ( | const PcgFogState & | state | ) |
Atomically replace all Pcg fog and density-volume controls.
- 参数
-
state Candidate joint state using Pcg Photo Mode ranges and enum indices.
- 返回
- Success, or InvalidArgument without mutating the previous state. @thread Game thread only; the value is copied and no callback is invoked.
在文件 DayNight.cpp 第 384 行定义.
引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::daynight::DayNight::Impl::pcgFog, state, eve::Result< T >::success(), value , 以及 values.
被这些函数引用 eve::daynight::PcgLightingFogPhotoMode::applyPhotoModeField().
◆ setPcgManualSun()
| Result< void > eve::daynight::DayNight::setPcgManualSun | ( | const PcgManualSunState & | state | ) |
Atomically replace the persistent Pcg manual-sun state.
- 参数
-
state Candidate settings; angles must be in [0,360], intensity in [0,8], color channels finite and non-negative, and kelvin in [1500,20000].
- 返回
- Success after the authoritative state changes, or InvalidArgument with no mutation. @thread Game thread only. The value is copied and no callback is invoked.
在文件 DayNight.cpp 第 344 行定义.
引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), finite, eve::InvalidArgument, eve::daynight::DayNight::Impl::lastSkyBucket, eve::daynight::DayNight::Impl::manualSun, state , 以及 eve::Result< T >::success().
被这些函数引用 eve::daynight::PcgLightingSunPhotoMode::applyPhotoModeField().
◆ setPcgSkybox()
| Result< void > eve::daynight::DayNight::setPcgSkybox | ( | const PcgSkyboxState & | state | ) |
Atomically replace Pcg's persistent skybox override.
- 参数
-
state Rotation in [0,360], exposure in [0,30], and finite non-negative tint.
- 返回
- Success, or InvalidArgument without changing the previous state. @thread Game thread only; the value is copied and no callback is invoked.
在文件 DayNight.cpp 第 366 行定义.
引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), finite, eve::InvalidArgument, eve::daynight::DayNight::Impl::lastSkyBucket, eve::daynight::DayNight::Impl::pcgSkybox, state , 以及 eve::Result< T >::success().
被这些函数引用 eve::daynight::PcgLightingSkyboxPhotoMode::applyPhotoModeField().
◆ setSkyboxEnabled()
| void eve::daynight::DayNight::setSkyboxEnabled | ( | bool | enabled | ) |
Sets the skybox enabled.
在文件 DayNight.cpp 第 644 行定义.
引用了 enabled, eve::daynight::DayNight::Impl::lastSkyBucket , 以及 eve::daynight::DayNight::Impl::skyboxEnabled.
被这些函数引用 eve::lighting_editing::EnvironmentRuntimeApplier::applyDayNight().
◆ setSkyExposure()
| void eve::daynight::DayNight::setSkyExposure | ( | float | exposure | ) |
Exposure used when mapping physical sky radiance to the RGBA8 sky cubemap.
在文件 DayNight.cpp 第 449 行定义.
引用了 eve::daynight::DayNight::Impl::lastSkyBucket, eve::daynight::DayNight::Impl::skyExposure , 以及 v.
被这些函数引用 eve::lighting_editing::EnvironmentRuntimeApplier::applyDayNight().
◆ setSpeed()
| void eve::daynight::DayNight::setSpeed | ( | float | hoursPerRealHour | ) |
Sets the speed.
在文件 DayNight.cpp 第 300 行定义.
引用了 eve::daynight::DayNight::Impl::speed.
被这些函数引用 eve::lighting_editing::EnvironmentRuntimeApplier::applyDayNight() , 以及 eve::daynight::PcgLightingTimePhotoMode::applyPhotoModeField().
◆ setTimeOfDay()
| void eve::daynight::DayNight::setTimeOfDay | ( | float | hours | ) |
Sets the time of day.
在文件 DayNight.cpp 第 293 行定义.
引用了 h , 以及 eve::daynight::DayNight::Impl::timeOfDay.
被这些函数引用 eve::lighting_editing::EnvironmentRuntimeApplier::applyDayNight() , 以及 eve::daynight::PcgLightingTimePhotoMode::applyPhotoModeField().
◆ setTurbidity()
| void eve::daynight::DayNight::setTurbidity | ( | float | turbidity | ) |
Set aerosol turbidity. 1.5 is very clear; 10 is hazy.
在文件 DayNight.cpp 第 444 行定义.
引用了 eve::daynight::DayNight::Impl::lastSkyBucket, eve::daynight::DayNight::Impl::turbidity , 以及 v.
被这些函数引用 eve::lighting_editing::EnvironmentRuntimeApplier::applyDayNight().
◆ setWeatherInfluence()
| void eve::daynight::DayNight::setWeatherInfluence | ( | float | cloudiness, |
| float | lightningFlash | ||
| ) |
Apply cloud cover and lightning exposure to the unified sky/lighting model.
- 参数
-
cloudiness Cloud attenuation in [0,1]. lightningFlash Transient lightning energy in [0,1].
在文件 DayNight.cpp 第 497 行定义.
引用了 eve::daynight::DayNight::Impl::lastSkyBucket, eve::daynight::DayNight::Impl::weatherCloudiness , 以及 eve::daynight::DayNight::Impl::weatherFlash.
◆ update()
| void eve::daynight::DayNight::update | ( | float | dt, |
| graphics::Graphics * | gfx | ||
| ) |
Advance the clock and push sun/sky/light state; before gfx.render3D().
在文件 DayNight.cpp 第 733 行定义.
引用了 eve::daynight::PcgAmbientLightState::active, eve::daynight::DayNight::Impl::azimDeg, bucket, eve::daynight::DayNight::Impl::built, center, eve::daynight::DayNight::Impl::elevDeg, eve::daynight::PcgManualSunState::enabled, eve::daynight::PcgSkyboxState::enabled, eve::daynight::PcgSkyboxState::exposure, f, eve::daynight::DayNight::Impl::fireLight, eve::daynight::DayNight::Impl::flies, eve::daynight::DayNight::Impl::flyLights, getSkyB(), getSkyG(), getSkyR(), eve::daynight::DayNight::Impl::gfx, eve::daynight::PcgAmbientLightState::globalLightMultiplier, init(), eve::daynight::PcgManualSunState::intensity, eve::daynight::DayNight::Impl::lastSkyBucket, eve::daynight::DayNight::Impl::manualSun, eve::daynight::DayNight::Impl::mieStrength, eve::daynight::DayNight::Impl::moonLight, eve::graphics::Graphics::newCubemap(), eve::graphics::Graphics::newTexture(), eve::daynight::DayNight::Impl::nightLight, eve::daynight::DayNight::Impl::paused, eve::daynight::DayNight::Impl::pcgAmbient, eve::daynight::DayNight::Impl::pcgSkybox, pitch, eve::daynight::PcgManualSunState::pitchDegrees, rotation, eve::daynight::PcgManualSunState::rotationDegrees, eve::daynight::PcgSkyboxState::rotationDegrees, eve::graphics::Graphics::setBackgroundColorRGBA(), eve::graphics::Light3D::setDirection(), eve::graphics::Graphics::setDirectionalLight(), eve::graphics::Light3D::setEnabled(), eve::graphics::Graphics::setMesh3DEnv(), eve::graphics::Light3D::setPosition(), eve::daynight::DayNight::Impl::skyboxEnabled, eve::daynight::DayNight::Impl::skyCube, eve::daynight::DayNight::Impl::skyExposure, eve::daynight::DayNight::Impl::skyFaceCenterLuminance, eve::daynight::DayNight::Impl::skyFaces, eve::daynight::DayNight::Impl::speed, eve::daynight::DayNight::Impl::sunDir, eve::daynight::DayNight::Impl::sunEnergy, t, eve::daynight::DayNight::Impl::timeOfDay, tint, eve::daynight::PcgSkyboxState::tintBlue, eve::daynight::PcgSkyboxState::tintGreen, eve::daynight::PcgSkyboxState::tintRed, eve::daynight::DayNight::Impl::turbidity, eve::daynight::DayNight::Impl::weatherCloudiness, eve::daynight::DayNight::Impl::weatherFlash , 以及 eve::graphics::TextureCreateInfo::withMipmaps().
类成员变量说明
◆ kNamedLightCount
|
static |
在文件 DayNight.h 第 251 行定义.
被这些函数引用 isNightLight() , 以及 setNightLight().
◆ kNamedLights
|
static |
在文件 DayNight.h 第 250 行定义.
被这些函数引用 isNightLight() , 以及 setNightLight().
该类的文档由以下文件生成:
- src/modules/daynight/DayNight.h
- src/modules/daynight/DayNight.cpp
Public 成员函数 继承自