split to BlendMode.h/LightCullMode.h from RenderFramework.h

This commit is contained in:
hyzboy 2024-10-29 01:47:24 +08:00
parent d1ad3f35ac
commit ffc6f0a074
4 changed files with 73 additions and 47 deletions

23
inc/hgl/graph/BlendMode.h Normal file
View File

@ -0,0 +1,23 @@
#pragma once
#include<hgl/graph/VKNamespace.h>
#include<hgl/TypeFunc.h>
VK_NAMESPACE_BEGIN
enum class BlendMode
{
Opaque,
Mask,
Transparent, ///<普通的Alpha混合透明
PreMulti, ///<预乘的Alpha混合透明
Add, ///<加法混合
Subtract, ///<减法混合
ReverseSubtract, ///<反减混合
Min, ///<最小混合
Max, ///<最大混合
ENUM_CLASS_RANGE(Opaque,Max)
};
VK_NAMESPACE_END

View File

@ -0,0 +1,38 @@
#pragma once
#include<hgl/graph/VKNamespace.h>
#include<hgl/TypeFunc.h>
VK_NAMESPACE_BEGIN
/**
*
*/
enum class LightingCullingMode
{
None, ///<不剔除
/*
* Tile的剔除模式
* XY坐标划分成多个Tileznear/zfar形成一个VolumeVolume计算相交性
*/
Tile, ///<瓦片剔除
/**
* Tile的剔除模式的改进型
* Tile方法Tile后Compute Shader遍历Tile内所有象素Tile的最远z值和最近z值
* XY与zNear/zFar得出一个VolumeVolume相交性
*/
TileVolume, ///<瓦片体积剔除
/**
* Tile的剔除模式的改进型
* TileVolume方法得出Volume后Volume按深度划分成多个Volume
* VolumeVolume与光源计算相交性
*/
Cluster, ///<集簇剔除
ENUM_CLASS_RANGE(None,Cluster)
};//enum class LightingCullingMode
VK_NAMESPACE_END

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#include<hgl/graph/VK.h> #include<hgl/graph/VK.h>

View File

@ -1,51 +1,11 @@
#pragma once #pragma once
#include<hgl/graph/VK.h> #include<hgl/graph/BlendMode.h>
#include<hgl/type/List.h> #include<hgl/type/List.h>
#include<hgl/graph/ViewportInfo.h> #include<hgl/graph/ViewportInfo.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
class RenderModule;
/**
*
*/
enum class LightingCullingMode
{
None, ///<不剔除
/*
* Tile的剔除模式
* XY坐标划分成多个Tileznear/zfar形成一个VolumeVolume计算相交性
*/
Tile, ///<瓦片剔除
/**
* Tile的剔除模式的改进型
* Tile方法Tile后Compute Shader遍历Tile内所有象素Tile的最远z值和最近z值
* XY与zNear/zFar得出一个VolumeVolume相交性
*/
TileVolume, ///<瓦片体积剔除
/**
* Tile的剔除模式的改进型
* TileVolume方法得出Volume后Volume按深度划分成多个Volume
* VolumeVolume与光源计算相交性
*/
Cluster, ///<集簇剔除
ENUM_CLASS_RANGE(None,Cluster)
};//enum class LightingCullingMode
enum class BlendMode
{
Opaque,
Mask,
Transparent,
Additive,
Subtractive
};
enum class RenderOrder enum class RenderOrder
{ {
@ -91,16 +51,16 @@ public:
};//class GraphModuleWorkConfig };//class GraphModuleWorkConfig
class Window; class Window;
class TextureManager;
class SwapchainModule; class SwapchainModule;
class TextureModule;
/** /**
* *
*/ */
class RenderFramework class RenderFramework
{ {
ObjectList<GraphModule> module_list;
protected: protected:
Window * win =nullptr; Window * win =nullptr;
@ -109,8 +69,13 @@ protected:
GPUDevice * device =nullptr; GPUDevice * device =nullptr;
protected: protected:
TextureModule * texture_module =nullptr; GraphModuleManager *graph_module_manager=nullptr;
ObjectList<GraphModule> module_list;
TextureManager * texture_manager =nullptr;
SwapchainModule * swapchain_module =nullptr; SwapchainModule * swapchain_module =nullptr;
protected: protected: