ULRE/inc/hgl/graph/LightCullMode.h
2025-01-27 00:26:39 +08:00

46 lines
1.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include<hgl/graph/VKNamespace.h>
#include<hgl/TypeFunc.h>
VK_NAMESPACE_BEGIN
/**
* 光照剔除模式
*/
enum class LightingCullingMode
{
None, ///<不剔除
/**
* 基于世界坐标的剔除模式
* 一般用于一些空间划分极为规则的场景。每个物件都可以得到较为明确的体积,并可通过世界坐标快速定位。
* 如即时战略游戏,普通的小爆炸,火光,影响的范围完全可以在世界坐标内圈定那些特件受影响,然后直接前向渲染即可。
*/
WorldCoord, ///<世界坐标剔除
/*
* 基于Tile的剔除模式
* 按屏幕XY坐标划分成多个Tile再配合znear/zfar形成一个Volume。所有光源和Volume计算相交性
*/
Tile, ///<瓦片剔除
/**
* 基于Tile的剔除模式的改进型
* 同Tile方法得出Tile后再通过遍历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