3#include <Tempest/Matrix4x4>
31 float zNear,
float zFar,
32 const Tempest::Matrix4x4 *sh);
33 void setViewLwc(
const Tempest::Matrix4x4&
view,
const Tempest::Matrix4x4&
proj,
const Tempest::Matrix4x4 *sh);
41 void prepareGlobals(Tempest::Encoder<Tempest::CommandBuffer> &cmd, uint8_t frameId);
44 void setHiZ(
const Tempest::Texture2d&
hiZ);
49 const Tempest::StorageImage& pageTbl,
50 const Tempest::StorageImage& pageHiZ,
56 const Tempest::Vec3
clipInfo()
const;
78 const Tempest::StorageBuffer*
lights =
nullptr;
static const Tempest::Texture2d & fallbackTexture()
static const Tempest::Texture2d & fallbackBlack()
const Tempest::Texture2d * zbuffer
const Tempest::Matrix4x4 viewProjectLwcInv() const
const Tempest::Matrix4x4 & viewShadow(uint8_t view) const
const Tempest::StorageBuffer * vsmPageList
const Tempest::Texture2d * shadowMap[2]
const Tempest::Texture2d * gbufDiffuse
void setUnderWater(bool w)
Tempest::StorageImage vsmDbg
const Tempest::Matrix4x4 & viewProject() const
Tempest::UniformBuffer< UboGlobal > uboGlobalPf[Resources::MaxFramesInFlight][V_Count]
void setVirtualShadowMap(bool enabled, const Tempest::ZBuffer &vsmPageData, const Tempest::StorageImage &pageTbl, const Tempest::StorageImage &pageHiZ, const Tempest::StorageBuffer &vsmPageList)
const Tempest::Texture2d * gbufNormals
void setViewProject(const Tempest::Matrix4x4 &view, const Tempest::Matrix4x4 &proj, float zNear, float zFar, const Tempest::Matrix4x4 *sh)
void setResolution(uint32_t w, uint32_t h)
Tempest::StorageBuffer uboGlobal[V_Count]
Frustrum frustrum[V_Count]
const Tempest::Texture2d * sceneColor
void setHiZ(const Tempest::Texture2d &hiZ)
const Tempest::Texture2d * hiZ
void commitUbo(uint8_t fId)
const Tempest::StorageImage * vsmPageTbl
void setShadowMap(const Tempest::Texture2d *tex[])
void setViewLwc(const Tempest::Matrix4x4 &view, const Tempest::Matrix4x4 &proj, const Tempest::Matrix4x4 *sh)
const Tempest::Texture2d * vsmPageData
Tempest::Matrix4x4 viewLwc
static bool isShadowView(VisCamera v)
const Tempest::Matrix4x4 & viewProjectInv() const
const Tempest::StorageBuffer * lights
void setSky(const Sky &s)
void prepareGlobals(Tempest::Encoder< Tempest::CommandBuffer > &cmd, uint8_t frameId)
void setWorld(const WorldView &wview)
void setViewVsm(const Tempest::Matrix4x4 &view, const Tempest::Matrix4x4 &viewLwc)
const Tempest::StorageImage * vsmPageHiZ
const Tempest::Matrix4x4 viewProjectLwc() const
const Tempest::Vec3 clipInfo() const
void setTime(uint64_t time)
const Tempest::Texture2d * sceneDepth
Tempest::Matrix4x4 viewVirtualShadow
Tempest::Matrix4x4 viewShadowLwc[Resources::ShadowLayers]
Tempest::Matrix4x4 viewProjectInv
Tempest::Vec2 closeupShadowSlice
Tempest::Matrix4x4 viewShadow[Resources::ShadowLayers]
Tempest::Matrix4x4 viewProject2VirtualShadow
Tempest::Matrix4x4 projectInv
Tempest::Matrix4x4 viewVirtualShadowLwc
Tempest::Vec2 screenResInv
Tempest::Vec2 cloudsDir[2]
Tempest::Matrix4x4 project
Tempest::Matrix4x4 viewProject
Tempest::Vec4 frustrum[6]
Tempest::Matrix4x4 viewProjectLwcInv
Tempest::Point hiZTileSize