split to BlendMode.h/LightCullMode.h from RenderFramework.h
This commit is contained in:
parent
d1ad3f35ac
commit
ffc6f0a074
23
inc/hgl/graph/BlendMode.h
Normal file
23
inc/hgl/graph/BlendMode.h
Normal 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
|
38
inc/hgl/graph/LightCullMode.h
Normal file
38
inc/hgl/graph/LightCullMode.h
Normal 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坐标划分成多个Tile,再配合znear/zfar形成一个Volume。所有光源和Volume计算相交性
|
||||
*/
|
||||
Tile, ///<瓦片剔除
|
||||
|
||||
/**
|
||||
* 基于Tile的剔除模式的改进型
|
||||
* 同Tile方法,得出Tile后,再通过Compute Shader遍历Tile内所有象素,得出当前Tile的最远z值和最近z值。
|
||||
* 根据XY与zNear/zFar得出一个Volume,计算所有光源与Volume相交性。
|
||||
*/
|
||||
TileVolume, ///<瓦片体积剔除
|
||||
|
||||
/**
|
||||
* 基于Tile的剔除模式的改进型
|
||||
* 同TileVolume方法得出Volume后,再将Volume按深度划分成多个Volume。
|
||||
* 剔除掉没有象素的Volume,再将剩下的Volume与光源计算相交性。
|
||||
*/
|
||||
Cluster, ///<集簇剔除
|
||||
|
||||
ENUM_CLASS_RANGE(None,Cluster)
|
||||
};//enum class LightingCullingMode
|
||||
|
||||
VK_NAMESPACE_END
|
@ -1,4 +1,4 @@
|
||||
#pragma once
|
||||
#pragma once
|
||||
|
||||
#include<hgl/graph/VK.h>
|
||||
|
||||
|
@ -1,51 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/graph/VK.h>
|
||||
#include<hgl/graph/BlendMode.h>
|
||||
#include<hgl/type/List.h>
|
||||
#include<hgl/graph/ViewportInfo.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
|
||||
class RenderModule;
|
||||
|
||||
/**
|
||||
* 光照剔除模式
|
||||
*/
|
||||
enum class LightingCullingMode
|
||||
{
|
||||
None, ///<不剔除
|
||||
|
||||
/*
|
||||
* 基于Tile的剔除模式
|
||||
* 按屏幕XY坐标划分成多个Tile,再配合znear/zfar形成一个Volume。所有光源和Volume计算相交性
|
||||
*/
|
||||
Tile, ///<瓦片剔除
|
||||
|
||||
/**
|
||||
* 基于Tile的剔除模式的改进型
|
||||
* 同Tile方法,得出Tile后,再通过Compute Shader遍历Tile内所有象素,得出当前Tile的最远z值和最近z值。
|
||||
* 根据XY与zNear/zFar得出一个Volume,计算所有光源与Volume相交性。
|
||||
*/
|
||||
TileVolume, ///<瓦片体积剔除
|
||||
|
||||
/**
|
||||
* 基于Tile的剔除模式的改进型
|
||||
* 同TileVolume方法得出Volume后,再将Volume按深度划分成多个Volume。
|
||||
* 剔除掉没有象素的Volume,再将剩下的Volume与光源计算相交性。
|
||||
*/
|
||||
Cluster, ///<集簇剔除
|
||||
|
||||
ENUM_CLASS_RANGE(None,Cluster)
|
||||
};//enum class LightingCullingMode
|
||||
|
||||
enum class BlendMode
|
||||
{
|
||||
Opaque,
|
||||
Mask,
|
||||
Transparent,
|
||||
Additive,
|
||||
Subtractive
|
||||
};
|
||||
|
||||
enum class RenderOrder
|
||||
{
|
||||
@ -91,16 +51,16 @@ public:
|
||||
};//class GraphModuleWorkConfig
|
||||
|
||||
class Window;
|
||||
|
||||
class TextureManager;
|
||||
|
||||
class SwapchainModule;
|
||||
class TextureModule;
|
||||
|
||||
/**
|
||||
* 渲染框架
|
||||
*/
|
||||
class RenderFramework
|
||||
{
|
||||
ObjectList<GraphModule> module_list;
|
||||
|
||||
protected:
|
||||
|
||||
Window * win =nullptr;
|
||||
@ -110,7 +70,12 @@ protected:
|
||||
|
||||
protected:
|
||||
|
||||
TextureModule * texture_module =nullptr;
|
||||
GraphModuleManager *graph_module_manager=nullptr;
|
||||
|
||||
ObjectList<GraphModule> module_list;
|
||||
|
||||
TextureManager * texture_manager =nullptr;
|
||||
|
||||
SwapchainModule * swapchain_module =nullptr;
|
||||
|
||||
protected:
|
||||
|
Loading…
x
Reference in New Issue
Block a user