![]() |
Divide Framework 0.1
A free and open-source 3D Framework under heavy development
|
#include <SceneEnvironmentProbePool.h>
Classes | |
struct | ProbeSlice |
Public Types | |
enum class | ComputationStages : U8 { MIP_MAP_SOURCE , PREFILTER_MAP , IRRADIANCE_CALC , COUNT } |
Public Member Functions | |
SceneEnvironmentProbePool (Scene &parentScene) noexcept | |
~SceneEnvironmentProbePool () | |
const EnvironmentProbeList & | sortAndGetLocked (const vec3< F32 > &position) |
const EnvironmentProbeList & | getLocked () const noexcept |
void | registerProbe (EnvironmentProbeComponent *probe) |
void | unregisterProbe (const EnvironmentProbeComponent *probe) |
void | lockProbeList () const noexcept |
void | unlockProbeList () const noexcept |
void | prepareDebugData () |
POINTER_RW (EnvironmentProbeComponent, debugProbe, nullptr) | |
void | onNodeUpdated (const SceneGraphNode &node) noexcept |
![]() | |
SceneComponent (Scene &parentScene) noexcept | |
Scene & | parentScene () noexcept |
const Scene & | parentScene () const noexcept |
Static Public Member Functions | |
static void | Prepare (GFX::CommandBuffer &bufferInOut) |
static void | UpdateSkyLight (GFXDevice &context, GFX::CommandBuffer &bufferInOut, GFX::MemoryBarrierCommand &memCmdInOut) |
static void | OnStartup (GFXDevice &context) |
static void | OnShutdown (GFXDevice &context) |
static RenderTargetHandle | ReflectionTarget () noexcept |
static RenderTargetHandle | PrefilteredTarget () noexcept |
static RenderTargetHandle | IrradianceTarget () noexcept |
static RenderTargetHandle | BRDFLUTTarget () noexcept |
static U16 | AllocateSlice (bool lock) |
static void | UnlockSlice (U16 slice) noexcept |
static bool | ProbesDirty () noexcept |
static void | ProbesDirty (const bool state) noexcept |
static void | OnTimeOfDayChange (const SceneEnvironmentProbePool &probePool) noexcept |
static bool | DebuggingSkyLight () noexcept |
static void | DebuggingSkyLight (bool state) noexcept |
static bool | SkyLightNeedsRefresh () noexcept |
static void | SkyLightNeedsRefresh (bool state) noexcept |
static U16 | SkyProbeLayerIndex () noexcept |
Protected Member Functions | |
void | createDebugView (U16 layerIndex) |
Static Protected Member Functions | |
static void | ProcessEnvironmentMap (U16 layerID, bool highPriority) |
Protected Attributes | |
SharedMutex | _probeLock |
EnvironmentProbeList | _envProbes |
![]() | |
Scene & | _parentScene |
Static Protected Attributes | |
static vector< DebugView_ptr > | s_debugViews |
static bool | s_probesDirty = true |
static bool | s_debuggingSkyLight = false |
static bool | s_skyLightNeedsRefresh = true |
Static Private Member Functions | |
static void | ProcessEnvironmentMapInternal (const U16 layerID, ComputationStages &stage, GFX::CommandBuffer &bufferInOut) |
static void | PrefilterEnvMap (const U16 layerID, GFX::CommandBuffer &bufferInOut) |
static void | ComputeIrradianceMap (const U16 layerID, GFX::CommandBuffer &bufferInOut) |
Static Private Attributes | |
static std::array< ProbeSlice, Config::MAX_REFLECTIVE_PROBES_PER_PASS > | s_availableSlices |
static RenderTargetHandle | s_reflection |
static RenderTargetHandle | s_prefiltered |
static RenderTargetHandle | s_irradiance |
static RenderTargetHandle | s_brdfLUT |
static Handle< ShaderProgram > | s_previewShader = INVALID_HANDLE<ShaderProgram> |
static Handle< ShaderProgram > | s_irradianceComputeShader = INVALID_HANDLE<ShaderProgram> |
static Handle< ShaderProgram > | s_prefilterComputeShader = INVALID_HANDLE<ShaderProgram> |
static Handle< ShaderProgram > | s_lutComputeShader = INVALID_HANDLE<ShaderProgram> |
static Pipeline * | s_pipelineCalcPrefiltered = nullptr |
static Pipeline * | s_pipelineCalcIrradiance = nullptr |
static bool | s_lutTextureDirty = true |
Friends | |
class | EnvironmentProbeComponent |
Definition at line 57 of file SceneEnvironmentProbePool.h.
|
strong |
Enumerator | |
---|---|
MIP_MAP_SOURCE | |
PREFILTER_MAP | |
IRRADIANCE_CALC | |
COUNT |
Definition at line 59 of file SceneEnvironmentProbePool.h.
|
noexcept |
Definition at line 58 of file SceneEnvironmentProbePool.cpp.
Divide::SceneEnvironmentProbePool::~SceneEnvironmentProbePool | ( | ) |
Definition at line 64 of file SceneEnvironmentProbePool.cpp.
|
static |
Definition at line 68 of file SceneEnvironmentProbePool.cpp.
|
staticnoexcept |
Definition at line 282 of file SceneEnvironmentProbePool.cpp.
|
staticprivate |
Definition at line 574 of file SceneEnvironmentProbePool.cpp.
|
protected |
Definition at line 708 of file SceneEnvironmentProbePool.cpp.
|
staticnoexcept |
Definition at line 791 of file SceneEnvironmentProbePool.cpp.
|
staticnoexcept |
Definition at line 796 of file SceneEnvironmentProbePool.cpp.
|
noexcept |
Definition at line 639 of file SceneEnvironmentProbePool.cpp.
|
staticnoexcept |
Definition at line 278 of file SceneEnvironmentProbePool.cpp.
|
noexcept |
Definition at line 629 of file SceneEnvironmentProbePool.cpp.
|
noexcept |
Definition at line 753 of file SceneEnvironmentProbePool.cpp.
|
static |
Definition at line 240 of file SceneEnvironmentProbePool.cpp.
|
static |
Definition at line 94 of file SceneEnvironmentProbePool.cpp.
|
staticnoexcept |
Definition at line 774 of file SceneEnvironmentProbePool.cpp.
Divide::SceneEnvironmentProbePool::POINTER_RW | ( | EnvironmentProbeComponent | , |
debugProbe | , | ||
nullptr | |||
) |
|
staticnoexcept |
Definition at line 274 of file SceneEnvironmentProbePool.cpp.
|
staticprivate |
Definition at line 504 of file SceneEnvironmentProbePool.cpp.
|
static |
Definition at line 296 of file SceneEnvironmentProbePool.cpp.
void Divide::SceneEnvironmentProbePool::prepareDebugData | ( | ) |
Definition at line 679 of file SceneEnvironmentProbePool.cpp.
|
inlinestaticnoexcept |
Definition at line 95 of file SceneEnvironmentProbePool.h.
|
inlinestaticnoexcept |
Definition at line 96 of file SceneEnvironmentProbePool.h.
|
staticprotected |
Definition at line 452 of file SceneEnvironmentProbePool.cpp.
|
staticprivate |
Definition at line 461 of file SceneEnvironmentProbePool.cpp.
|
staticnoexcept |
Definition at line 270 of file SceneEnvironmentProbePool.cpp.
void Divide::SceneEnvironmentProbePool::registerProbe | ( | EnvironmentProbeComponent * | probe | ) |
Definition at line 644 of file SceneEnvironmentProbePool.cpp.
|
staticnoexcept |
Definition at line 801 of file SceneEnvironmentProbePool.cpp.
|
staticnoexcept |
Definition at line 806 of file SceneEnvironmentProbePool.cpp.
|
staticnoexcept |
Definition at line 811 of file SceneEnvironmentProbePool.cpp.
const EnvironmentProbeList & Divide::SceneEnvironmentProbePool::sortAndGetLocked | ( | const vec3< F32 > & | position | ) |
Definition at line 286 of file SceneEnvironmentProbePool.cpp.
|
noexcept |
Definition at line 634 of file SceneEnvironmentProbePool.cpp.
|
staticnoexcept |
Definition at line 89 of file SceneEnvironmentProbePool.cpp.
void Divide::SceneEnvironmentProbePool::unregisterProbe | ( | const EnvironmentProbeComponent * | probe | ) |
Definition at line 655 of file SceneEnvironmentProbePool.cpp.
|
static |
Definition at line 317 of file SceneEnvironmentProbePool.cpp.
|
friend |
Definition at line 109 of file SceneEnvironmentProbePool.h.
|
protected |
Definition at line 120 of file SceneEnvironmentProbePool.h.
|
mutableprotected |
Definition at line 119 of file SceneEnvironmentProbePool.h.
|
staticprivate |
Definition at line 133 of file SceneEnvironmentProbePool.h.
|
staticprivate |
Definition at line 137 of file SceneEnvironmentProbePool.h.
|
staticprotected |
Definition at line 124 of file SceneEnvironmentProbePool.h.
|
staticprotected |
Definition at line 122 of file SceneEnvironmentProbePool.h.
|
staticprivate |
Definition at line 136 of file SceneEnvironmentProbePool.h.
|
staticprivate |
Definition at line 139 of file SceneEnvironmentProbePool.h.
|
staticprivate |
Definition at line 141 of file SceneEnvironmentProbePool.h.
|
staticprivate |
Definition at line 144 of file SceneEnvironmentProbePool.h.
|
staticprivate |
Definition at line 143 of file SceneEnvironmentProbePool.h.
|
staticprivate |
Definition at line 142 of file SceneEnvironmentProbePool.h.
|
staticprivate |
Definition at line 140 of file SceneEnvironmentProbePool.h.
|
staticprivate |
Definition at line 135 of file SceneEnvironmentProbePool.h.
|
staticprivate |
Definition at line 138 of file SceneEnvironmentProbePool.h.
|
staticprotected |
Definition at line 123 of file SceneEnvironmentProbePool.h.
|
staticprivate |
Definition at line 134 of file SceneEnvironmentProbePool.h.
|
staticprotected |
Definition at line 125 of file SceneEnvironmentProbePool.h.