|
Nebula
|
#include <volumetricfogcontext.h>
Inherits Graphics::GraphicsContext.
Private Types | |
| enum | FogVolumeType { BoxVolume , SphereVolume } |
| enum | { FogVolume_Type , FogVolume_TypedId , FogVolume_Turbidity , FogVolume_Absorption } |
| enum | { FogBoxVolume_Transform } |
| enum | { FogSphereVolume_Position , FogSphereVolume_Radius } |
| typedef Ids::IdAllocator< FogVolumeType, Ids::Id32, float, Math::vec3 > | FogGenericVolumeAllocator |
| typedef Ids::IdAllocator< Math::mat4 > | FogBoxVolumeAllocator |
| typedef Ids::IdAllocator< Math::vec3, float > | FogSphereVolumeAllocator |
Private Member Functions | |
| virtual __DeclareContext() public | ~VolumetricFogContext () |
| destructor | |
| void | SetGlobalTurbidity (float f) |
| set global turbidity (fog density) | |
| void | SetGlobalAbsorption (const Math::vec3 &color) |
| set the global fog absorption color | |
Static Private Member Functions | |
| static void | Create () |
| setup volumetric fog context | |
| static void | Discard () |
| discard volumetric fog context | |
| static void | SetupBoxVolume (const Graphics::GraphicsEntityId id, const Math::mat4 &transform, const float density, const Math::vec3 &absorption) |
| setup a new volume as a box | |
| static void | SetBoxTransform (const Graphics::GraphicsEntityId id, const Math::mat4 &transform) |
| set box transform | |
| static void | SetupSphereVolume (const Graphics::GraphicsEntityId id, const Math::vec3 &position, float radius, const float density, const Math::vec3 &absorption) |
| setup a new volume as a sphere | |
| static void | SetSpherePosition (const Graphics::GraphicsEntityId id, const Math::vec3 &position) |
| set sphere position | |
| static void | SetSphereRadius (const Graphics::GraphicsEntityId id, const float radius) |
| set sphere radius | |
| static void | SetTurbidity (const Graphics::GraphicsEntityId id, const float turbidity) |
| set volume turbidity | |
| static void | SetAbsorption (const Graphics::GraphicsEntityId id, const Math::vec3 &absorption) |
| set volume absorption | |
| static void | UpdateViewDependentResources (const Ptr< Graphics::View > &view, const Graphics::FrameContext &ctx) |
| prepare light lists | |
| static void | RenderUI (const Graphics::FrameContext &ctx) |
| render IMGUI | |
| static Math::mat4 | GetTransform (const Graphics::GraphicsEntityId id) |
| get transform | |
| static void | SetTransform (const Graphics::GraphicsEntityId id, const Math::mat4 &mat) |
| set transform | |
| static Graphics::ContextEntityId | Alloc () |
| allocate a new slice for this context | |
| static void | Dealloc (Graphics::ContextEntityId id) |
| deallocate a slice | |
Static Private Attributes | |
| static FogGenericVolumeAllocator | fogGenericVolumeAllocator |
| static FogBoxVolumeAllocator | fogBoxVolumeAllocator |
| static FogSphereVolumeAllocator | fogSphereVolumeAllocator |
Additional Inherited Members | |
Public Member Functions inherited from Graphics::GraphicsContext | |
| GraphicsContext () | |
| constructor | |
| virtual | ~GraphicsContext () |
| destructor | |
Static Protected Member Functions inherited from Graphics::GraphicsContext | |
| static void | InternalRegisterEntity (const Graphics::GraphicsEntityId id, Graphics::GraphicsContextState &&state) |
| static void | InternalDeregisterEntity (const Graphics::GraphicsEntityId id, Graphics::GraphicsContextState &&state) |
| template<class ID_ALLOCATOR> | |
| static void | InternalDefragment (ID_ALLOCATOR &allocator, Graphics::GraphicsContextState &&state) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
privatevirtual |
destructor
|
staticprivate |
allocate a new slice for this context
|
staticprivate |
setup volumetric fog context
|
staticprivate |
deallocate a slice
|
staticprivate |
discard volumetric fog context
|
staticprivate |
get transform
|
staticprivate |
render IMGUI
|
staticprivate |
set volume absorption
|
staticprivate |
set box transform
|
private |
set the global fog absorption color
|
private |
set global turbidity (fog density)
|
staticprivate |
set sphere position
|
staticprivate |
set sphere radius
|
staticprivate |
set transform
|
staticprivate |
set volume turbidity
|
staticprivate |
setup a new volume as a box
|
staticprivate |
setup a new volume as a sphere
|
staticprivate |
prepare light lists
|
staticprivate |
|
staticprivate |
|
staticprivate |