OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
SceneGlobals Class Referencefinal

#include <sceneglobals.h>

Classes

struct  UboGlobal
 

Public Types

enum  VisCamera : uint8_t {
  V_Shadow0 = 0 , V_Shadow1 = 1 , V_ShadowLast = 1 , V_Main = 2 ,
  V_HiZ = 3 , V_Vsm = 4 , V_Count
}
 

Public Member Functions

 SceneGlobals ()
 
 ~SceneGlobals ()
 
void setViewProject (const Tempest::Matrix4x4 &view, const Tempest::Matrix4x4 &proj, float zNear, float zFar, const Tempest::Matrix4x4 *sh)
 
void setViewLwc (const Tempest::Matrix4x4 &view, const Tempest::Matrix4x4 &proj, const Tempest::Matrix4x4 *sh)
 
void setViewVsm (const Tempest::Matrix4x4 &view, const Tempest::Matrix4x4 &viewLwc)
 
void setSky (const Sky &s)
 
void setWorld (const WorldView &wview)
 
void setUnderWater (bool w)
 
void setTime (uint64_t time)
 
void commitUbo (uint8_t fId)
 
void prepareGlobals (Tempest::Encoder< Tempest::CommandBuffer > &cmd, uint8_t frameId)
 
void setResolution (uint32_t w, uint32_t h)
 
void setHiZ (const Tempest::Texture2d &hiZ)
 
void setShadowMap (const Tempest::Texture2d *tex[])
 
void setVirtualShadowMap (bool enabled, const Tempest::ZBuffer &vsmPageData, const Tempest::StorageImage &pageTbl, const Tempest::StorageImage &pageHiZ, const Tempest::StorageBuffer &vsmPageList)
 
const Tempest::Matrix4x4 & viewProject () const
 
const Tempest::Matrix4x4 & viewProjectInv () const
 
const Tempest::Matrix4x4 & viewShadow (uint8_t view) const
 
const Tempest::Vec3 clipInfo () const
 
const Tempest::Matrix4x4 viewProjectLwc () const
 
const Tempest::Matrix4x4 viewProjectLwcInv () const
 

Static Public Member Functions

static bool isShadowView (VisCamera v)
 

Public Attributes

uint64_t tickCount = 0
 
const Tempest::Texture2d * shadowMap [2] = {}
 
Tempest::Matrix4x4 view
 
Tempest::Matrix4x4 proj
 
Tempest::Matrix4x4 viewLwc
 
Tempest::Vec3 originLwc
 
float znear = 0
 
const Tempest::Texture2d * sceneColor = &Resources::fallbackBlack()
 
const Tempest::Texture2d * sceneDepth = &Resources::fallbackBlack()
 
const Tempest::Texture2d * zbuffer = &Resources::fallbackBlack()
 
const Tempest::Texture2d * gbufDiffuse = &Resources::fallbackBlack()
 
const Tempest::Texture2d * gbufNormals = &Resources::fallbackBlack()
 
const Tempest::Texture2d * hiZ = &Resources::fallbackTexture()
 
const Tempest::StorageBuffer * lights = nullptr
 
const Tempest::Texture2d * vsmPageData = nullptr
 
const Tempest::StorageImage * vsmPageTbl = nullptr
 
const Tempest::StorageImage * vsmPageHiZ = nullptr
 
const Tempest::StorageBuffer * vsmPageList = nullptr
 
bool vsmEnabled = false
 
Tempest::StorageImage vsmDbg
 
Tempest::UniformBuffer< UboGlobaluboGlobalPf [Resources::MaxFramesInFlight][V_Count]
 
Tempest::StorageBuffer uboGlobal [V_Count]
 
Frustrum frustrum [V_Count]
 
bool zWindEnabled = false
 
Tempest::Vec2 windDir = {0,1}
 
uint64_t windPeriod = 6000
 
RtScene rtScene
 

Detailed Description

Definition at line 13 of file sceneglobals.h.

Member Enumeration Documentation

◆ VisCamera

enum SceneGlobals::VisCamera : uint8_t
Enumerator
V_Shadow0 
V_Shadow1 
V_ShadowLast 
V_Main 
V_HiZ 
V_Vsm 
V_Count 

