Added RenderBufferName.h,RenderWorkflow.h and few update.
This commit is contained in:
parent
5ba5a331a5
commit
3e88b0b77f
@ -20,7 +20,7 @@ enum class LightingCullingMode
|
||||
|
||||
/**
|
||||
* 基于Tile的剔除模式的改进型
|
||||
* 同Tile方法,得出Tile后,再通过Compute Shader遍历Tile内所有象素,得出当前Tile的最远z值和最近z值。
|
||||
* 同Tile方法,得出Tile后,再通过遍历Tile内所有象素,得出当前Tile的最远z值和最近z值。
|
||||
* 根据XY与zNear/zFar得出一个Volume,计算所有光源与Volume相交性。
|
||||
*/
|
||||
TileVolume, ///<瓦片体积剔除
|
||||
|
61
inc/hgl/graph/RenderBufferName.h
Normal file
61
inc/hgl/graph/RenderBufferName.h
Normal file
@ -0,0 +1,61 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/graph/VK.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
|
||||
const RENDER_BUFFER_NAME RenderBuffer_Swapchain ="Swapchain";
|
||||
|
||||
const RENDER_BUFFER_NAME RenderBuffer_Depth ="Depth";
|
||||
const RENDER_BUFFER_NAME RenderBuffer_Stencil ="Stencil";
|
||||
|
||||
const RENDER_BUFFER_NAME VBuffer_MeshID ="VB_MeshID"; ///< 所绘制的Mesh编号, R32UI格式
|
||||
const RENDER_BUFFER_NAME VBuffer_TriangleID ="VB_TriangleID"; ///< 三角形编号, R8UI格式
|
||||
const RENDER_BUFFER_NAME VBuffer_MaterialID ="VB_MaterialID"; ///< 材质ID与材质实例ID, RG8UI格式
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_BaseColor ="GB_BaseColor"; ///<基础颜色(RGB565/RGB5A1/RGBA8/RGB10A2/RG11B10,RGBA16F)
|
||||
const RENDER_BUFFER_NAME GBuffer_Luminance ="GB_Luminance"; ///<亮度(R8/R16F/R32F)
|
||||
const RENDER_BUFFER_NAME GBuffer_CbCr ="GB_CbCr"; ///<色度(RG8/RG16F)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_Normal ="GB_Normal"; ///<法线(RG8,RG16F)
|
||||
const RENDER_BUFFER_NAME GBuffer_BentNormal ="GB_BentNormal"; ///<弯曲法线(RG8,RG16F)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_Metallic ="GB_Metallic"; ///<金属度(R8/R16F/R32F)
|
||||
const RENDER_BUFFER_NAME GBuffer_Roughness ="GB_Roughness"; ///<粗糙度(R8/R16F/R32F)
|
||||
const RENDER_BUFFER_NAME GBuffer_Specular ="GB_Specular"; ///<高光(R8/R16F/R32F)
|
||||
const RENDER_BUFFER_NAME GBuffer_Glossiness ="GB_Glossiness"; ///<光泽度(R8/R16F/R32F)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_Reflection ="GB_Reflection"; ///<反射(R8)
|
||||
const RENDER_BUFFER_NAME GBuffer_Refraction ="GB_Refraction"; ///<折射(R8)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_ClearCoat ="GB_ClearCoat"; ///<透明涂层(R8/R16F/R32F)
|
||||
const RENDER_BUFFER_NAME GBuffer_ClearCoatRoughness ="GB_ClearCoatRoughness"; ///<透明涂层粗糙度(R8/R16F/R32F)
|
||||
const RENDER_BUFFER_NAME GBuffer_ClearCoatNormal ="GB_ClearCoatNormal"; ///<透明涂层法线(RG8/RG16F)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_IOR ="GB_IOR"; ///<折射率(R8/R16F/R32F)
|
||||
const RENDER_BUFFER_NAME GBuffer_Tranmission ="GB_Tranmission"; ///<透射率(R8/R16F/R32F)
|
||||
const RENDER_BUFFER_NAME GBuffer_Absorption ="GB_Absorption"; ///<吸收率(R8/R16F/R32F)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_MicroThickness ="GB_MicroThickness"; ///<微厚度(R8/R16F/R32F)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_AmbientOcclusion ="GB_AmbientOcclusion"; ///<环境光遮蔽(R8/R16F/R32F)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_Anisotropy ="GB_Anisotropy"; ///<各向异性(R8/R16F/R32F)
|
||||
const RENDER_BUFFER_NAME GBuffer_AnisotropyDirection="GB_AnisotropyDirection"; ///<各向异性方向(RG8/RG16F/RG32F)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_Emissive ="GB_Emissive"; ///<自发光(RGB565/RGB5A1/RGBA8/RGB10A2/RG11B10,RGBA16F)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_SheenColor ="GB_SheenColor"; ///<光泽颜色(RGB565/RGB5A1/RGBA8/RGB10A2/RG11B10,RGBA16F)
|
||||
const RENDER_BUFFER_NAME GBuffer_SheenRoughness ="GB_SheenRoughness"; ///<光泽粗糙度(R8/R16F/R32F)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_SubsurfaceColor ="GB_SubsurfaceColor"; ///<次表面颜色(RGB565/RGB5A1/RGBA8/RGB10A2/RG11B10,RGBA16F)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_ShadingModel ="GB_ShadingModel"; ///<着色模型(R4UI/R8UI)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_LightingChannels ="GB_LightingChannels"; ///<光照通道(R8UI)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_MotionVector ="GB_MotionVector"; ///<运动矢量(RG16F)
|
||||
|
||||
const RENDER_BUFFER_NAME GBuffer_LastScreenPosition ="GB_LastScreenPosition"; ///<上一帧屏幕位置(RG16I)
|
||||
|
||||
VK_NAMESPACE_END
|
@ -6,20 +6,6 @@
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
|
||||
|
||||
enum class RenderOrder
|
||||
{
|
||||
First, ///<最先渲染
|
||||
|
||||
NearToFar, ///<从近到远
|
||||
Irrorder, ///<无序渲染
|
||||
FarToNear, ///<从远到近
|
||||
|
||||
Last, ///<最后渲染
|
||||
|
||||
ENUM_CLASS_RANGE(First,Last)
|
||||
};//enum class RenderOrder
|
||||
|
||||
class GraphModule;
|
||||
|
||||
/**
|
||||
|
30
inc/hgl/graph/RenderWorkflow.h
Normal file
30
inc/hgl/graph/RenderWorkflow.h
Normal file
@ -0,0 +1,30 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/graph/BlendMode.h>
|
||||
#include<hgl/graph/RenderBufferName.h>
|
||||
#include<hgl/type/SortedSets.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
|
||||
enum class RenderOrder
|
||||
{
|
||||
First, ///<最先渲染
|
||||
|
||||
NearToFar, ///<从近到远
|
||||
Irrorder, ///<无序渲染
|
||||
FarToNear, ///<从远到近
|
||||
|
||||
Last, ///<最后渲染
|
||||
|
||||
ENUM_CLASS_RANGE(First,Last)
|
||||
};//enum class RenderOrder
|
||||
|
||||
struct RenderWorkConfig
|
||||
{
|
||||
BlendMode blend_mode;
|
||||
RenderOrder render_order;
|
||||
|
||||
SortedSets<RENDER_BUFFER_NAME> output_buffer;
|
||||
};//struct RenderWorkConfig;
|
||||
|
||||
VK_NAMESPACE_END
|
@ -4,6 +4,7 @@
|
||||
#include<hgl/math/Math.h>
|
||||
#include<hgl/type/String.h>
|
||||
#include<hgl/type/Map.h>
|
||||
#include<hgl/type/IDName.h>
|
||||
#include<hgl/graph/VKNamespace.h>
|
||||
#include<hgl/graph/VKFormat.h>
|
||||
#include<hgl/graph/VKPrimitiveType.h>
|
||||
@ -24,6 +25,10 @@ constexpr size_t VK_DESCRIPTOR_TYPE_END_RANGE=VK_DESCRIPTOR_TYPE_INPUT_ATTACHMEN
|
||||
constexpr size_t VK_DESCRIPTOR_TYPE_RANGE_SIZE=VK_DESCRIPTOR_TYPE_END_RANGE-VK_DESCRIPTOR_TYPE_BEGIN_RANGE+1;
|
||||
#endif//VK_DESCRIPTOR_TYPE_RANGE_SIZE
|
||||
|
||||
DefineIDName(TEXTURE_NAME,char)
|
||||
DefineIDName(SHADER_NAME,char)
|
||||
DefineIDName(RENDER_BUFFER_NAME,char)
|
||||
|
||||
class TextureManager;
|
||||
|
||||
class GraphModule;
|
||||
|
@ -304,6 +304,8 @@ SET(GRAPH_MANAGER_SOURCE manager/GraphManager.cpp
|
||||
SOURCE_GROUP("Render Framework\\Manager" FILES ${GRAPH_MANAGER_HEADER} ${GRAPH_MANAGER_SOURCE})
|
||||
|
||||
SET(RENDER_FRAMEWORK_FILES ${SG_INCLUDE_PATH}/RenderFramework.h
|
||||
${SG_INCLUDE_PATH}/RenderBufferName.h
|
||||
${SG_INCLUDE_PATH}/RenderWorkflow.h
|
||||
RenderFramework.cpp)
|
||||
|
||||
SOURCE_GROUP("Render Framework" FILES ${RENDER_FRAMEWORK_FILES})
|
||||
|
@ -327,8 +327,11 @@ GPUDevice *VulkanDeviceCreater::CreateRenderDevice()
|
||||
device_attr->uint32_index_type=true;
|
||||
}
|
||||
|
||||
if(require.blendOperationAdvanced>=VulkanHardwareRequirement::SupportLevel::Want)
|
||||
if(physical_device->SupportBlendOpAdvanced()
|
||||
&&require.blendOperationAdvanced>=VulkanHardwareRequirement::SupportLevel::Want)
|
||||
{
|
||||
device_attr->blendOpAdvance=true;
|
||||
}
|
||||
|
||||
device_attr->surface_format=surface_format;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user