载入中...
搜索中...
未找到
eve::graphics::raytracing::VulkanRayTracing类 参考final

Vulkan implementation of IRayTracing (KHR ray-tracing pipeline). 更多...

#include <VulkanRayTracing.h>

类 eve::graphics::raytracing::VulkanRayTracing 继承关系图:
eve::graphics::IRayTracing

Public 成员函数

 VulkanRayTracing ()=default
 Constructs a VulkanRayTracing.
 
 ~VulkanRayTracing () override
 Releases VulkanRayTracing resources.
 
 VulkanRayTracing (const VulkanRayTracing &)=delete
 
VulkanRayTracing & operator= (const VulkanRayTracing &)=delete
 
bool isAvailable () const override
 True when available.
 
RayTracingCaps caps () const override
 Caps.
 
Result< void > applyReflections (Graphics *gfx, Texture *sceneColor, Texture *hwDepth, Texture *worldNormal, Canvas *dest, const glm::mat4 &invViewProj, const glm::mat4 &viewProj, const glm::vec3 &eyeWorld) override
 Applies reflections.
 
Result< void > rebuildScene () override
 Rebuild scene.
 
Result< uint32_t > addTriangleMesh (const float *positionsXYZ, int vertexCount, const uint32_t *indices, int indexCount, const glm::mat4 &transform) override
 Adds triangle mesh.
 
Result< uint32_t > addMesh (Mesh *mesh, const glm::mat4 &transform) override
 Adds mesh.
 
void clearScene () override
 Clears scene.
 
void detachFromGraphics () override
 Detaches from graphics.
 
void attachDevice (vkb::Device *device, const RayTracingCaps &caps, vk::CommandPool uploadPool, vk::Queue graphicsQueue)
 Bind to the live Vulkan Graphics device (call after init). @ownership device is borrowed; Graphics remains the owner. @lifetime device, uploadPool, and graphicsQueue must outlive this backend until detachDevice(). @thread Render thread only.
 
void detachDevice ()
 Drop GPU resources when Graphics tears down.
 
Result< void > ensureAttached ()
 Lazily bind to the process Graphics singleton when RT is available.
 
- Public 成员函数 继承自 eve::graphics::IRayTracing
virtual ~IRayTracing ()=default
 I ray tracing.
 

额外继承的成员函数

- 静态 Public 属性 继承自 eve::graphics::IRayTracing
static constexpr const char * capabilityName = "IRayTracing"
 

详细描述

Vulkan implementation of IRayTracing (KHR ray-tracing pipeline).

在文件 VulkanRayTracing.h 第 113 行定义.

构造及析构函数说明

◆ VulkanRayTracing() [1/2]

eve::graphics::raytracing::VulkanRayTracing::VulkanRayTracing ( )
default

Constructs a VulkanRayTracing.

◆ ~VulkanRayTracing()

eve::graphics::raytracing::VulkanRayTracing::~VulkanRayTracing ( )
override

Releases VulkanRayTracing resources.

在文件 VulkanRayTracing.cpp 第 166 行定义.

引用了 detachDevice().

◆ VulkanRayTracing() [2/2]

eve::graphics::raytracing::VulkanRayTracing::VulkanRayTracing ( const VulkanRayTracing &  )
delete

成员函数说明

◆ addMesh()

Result< uint32_t > eve::graphics::raytracing::VulkanRayTracing::addMesh ( Mesh *  mesh,
const glm::mat4 &  transform 
)
overridevirtual

◆ addTriangleMesh()

Result< uint32_t > eve::graphics::raytracing::VulkanRayTracing::addTriangleMesh ( const float *  positionsXYZ,
int  vertexCount,
const uint32_t *  indices,
int  indexCount,
const glm::mat4 &  transform 
)
overridevirtual

◆ applyReflections()

Result< void > eve::graphics::raytracing::VulkanRayTracing::applyReflections ( Graphics *  gfx,
Texture *  sceneColor,
Texture *  hwDepth,
Texture *  worldNormal,
Canvas *  dest,
const glm::mat4 &  invViewProj,
const glm::mat4 &  viewProj,
const glm::vec3 &  eyeWorld 
)
overridevirtual

◆ attachDevice()

void eve::graphics::raytracing::VulkanRayTracing::attachDevice ( vkb::Device *  device,
const RayTracingCaps &  caps,
vk::CommandPool  uploadPool,
vk::Queue  graphicsQueue 
)

Bind to the live Vulkan Graphics device (call after init). @ownership device is borrowed; Graphics remains the owner. @lifetime device, uploadPool, and graphicsQueue must outlive this backend until detachDevice(). @thread Render thread only.

在文件 VulkanRayTracing.cpp 第 202 行定义.

引用了 caps(), detachDevice() , 以及 device.

被这些函数引用 ensureAttached().

◆ caps()

RayTracingCaps eve::graphics::raytracing::VulkanRayTracing::caps ( ) const
overridevirtual

◆ clearScene()

void eve::graphics::raytracing::VulkanRayTracing::clearScene ( )
overridevirtual

Clears scene.

实现了 eve::graphics::IRayTracing.

在文件 VulkanRayTracing.cpp 第 246 行定义.

引用了 eve::graphics::raytracing::AccelerationStructure::release().

被这些函数引用 detachDevice().

◆ detachDevice()

void eve::graphics::raytracing::VulkanRayTracing::detachDevice ( )

Drop GPU resources when Graphics tears down.

在文件 VulkanRayTracing.cpp 第 211 行定义.

引用了 clearScene() , 以及 eve::graphics::raytracing::DeviceAddressBuffer::release().

被这些函数引用 attachDevice(), detachFromGraphics() , 以及 ~VulkanRayTracing().

◆ detachFromGraphics()

void eve::graphics::raytracing::VulkanRayTracing::detachFromGraphics ( )
inlineoverridevirtual

Detaches from graphics.

重载 eve::graphics::IRayTracing .

在文件 VulkanRayTracing.h 第 147 行定义.

引用了 detachDevice().

◆ ensureAttached()

Result< void > eve::graphics::raytracing::VulkanRayTracing::ensureAttached ( )

Lazily bind to the process Graphics singleton when RT is available.

返回
Success when attached and RT is usable; Unsupported otherwise.

在文件 VulkanRayTracing.cpp 第 168 行定义.

引用了 attachDevice(), current, eve::Diagnostic::error(), eve::Result< T >::failure(), isAvailable(), eve::graphics::RayTracingCaps::rayTracingAvailable(), eve::Result< T >::success() , 以及 eve::Unsupported.

被这些函数引用 addMesh(), addTriangleMesh(), applyReflections() , 以及 rebuildScene().

◆ isAvailable()

bool eve::graphics::raytracing::VulkanRayTracing::isAvailable ( ) const
overridevirtual

◆ operator=()

VulkanRayTracing & eve::graphics::raytracing::VulkanRayTracing::operator= ( const VulkanRayTracing &  )
delete

◆ rebuildScene()

Result< void > eve::graphics::raytracing::VulkanRayTracing::rebuildScene ( )
overridevirtual

Rebuild scene.

实现了 eve::graphics::IRayTracing.

在文件 VulkanRayTracing.cpp 第 489 行定义.

引用了 ensureAttached() , 以及 eve::Result< void >::ok().


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