Definition at line 18 of file sceneglobals.h.

Constructor & Destructor Documentation

◆ SceneGlobals()

SceneGlobals::SceneGlobals ( )

Definition at line 17 of file sceneglobals.cpp.

◆ ~SceneGlobals()

SceneGlobals::~SceneGlobals ( )

Definition at line 47 of file sceneglobals.cpp.

Member Function Documentation

◆ clipInfo()

const Tempest::Vec3 SceneGlobals::clipInfo ( ) const

Definition at line 272 of file sceneglobals.cpp.

◆ commitUbo()

void SceneGlobals::commitUbo ( uint8_t  fId)

Definition at line 183 of file sceneglobals.cpp.

◆ isShadowView()

bool SceneGlobals::isShadowView ( VisCamera  v)
static

Definition at line 51 of file sceneglobals.cpp.

◆ prepareGlobals()

void SceneGlobals::prepareGlobals ( Tempest::Encoder< Tempest::CommandBuffer > &  cmd,
uint8_t  frameId 
)

Definition at line 202 of file sceneglobals.cpp.

◆ setHiZ()

void SceneGlobals::setHiZ ( const Tempest::Texture2d &  hiZ)

Definition at line 232 of file sceneglobals.cpp.

◆ setResolution()

void SceneGlobals::setResolution ( uint32_t  w,
uint32_t  h 
)

Definition at line 215 of file sceneglobals.cpp.

◆ setShadowMap()

void SceneGlobals::setShadowMap ( const Tempest::Texture2d *  tex[])

Definition at line 236 of file sceneglobals.cpp.

◆ setSky()

void SceneGlobals::setSky ( const Sky s)

Definition at line 148 of file sceneglobals.cpp.

◆ setTime()

void SceneGlobals::setTime ( uint64_t  time)

Definition at line 173 of file sceneglobals.cpp.

◆ setUnderWater()

void SceneGlobals::setUnderWater ( bool  w)

Definition at line 169 of file sceneglobals.cpp.

◆ setViewLwc()

void SceneGlobals::setViewLwc ( const Tempest::Matrix4x4 &  view,
const Tempest::Matrix4x4 &  proj,
const Tempest::Matrix4x4 *  sh 
)

Definition at line 120 of file sceneglobals.cpp.

◆ setViewProject()

void SceneGlobals::setViewProject ( const Tempest::Matrix4x4 &  view,
const Tempest::Matrix4x4 &  proj,
float  zNear,
float  zFar,
const Tempest::Matrix4x4 *  sh 
)

Definition at line 77 of file sceneglobals.cpp.

◆ setViewVsm()

void SceneGlobals::setViewVsm ( const Tempest::Matrix4x4 &  view,
const Tempest::Matrix4x4 &  viewLwc 
)

Definition at line 131 of file sceneglobals.cpp.

◆ setVirtualShadowMap()

void SceneGlobals::setVirtualShadowMap ( bool  enabled,
const Tempest::ZBuffer &  vsmPageData,
const Tempest::StorageImage &  pageTbl,
const Tempest::StorageImage &  pageHiZ,
const Tempest::StorageBuffer &  vsmPageList 
)

Definition at line 241 of file sceneglobals.cpp.

◆ setWorld()

void SceneGlobals::setWorld ( const WorldView wview)

Definition at line 159 of file sceneglobals.cpp.

◆ viewProject()

const Tempest::Matrix4x4 & SceneGlobals::viewProject ( ) const

Definition at line 260 of file sceneglobals.cpp.

◆ viewProjectInv()

const Tempest::Matrix4x4 & SceneGlobals::viewProjectInv ( ) const

Definition at line 264 of file sceneglobals.cpp.

◆ viewProjectLwc()

const Tempest::Matrix4x4 SceneGlobals::viewProjectLwc ( ) const

Definition at line 276 of file sceneglobals.cpp.

◆ viewProjectLwcInv()

const Tempest::Matrix4x4 SceneGlobals::viewProjectLwcInv ( ) const

Definition at line 282 of file sceneglobals.cpp.

◆ viewShadow()

const Tempest::Matrix4x4 & SceneGlobals::viewShadow ( uint8_t  view) const

Definition at line 268 of file sceneglobals.cpp.

Member Data Documentation

◆ frustrum

Frustrum SceneGlobals::frustrum[V_Count]

Definition at line 128 of file sceneglobals.h.

◆ gbufDiffuse

const Tempest::Texture2d* SceneGlobals::gbufDiffuse = &Resources::fallbackBlack()

Definition at line 73 of file sceneglobals.h.

◆ gbufNormals

const Tempest::Texture2d* SceneGlobals::gbufNormals = &Resources::fallbackBlack()

Definition at line 74 of file sceneglobals.h.

◆ hiZ

const Tempest::Texture2d* SceneGlobals::hiZ = &Resources::fallbackTexture()

Definition at line 76 of file sceneglobals.h.

◆ lights

const Tempest::StorageBuffer* SceneGlobals::lights = nullptr

Definition at line 78 of file sceneglobals.h.

◆ originLwc

Tempest::Vec3 SceneGlobals::originLwc

Definition at line 66 of file sceneglobals.h.

◆ proj

Tempest::Matrix4x4 SceneGlobals::proj

Definition at line 64 of file sceneglobals.h.

◆ rtScene

RtScene SceneGlobals::rtScene

Definition at line 134 of file sceneglobals.h.

◆ sceneColor

const Tempest::Texture2d* SceneGlobals::sceneColor = &Resources::fallbackBlack()

Definition at line 69 of file sceneglobals.h.

◆ sceneDepth

const Tempest::Texture2d* SceneGlobals::sceneDepth = &Resources::fallbackBlack()

Definition at line 70 of file sceneglobals.h.

◆ shadowMap

const Tempest::Texture2d* SceneGlobals::shadowMap[2] = {}

Definition at line 62 of file sceneglobals.h.

◆ tickCount

uint64_t SceneGlobals::tickCount = 0

Definition at line 61 of file sceneglobals.h.

◆ uboGlobal

Tempest::StorageBuffer SceneGlobals::uboGlobal[V_Count]

Definition at line 126 of file sceneglobals.h.

◆ uboGlobalPf

Tempest::UniformBuffer<UboGlobal> SceneGlobals::uboGlobalPf[Resources::MaxFramesInFlight][V_Count]

Definition at line 125 of file sceneglobals.h.

◆ view

Tempest::Matrix4x4 SceneGlobals::view

Definition at line 64 of file sceneglobals.h.

◆ viewLwc

Tempest::Matrix4x4 SceneGlobals::viewLwc

Definition at line 65 of file sceneglobals.h.

◆ vsmDbg

Tempest::StorageImage SceneGlobals::vsmDbg

Definition at line 85 of file sceneglobals.h.

◆ vsmEnabled

bool SceneGlobals::vsmEnabled = false

Definition at line 84 of file sceneglobals.h.

◆ vsmPageData

const Tempest::Texture2d* SceneGlobals::vsmPageData = nullptr

Definition at line 80 of file sceneglobals.h.

◆ vsmPageHiZ

const Tempest::StorageImage* SceneGlobals::vsmPageHiZ = nullptr

Definition at line 82 of file sceneglobals.h.

◆ vsmPageList

const Tempest::StorageBuffer* SceneGlobals::vsmPageList = nullptr

Definition at line 83 of file sceneglobals.h.

◆ vsmPageTbl

const Tempest::StorageImage* SceneGlobals::vsmPageTbl = nullptr

Definition at line 81 of file sceneglobals.h.

◆ windDir

Tempest::Vec2 SceneGlobals::windDir = {0,1}

Definition at line 131 of file sceneglobals.h.

◆ windPeriod

uint64_t SceneGlobals::windPeriod = 6000

Definition at line 132 of file sceneglobals.h.

◆ zbuffer

const Tempest::Texture2d* SceneGlobals::zbuffer = &Resources::fallbackBlack()

Definition at line 71 of file sceneglobals.h.

◆ znear

float SceneGlobals::znear = 0

Definition at line 67 of file sceneglobals.h.

◆ zWindEnabled

bool SceneGlobals::zWindEnabled = false

Definition at line 130 of file sceneglobals.h.


The documentation for this class was generated from the following files: