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 |
|
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 |