Maps world-space density into a camera froxel volume and integrates it. 更多...
#include <FogFroxelBridge.h>
Public 成员函数 | |
| Result< int > | inject (AtmosphereVolume &volume, const FogDensityField &field, const FogProfile &profile, const glm::mat4 &invViewProj, bool occupancySkip) |
| Inject density-field media into an AtmosphereVolume froxel grid. | |
| Result< void > | integrate (AtmosphereVolume &volume, const FogDensityField &field, const FogProfile &profile, const glm::mat4 &invViewProj, const glm::vec3 &lightDir, const glm::vec3 &lightColor, float intensity, const BeerLightCache *beerCache) |
| Integrate froxels with optional Beer-cache visibility. | |
详细描述
Maps world-space density into a camera froxel volume and integrates it.
Occupancy skipping and temporal history follow the active FogQualityBudget.
在文件 FogFroxelBridge.h 第 24 行定义.
成员函数说明
◆ inject()
| Result< int > eve::graphics::fog::FogFroxelBridge::inject | ( | AtmosphereVolume & | volume, |
| const FogDensityField & | field, | ||
| const FogProfile & | profile, | ||
| const glm::mat4 & | invViewProj, | ||
| bool | occupancySkip | ||
| ) |
Inject density-field media into an AtmosphereVolume froxel grid.
- 参数
-
invViewProj Inverse view-projection used to reconstruct froxel centers. occupancySkip Skip empty froxels when the quality budget allows it.
- 返回
- Number of froxels that received non-zero media.
在文件 FogFroxelBridge.cpp 第 35 行定义.
引用了 eve::graphics::fog::FogProfile::anisotropy(), eve::Diagnostic::error(), eve::graphics::fog::FogProfile::extinctionAt(), eve::Failed, eve::Result< T >::failure(), invViewProj, eve::graphics::fog::FogProfile::scatteringAt(), eve::Result< T >::success(), volume, world, x, y , 以及 z.
被这些函数引用 eve::graphics::fog::FogSystem::injectToFroxel(), eve::graphics::fog::FogSystem::renderToFroxel() , 以及 eve::graphics::fog::FogSystem::syncToVolumetric().
◆ integrate()
| Result< void > eve::graphics::fog::FogFroxelBridge::integrate | ( | AtmosphereVolume & | volume, |
| const FogDensityField & | field, | ||
| const FogProfile & | profile, | ||
| const glm::mat4 & | invViewProj, | ||
| const glm::vec3 & | lightDir, | ||
| const glm::vec3 & | lightColor, | ||
| float | intensity, | ||
| const BeerLightCache * | beerCache | ||
| ) |
Integrate froxels with optional Beer-cache visibility.
- 参数
-
invViewProj Inverse view-projection; must match the matrix used by inject().
在文件 FogFroxelBridge.cpp 第 64 行定义.
引用了 dir, eve::Diagnostic::error(), eve::Failed, eve::Result< T >::failure(), invViewProj, lightColor, lightDir, eve::graphics::fog::FogProfile::phase(), eve::graphics::fog::BeerLightCache::sampleTransmittance(), eve::Result< T >::success(), eve::graphics::fog::BeerLightCache::valid(), volume, world, x, y , 以及 z.
被这些函数引用 eve::graphics::fog::FogSystem::renderToFroxel() , 以及 eve::graphics::fog::FogSystem::syncToVolumetric().
该类的文档由以下文件生成:
- src/modules/graphics/fog/FogFroxelBridge.h
- src/modules/graphics/fog/FogFroxelBridge.cpp