载入中...
搜索中...
未找到
eve::graphics::GBuffer类 参考

Screen-space buffers for mid/post effects (AO, fog, stylize outline, …). 更多...

#include <GBuffer.h>

Public 成员函数

 GBuffer ()=default
 
 ~GBuffer ()=default
 
 GBuffer (const GBuffer &)=delete
 
GBufferoperator= (const GBuffer &)=delete
 
void attach (Graphics *gfx)
 
GraphicsgetGraphics () const
 
bool isValid () const
 
int getWidth () const
 
int getHeight () const
 
TexturegetDepthTexture () const
 
TexturegetHwDepthTexture () const
 
TexturegetNormalTexture () const
 
TexturegetAlbedoTexture () const
 
bool hasBuffer (const std::string &name) const
 "depth" | "hwDepth" | "normal" | "albedo"
 
TexturegetBuffer (const std::string &name) const
 
void setTargets (int width, int height, Texture *depth, Texture *normal, Texture *albedo, Texture *hwDepth=nullptr)
 Called by Graphics after a G-buffer pass (or clear).
 
void clear ()
 

详细描述

Screen-space buffers for mid/post effects (AO, fog, stylize outline, …).

Layout after a successful G-buffer pass: depth — RGBA8 linear copy (R = linear 0..1) for Canvas / volumetric hwDepth — D32 hardware depth (sample .r = Vulkan NDC z); 3D AO/GI use this normal — RGBA8, RGB = world normal * 0.5 + 0.5 albedo — optional RGBA8 (feature "gbufferAlbedo"); may be null

Shadow maps stay on the CSM path (Graphics shadow pass); query via hasBuffer("shadow") on RenderControl rather than a Texture* here.

Textures are owned by the Graphics backend for the active frame size.

在文件 GBuffer.h24 行定义.

构造及析构函数说明

◆ GBuffer() [1/2]

eve::graphics::GBuffer::GBuffer ( )
default

◆ ~GBuffer()

eve::graphics::GBuffer::~GBuffer ( )
default

◆ GBuffer() [2/2]

eve::graphics::GBuffer::GBuffer ( const GBuffer )
delete

成员函数说明

◆ attach()

void eve::graphics::GBuffer::attach ( Graphics gfx)
inline

在文件 GBuffer.h32 行定义.

被这些函数引用 eve::graphics::RenderControl::attach().

◆ clear()

void eve::graphics::GBuffer::clear ( )

在文件 GBuffer.cpp35 行定义.

被这些函数引用 eve::graphics::RenderSystem3D::render().

◆ getAlbedoTexture()

Texture * eve::graphics::GBuffer::getAlbedoTexture ( ) const
inline

在文件 GBuffer.h42 行定义.

◆ getBuffer()

Texture * eve::graphics::GBuffer::getBuffer ( const std::string &  name) const

在文件 GBuffer.cpp17 行定义.

引用了 name.

◆ getDepthTexture()

Texture * eve::graphics::GBuffer::getDepthTexture ( ) const
inline

在文件 GBuffer.h39 行定义.

◆ getGraphics()

Graphics * eve::graphics::GBuffer::getGraphics ( ) const
inline

在文件 GBuffer.h33 行定义.

◆ getHeight()

int eve::graphics::GBuffer::getHeight ( ) const
inline

在文件 GBuffer.h37 行定义.

◆ getHwDepthTexture()

Texture * eve::graphics::GBuffer::getHwDepthTexture ( ) const
inline

在文件 GBuffer.h40 行定义.

被这些函数引用 eve::graphics::RenderSystem3D::render().

◆ getNormalTexture()

Texture * eve::graphics::GBuffer::getNormalTexture ( ) const
inline

在文件 GBuffer.h41 行定义.

被这些函数引用 eve::graphics::RenderSystem3D::render().

◆ getWidth()

int eve::graphics::GBuffer::getWidth ( ) const
inline

在文件 GBuffer.h36 行定义.

◆ hasBuffer()

bool eve::graphics::GBuffer::hasBuffer ( const std::string &  name) const

"depth" | "hwDepth" | "normal" | "albedo"

在文件 GBuffer.cpp9 行定义.

引用了 name.

◆ isValid()

bool eve::graphics::GBuffer::isValid ( ) const

在文件 GBuffer.cpp5 行定义.

被这些函数引用 eve::graphics::RenderSystem3D::render().

◆ operator=()

GBuffer & eve::graphics::GBuffer::operator= ( const GBuffer )
delete

◆ setTargets()

void eve::graphics::GBuffer::setTargets ( int  width,
int  height,
Texture depth,
Texture normal,
Texture albedo,
Texture hwDepth = nullptr 
)

Called by Graphics after a G-buffer pass (or clear).

在文件 GBuffer.cpp25 行定义.

引用了 albedo, depth, height, normal , 以及 width.


该类的文档由以下文件生成: