1.splited CoordinateSystem.h, MaterialConfig.h,RenderTargetOutputConfig.h,Material2DConfig.h,StdMaterial.h/.cpp,UBOCommon.h,MFCommon.h
2.adjust namespace.
This commit is contained in:
parent
9316135942
commit
c5699fd1af
17
inc/hgl/graph/CoordinateSystem.h
Normal file
17
inc/hgl/graph/CoordinateSystem.h
Normal file
@ -0,0 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/TypeFunc.h>
|
||||
namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
enum class CoordinateSystem2D
|
||||
{
|
||||
NDC,
|
||||
ZeroToOne, //左上角为0,0;右下角为1,1
|
||||
Ortho, //左上角为0,0;右下角为(width-1),(height-1)
|
||||
|
||||
ENUM_CLASS_RANGE(NDC,Ortho)
|
||||
};
|
||||
}//namespace graph
|
||||
}//namespace hgl
|
18
inc/hgl/graph/RenderTargetOutputConfig.h
Normal file
18
inc/hgl/graph/RenderTargetOutputConfig.h
Normal file
@ -0,0 +1,18 @@
|
||||
#ifndef HGL_GRAPH_RT_OUTPUT_CONFIG_INCLUDE
|
||||
#define HGL_GRAPH_RT_OUTPUT_CONFIG_INCLUDE
|
||||
|
||||
#include<hgl/type/DataType.h>
|
||||
|
||||
namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
struct RenderTargetOutputConfig
|
||||
{
|
||||
uint color; ///<要输出几个颜色缓冲区
|
||||
bool depth; ///<是否输出到深度缓冲区
|
||||
bool stencil; ///<是否输出到模板缓冲区
|
||||
};
|
||||
}//namespace graph
|
||||
}//namespace hgl
|
||||
#endif//HGL_GRAPH_RT_OUTPUT_CONFIG_INCLUDE
|
27
inc/hgl/graph/mtl/2d/Material2DConfig.h
Normal file
27
inc/hgl/graph/mtl/2d/Material2DConfig.h
Normal file
@ -0,0 +1,27 @@
|
||||
#ifndef HGL_GRAPH_MTL_2D_CONFIG_INCLUDE
|
||||
#define HGL_GRAPH_MTL_2D_CONFIG_INCLUDE
|
||||
|
||||
#include<hgl/graph/mtl/MaterialConfig.h>
|
||||
#include<hgl/graph/CoordinateSystem.h>
|
||||
|
||||
STD_MTL_NAMESPACE_BEGIN
|
||||
struct Material2DConfig:public MaterialConfig
|
||||
{
|
||||
CoordinateSystem2D coordinate_system; ///<使用的坐标系
|
||||
|
||||
bool local_to_world; ///<包含LocalToWorld矩阵
|
||||
|
||||
public:
|
||||
|
||||
Material2DConfig(const AnsiString &name):MaterialConfig(name)
|
||||
{
|
||||
rt_output.color=1;
|
||||
rt_output.depth=false;
|
||||
rt_output.stencil=false;
|
||||
|
||||
coordinate_system=CoordinateSystem2D::NDC;
|
||||
local_to_world=false;
|
||||
}
|
||||
};//struct Material2DConfig:public MaterialConfig
|
||||
STD_MTL_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_MTL_2D_CONFIG_INCLUDE
|
@ -1,26 +1,10 @@
|
||||
#ifndef HGL_GRAPH_MTL_2D_VERTEX2D_INCLUDE
|
||||
#define HGL_GRAPH_MTL_2D_VERTEX2D_INCLUDE
|
||||
|
||||
#include<hgl/graph/mtl/StdMaterial.h>
|
||||
|
||||
namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
class MaterialCreateInfo;
|
||||
|
||||
namespace mtl
|
||||
{
|
||||
struct Material2DConfig
|
||||
{
|
||||
CoordinateSystem2D coordinate_system; ///<使用的坐标系
|
||||
|
||||
bool local_to_world=false; ///<包含LocalToWorld矩阵
|
||||
};
|
||||
|
||||
MaterialCreateInfo *CreateVertexColor2D(const Material2DConfig *);
|
||||
}//namespace mtl
|
||||
}//namespace graph
|
||||
}//namespace hgl
|
||||
#include"Std2DMaterial.h"
|
||||
#include<hgl/graph/CoordinateSystem.h>
|
||||
|
||||
STD_MTL_NAMESPACE_BEGIN
|
||||
MaterialCreateInfo *CreateVertexColor2D(const Material2DConfig *);
|
||||
STD_MTL_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_MTL_2D_VERTEX2D_INCLUDE
|
||||
|
31
inc/hgl/graph/mtl/MaterialConfig.h
Normal file
31
inc/hgl/graph/mtl/MaterialConfig.h
Normal file
@ -0,0 +1,31 @@
|
||||
#ifndef HGL_GRAPH_MTL_CONFIG_INCLUDE
|
||||
#define HGL_GRAPH_MTL_CONFIG_INCLUDE
|
||||
|
||||
#include<hgl/graph/mtl/StdMaterial.h>
|
||||
#include<hgl/type/String.h>
|
||||
#include<hgl/graph/RenderTargetOutputConfig.h>
|
||||
#include<hgl/graph/VK.h>
|
||||
|
||||
STD_MTL_NAMESPACE_BEGIN
|
||||
/**
|
||||
* 材质配置结构
|
||||
*/
|
||||
struct MaterialConfig
|
||||
{
|
||||
AnsiString mtl_name; ///<材质名称
|
||||
|
||||
RenderTargetOutputConfig rt_output; ///<渲染目标输出配置
|
||||
|
||||
uint32 shader_stage; ///<需要的shader
|
||||
|
||||
public:
|
||||
|
||||
MaterialConfig(const AnsiString &name)
|
||||
{
|
||||
mtl_name=name;
|
||||
|
||||
shader_stage=VK_SHADER_STAGE_VERTEX_BIT|VK_SHADER_STAGE_FRAGMENT_BIT;
|
||||
}
|
||||
};//struct MaterialConfig
|
||||
STD_MTL_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_MTL_CONFIG_INCLUDE
|
@ -4,104 +4,3 @@
|
||||
#define STD_MTL_NAMESPACE_END }}}
|
||||
|
||||
#define STD_MTL_NAMESPACE_USING using namespace hgl::graph::mtl;
|
||||
|
||||
#include<hgl/TypeFunc.h>
|
||||
#include<hgl/graph/mtl/ShaderBuffer.h>
|
||||
|
||||
STD_MTL_NAMESPACE_BEGIN
|
||||
|
||||
enum class CoordinateSystem2D
|
||||
{
|
||||
NDC,
|
||||
ZeroToOne, //左上角为0,0;右下角为1,1
|
||||
Ortho, //左上角为0,0;右下角为(width-1),(height-1)
|
||||
|
||||
ENUM_CLASS_RANGE(NDC,Ortho)
|
||||
};
|
||||
|
||||
constexpr const ShaderBufferSource SBS_ViewportInfo=
|
||||
{
|
||||
"ViewportInfo",
|
||||
"viewport",
|
||||
|
||||
R"(
|
||||
mat4 ortho_matrix;
|
||||
|
||||
vec2 canvas_resolution;
|
||||
vec2 viewport_resolution;
|
||||
vec2 inv_viewport_resolution;
|
||||
)"
|
||||
};
|
||||
|
||||
constexpr const ShaderBufferSource SBS_CameraInfo=
|
||||
{
|
||||
"CameraInfo",
|
||||
"camera",
|
||||
|
||||
R"(
|
||||
mat4 projection;
|
||||
mat4 inverse_projection;
|
||||
|
||||
mat4 view;
|
||||
mat4 inverse_view;
|
||||
|
||||
mat4 vp;
|
||||
mat4 inverse_vp;
|
||||
|
||||
mat4 sky;
|
||||
|
||||
vec3 pos; //eye
|
||||
vec3 view_line; //pos-target
|
||||
vec3 world_up;
|
||||
|
||||
float znear,zfar;)"
|
||||
};
|
||||
|
||||
constexpr const ShaderBufferSource SBS_MaterialInstance=
|
||||
{
|
||||
"MaterialInstanceData",
|
||||
"mtl",
|
||||
|
||||
"MaterialInstance mi[256];"
|
||||
};
|
||||
|
||||
constexpr const ShaderBufferSource SBS_JointInfo=
|
||||
{
|
||||
"JointInfo",
|
||||
"joint",
|
||||
|
||||
R"(
|
||||
mat4 mats[];
|
||||
)"
|
||||
};
|
||||
|
||||
namespace func
|
||||
{
|
||||
constexpr const char GetLocalToWorld[]=R"(
|
||||
mat4 GetLocalToWorld()
|
||||
{
|
||||
return mat4(LocalToWorld_0,
|
||||
LocalToWorld_1,
|
||||
LocalToWorld_2,
|
||||
LocalToWorld_3);
|
||||
}
|
||||
)";
|
||||
|
||||
constexpr const char GetJointMatrix[]=R"(
|
||||
mat4 GetJointMatrix()
|
||||
{
|
||||
return joint.mats[JointID.x]*JointWeight.x+
|
||||
joint.mats[JointID.y]*JointWeight.y+
|
||||
joint.mats[JointID.z]*JointWeight.z+
|
||||
joint.mats[JointID.w]*JointWeight.w;
|
||||
}
|
||||
)";
|
||||
|
||||
constexpr const char GetMI[]=R"(
|
||||
MaterialInstance GetMI()
|
||||
{
|
||||
return mtl.mi[MaterialInstanceID];
|
||||
}
|
||||
)";
|
||||
}//namespace func
|
||||
STD_MTL_NAMESPACE_END
|
||||
|
@ -5,27 +5,17 @@
|
||||
#include<hgl/shadergen/ShaderCreateInfoGeometry.h>
|
||||
#include<hgl/shadergen/ShaderCreateInfoFragment.h>
|
||||
#include<hgl/shadergen/ShaderCreateInfoMap.h>
|
||||
#include<hgl/graph/mtl/StdMaterial.h>
|
||||
#include<hgl/graph/RenderTargetOutputConfig.h>
|
||||
#include<hgl/graph/mtl/MaterialConfig.h>
|
||||
#include<hgl/graph/mtl/ShaderBuffer.h>
|
||||
#include<hgl/graph/VKSamplerType.h>
|
||||
|
||||
namespace hgl{namespace graph{
|
||||
|
||||
struct RenderTargetOutputConfig
|
||||
{
|
||||
uint color;
|
||||
bool depth;
|
||||
bool stencil;
|
||||
};
|
||||
|
||||
STD_MTL_NAMESPACE_BEGIN
|
||||
class MaterialCreateInfo
|
||||
{
|
||||
AnsiString shader_name;
|
||||
|
||||
protected:
|
||||
|
||||
RenderTargetOutputConfig rto_cfg; ///<输出配置
|
||||
|
||||
uint32_t shader_stage; ///<着色器阶段
|
||||
const MaterialConfig *config;
|
||||
|
||||
MaterialDescriptorInfo mdi; ///<材质描述符管理器
|
||||
|
||||
@ -40,11 +30,11 @@ protected:
|
||||
|
||||
public:
|
||||
|
||||
const AnsiString &GetName()const{return shader_name;}
|
||||
const AnsiString &GetName()const{return config->mtl_name;}
|
||||
|
||||
const uint32 GetShaderStage()const{return shader_stage;}
|
||||
const uint32 GetShaderStage()const{return config->shader_stage;}
|
||||
|
||||
bool hasShader(const VkShaderStageFlagBits ss)const{return shader_stage&ss;}
|
||||
bool hasShader(const VkShaderStageFlagBits ss)const{return config->shader_stage&ss;}
|
||||
|
||||
bool hasVertex ()const{return hasShader(VK_SHADER_STAGE_VERTEX_BIT);}
|
||||
// bool hasTessCtrl()const{return hasShader(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);}
|
||||
@ -59,7 +49,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
MaterialCreateInfo(const AnsiString &,const RenderTargetOutputConfig &,const uint32 ss=VK_SHADER_STAGE_VERTEX_BIT|VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
MaterialCreateInfo(const MaterialConfig *);
|
||||
~MaterialCreateInfo()=default;
|
||||
|
||||
bool SetMaterialInstance(const AnsiString &codes,const uint32_t length)
|
||||
@ -89,4 +79,4 @@ public:
|
||||
|
||||
const MaterialDescriptorInfo &GetMDI()const{return mdi;}
|
||||
};//class MaterialCreateInfo
|
||||
}}//namespace hgl::graph
|
||||
STD_MTL_NAMESPACE_END
|
||||
|
27
src/ShaderGen/2d/Std2DMaterial.cpp
Normal file
27
src/ShaderGen/2d/Std2DMaterial.cpp
Normal file
@ -0,0 +1,27 @@
|
||||
#include"Std2DMaterial.h"
|
||||
#include<hgl/shadergen/MaterialCreateInfo.h>
|
||||
#include<hgl/graph/mtl/2d/Material2DConfig.h>
|
||||
|
||||
STD_MTL_NAMESPACE_BEGIN
|
||||
Std2DMaterial::Std2DMaterial(const Material2DConfig *c)
|
||||
{
|
||||
MaterialCreateInfo *mci=new MaterialCreateInfo(c);
|
||||
}
|
||||
|
||||
Std2DMaterial::~Std2DMaterial()
|
||||
{
|
||||
delete mci;
|
||||
}
|
||||
|
||||
bool Std2DMaterial::CreateVertexShader(ShaderCreateInfoVertex *vs)
|
||||
{
|
||||
}
|
||||
|
||||
bool Std2DMaterial::CreateFragmentShader(ShaderCreateInfoFragment *fs)
|
||||
{
|
||||
}
|
||||
|
||||
bool Std2DMaterial::Create()
|
||||
{
|
||||
}
|
||||
STD_MTL_NAMESPACE_END
|
39
src/ShaderGen/2d/Std2DMaterial.h
Normal file
39
src/ShaderGen/2d/Std2DMaterial.h
Normal file
@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/graph/mtl/StdMaterial.h>
|
||||
|
||||
namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
class ShaderCreateInfoVertex;
|
||||
class ShaderCreateInfoFragment;
|
||||
|
||||
namespace mtl
|
||||
{
|
||||
class MaterialCreateInfo;
|
||||
struct Material2DConfig;
|
||||
|
||||
class Std2DMaterial
|
||||
{
|
||||
protected:
|
||||
|
||||
Material2DConfig *cfg;
|
||||
|
||||
MaterialCreateInfo *mci;
|
||||
|
||||
protected:
|
||||
|
||||
virtual bool CreateVertexShader(ShaderCreateInfoVertex *)=0;
|
||||
virtual bool CreateFragmentShader(ShaderCreateInfoFragment *)=0;
|
||||
|
||||
public:
|
||||
|
||||
Std2DMaterial(const Material2DConfig *);
|
||||
virtual ~Std2DMaterial();
|
||||
|
||||
virtual bool Create()=0;
|
||||
};//class Std2DMaterial
|
||||
}//namespace mtl
|
||||
}//namespace graph
|
||||
}//namespace hgl
|
@ -1,8 +1,10 @@
|
||||
#include<hgl/graph/mtl/StdMaterial.h>
|
||||
#include<hgl/graph/mtl/2d/VertexColor2D.h>
|
||||
#include<hgl/graph/mtl/2d/VertexColor2D.h>
|
||||
#include<hgl/graph/mtl/2d/Material2DConfig.h>
|
||||
#include<hgl/graph/VKMaterial.h>
|
||||
#include<hgl/graph/VKDevice.h>
|
||||
#include<hgl/shadergen/MaterialCreateInfo.h>
|
||||
#include"common/UBOCommon.h"
|
||||
#include"common/MFCommon.h"
|
||||
|
||||
STD_MTL_NAMESPACE_BEGIN
|
||||
MaterialCreateInfo *CreateVertexColor2D(const Material2DConfig *cfg)
|
||||
@ -20,7 +22,7 @@ MaterialCreateInfo *CreateVertexColor2D(const Material2DConfig *cfg)
|
||||
false //不输出stencil
|
||||
};
|
||||
|
||||
MaterialCreateInfo *mci=new MaterialCreateInfo(mtl_name,rtoc);
|
||||
MaterialCreateInfo *mci=new MaterialCreateInfo(cfg);
|
||||
|
||||
AnsiString sfComputePosition;
|
||||
|
||||
|
@ -35,18 +35,29 @@ SET(GLSL_COMPILER_SOURCE GLSLCompiler.h
|
||||
SOURCE_GROUP("GLSL Compiler" FILES ${GLSL_COMPILER_SOURCE})
|
||||
|
||||
|
||||
SET(SHADERGEN_COMMON_FILES common/UBOCommon.h
|
||||
common/MFCommon.h)
|
||||
|
||||
SOURCE_GROUP("Common" FILES ${SHADERGEN_COMMON_FILES})
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
set(STD_MTL_HEADER_PATH ${ROOT_INCLUDE_PATH}/hgl/graph/mtl)
|
||||
|
||||
SET(STD_MTL_2D_HEADER_PATH ${STD_MTL_HEADER_PATH}/2d)
|
||||
|
||||
SET(STD_MTL_2D_SOURCE_FILES ${STD_MTL_2D_HEADER_PATH}/VertexColor2D.h
|
||||
SET(STD_MTL_2D_SOURCE_FILES ${STD_MTL_2D_HEADER_PATH}/Material2DConfig.h
|
||||
${STD_MTL_2D_HEADER_PATH}/VertexColor2D.h
|
||||
2d/Std2DMaterial.h
|
||||
2d/Std2DMaterial.cpp
|
||||
2d/VertexColor2D.cpp)
|
||||
|
||||
SET(STANDARD_MATERIAL_SOURCE ${STD_MTL_HEADER_PATH}/StdMaterial.h
|
||||
${STD_MTL_HEADER_PATH}/ShaderBuffer.h
|
||||
StandardMaterial.cpp)
|
||||
SET(STD_MTL_SOURCE ${STD_MTL_HEADER_PATH}/MaterialConfig.h
|
||||
${STD_MTL_HEADER_PATH}/StdMaterial.h
|
||||
${STD_MTL_HEADER_PATH}/ShaderBuffer.h
|
||||
StandardMaterial.cpp)
|
||||
|
||||
SOURCE_GROUP("Standard Material" FILES ${STANDARD_MATERIAL_SOURCE})
|
||||
SOURCE_GROUP("Standard Material" FILES ${STD_MTL_SOURCE})
|
||||
SOURCE_GROUP("Standard Material\\2D" FILES ${STD_MTL_2D_SOURCE_FILES})
|
||||
|
||||
add_cm_library(ULRE.ShaderGen "ULRE" ${DESC_INFO_HEADER_FILES}
|
||||
@ -55,7 +66,8 @@ add_cm_library(ULRE.ShaderGen "ULRE" ${DESC_INFO_HEADER_FILES}
|
||||
${MATERIAL_CREATE_INFO_SOURCE_FILES}
|
||||
${SHADER_CREATER_HEADER_FILES}
|
||||
${SHADER_CREATER_SOURCE_FILES}
|
||||
${GLSL_COMPILER_SOURCE}
|
||||
${STANDARD_MATERIAL_SOURCE}
|
||||
${GLSL_COMPILER_SOURCE}
|
||||
${SHADERGEN_COMMON_FILES}
|
||||
${STD_MTL_SOURCE}
|
||||
${STD_MTL_2D_SOURCE_FILES}
|
||||
)
|
||||
|
@ -1,17 +1,14 @@
|
||||
#include<hgl/shadergen/MaterialCreateInfo.h>
|
||||
#include<hgl/shadergen/ShaderDescriptorInfo.h>
|
||||
#include"common/UBOCommon.h"
|
||||
|
||||
using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
|
||||
namespace hgl{namespace graph{
|
||||
MaterialCreateInfo::MaterialCreateInfo(const AnsiString &n,const RenderTargetOutputConfig &cfg,const uint32 ss)
|
||||
STD_MTL_NAMESPACE_BEGIN
|
||||
MaterialCreateInfo::MaterialCreateInfo(const MaterialConfig *mc)
|
||||
{
|
||||
shader_name=n;
|
||||
|
||||
rto_cfg=cfg;
|
||||
|
||||
shader_stage=ss;
|
||||
config=mc;
|
||||
|
||||
if(hasVertex ())shader_map.Add(vert=new ShaderCreateInfoVertex (&mdi));else vert=nullptr;
|
||||
if(hasGeometry ())shader_map.Add(geom=new ShaderCreateInfoGeometry(&mdi));else geom=nullptr;
|
||||
@ -109,7 +106,7 @@ bool MaterialCreateInfo::AddUBO(const uint32_t flag_bits,const DescriptorSetType
|
||||
uint result=0;
|
||||
VkShaderStageFlagBits bit;
|
||||
|
||||
for(uint i=0;i<shader_map.GetCount();i++)
|
||||
for(int i=0;i<shader_map.GetCount();i++)
|
||||
{
|
||||
shader_map.GetKey(i,bit);
|
||||
|
||||
@ -128,7 +125,7 @@ bool MaterialCreateInfo::CreateShader()
|
||||
|
||||
if(mi_length>0)
|
||||
{
|
||||
AddUBO( shader_stage,
|
||||
AddUBO( config->shader_stage,
|
||||
DescriptorSetType::Global,
|
||||
mtl::SBS_MaterialInstance);
|
||||
}
|
||||
@ -149,4 +146,4 @@ bool MaterialCreateInfo::CreateShader()
|
||||
|
||||
return(true);
|
||||
}
|
||||
}}//namespace hgl::graph
|
||||
STD_MTL_NAMESPACE_END
|
||||
|
@ -4,11 +4,7 @@
|
||||
#include<hgl/graph/VKShaderStage.h>
|
||||
#include"GLSLCompiler.h"
|
||||
|
||||
namespace hgl{namespace graph{
|
||||
|
||||
using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
int ShaderCreateInfoVertex::AddInput(const VAT &type,const AnsiString &name,const VkVertexInputRate input_rate,const VertexInputGroup &group)
|
||||
{
|
||||
ShaderAttribute *ss=new ShaderAttribute;
|
||||
@ -63,4 +59,4 @@ bool ShaderCreateInfoVertex::ProcInput(ShaderCreateInfo *)
|
||||
|
||||
return(true);
|
||||
}
|
||||
}}//namespace hgl::graph
|
||||
VK_NAMESPACE_END
|
||||
|
35
src/ShaderGen/common/MFCommon.h
Normal file
35
src/ShaderGen/common/MFCommon.h
Normal file
@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/graph/mtl/StdMaterial.h>
|
||||
|
||||
STD_MTL_NAMESPACE_BEGIN
|
||||
namespace func
|
||||
{
|
||||
constexpr const char GetLocalToWorld[]=R"(
|
||||
mat4 GetLocalToWorld()
|
||||
{
|
||||
return mat4(LocalToWorld_0,
|
||||
LocalToWorld_1,
|
||||
LocalToWorld_2,
|
||||
LocalToWorld_3);
|
||||
}
|
||||
)";
|
||||
|
||||
constexpr const char GetJointMatrix[]=R"(
|
||||
mat4 GetJointMatrix()
|
||||
{
|
||||
return joint.mats[JointID.x]*JointWeight.x+
|
||||
joint.mats[JointID.y]*JointWeight.y+
|
||||
joint.mats[JointID.z]*JointWeight.z+
|
||||
joint.mats[JointID.w]*JointWeight.w;
|
||||
}
|
||||
)";
|
||||
|
||||
constexpr const char GetMI[]=R"(
|
||||
MaterialInstance GetMI()
|
||||
{
|
||||
return mtl.mi[MaterialInstanceID];
|
||||
}
|
||||
)";
|
||||
}//namespace func
|
||||
STD_MTL_NAMESPACE_END
|
62
src/ShaderGen/common/UBOCommon.h
Normal file
62
src/ShaderGen/common/UBOCommon.h
Normal file
@ -0,0 +1,62 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/graph/mtl/StdMaterial.h>
|
||||
#include<hgl/graph/mtl/ShaderBuffer.h>
|
||||
|
||||
STD_MTL_NAMESPACE_BEGIN
|
||||
constexpr const ShaderBufferSource SBS_ViewportInfo=
|
||||
{
|
||||
"ViewportInfo",
|
||||
"viewport",
|
||||
|
||||
R"(
|
||||
mat4 ortho_matrix;
|
||||
|
||||
vec2 canvas_resolution;
|
||||
vec2 viewport_resolution;
|
||||
vec2 inv_viewport_resolution;
|
||||
)"
|
||||
};
|
||||
|
||||
constexpr const ShaderBufferSource SBS_CameraInfo=
|
||||
{
|
||||
"CameraInfo",
|
||||
"camera",
|
||||
|
||||
R"(
|
||||
mat4 projection;
|
||||
mat4 inverse_projection;
|
||||
|
||||
mat4 view;
|
||||
mat4 inverse_view;
|
||||
|
||||
mat4 vp;
|
||||
mat4 inverse_vp;
|
||||
|
||||
mat4 sky;
|
||||
|
||||
vec3 pos; //eye
|
||||
vec3 view_line; //pos-target
|
||||
vec3 world_up;
|
||||
|
||||
float znear,zfar;)"
|
||||
};
|
||||
|
||||
constexpr const ShaderBufferSource SBS_MaterialInstance=
|
||||
{
|
||||
"MaterialInstanceData",
|
||||
"mtl",
|
||||
|
||||
"MaterialInstance mi[256];"
|
||||
};
|
||||
|
||||
constexpr const ShaderBufferSource SBS_JointInfo=
|
||||
{
|
||||
"JointInfo",
|
||||
"joint",
|
||||
|
||||
R"(
|
||||
mat4 mats[];
|
||||
)"
|
||||
};
|
||||
STD_MTL_NAMESPACE_END
|
Loading…
x
Reference in New Issue
Block a user