added a standard material that it's VertexColor2DNDC.
This commit is contained in:
parent
d26cae0086
commit
8bf1ad2a46
@ -8,7 +8,7 @@
|
||||
#include<hgl/graph/SceneInfo.h>
|
||||
#include<hgl/graph/VKVertexInputConfig.h>
|
||||
#include<hgl/graph/VKRenderablePrimitiveCreater.h>
|
||||
#include<hgl/shadergen/MaterialCreateInfo.h>
|
||||
#include<hgl/graph/mtl/2d/VertexColor2DNDC.h>
|
||||
|
||||
using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
@ -98,45 +98,11 @@ private:
|
||||
|
||||
bool InitAutoMaterial()
|
||||
{
|
||||
MaterialCreateInfo mci("VertexColor2DNDC", ///<名称,随便起
|
||||
1, ///<最终一个RT输出
|
||||
false); ///<无深度输出
|
||||
auto *mci=mtl::CreateVertexColor2DNDC();
|
||||
|
||||
//vertex部分
|
||||
{
|
||||
ShaderCreateInfoVertex *vsc=mci.GetVS();
|
||||
material_instance=db->CreateMaterialInstance(mci,&vil_config);
|
||||
|
||||
vsc->AddInput(VAT_VEC2,VAN::Position);
|
||||
vsc->AddInput(VAT_VEC4,VAN::Color);
|
||||
|
||||
vsc->AddOutput(VAT_VEC4,"Color");
|
||||
|
||||
vsc->SetShaderCodes(R"(
|
||||
void main()
|
||||
{
|
||||
Output.Color=Color;
|
||||
|
||||
gl_Position=vec4(Position,0,1);
|
||||
})");
|
||||
}
|
||||
|
||||
//fragment部分
|
||||
{
|
||||
ShaderCreateInfoFragment *fsc=mci.GetFS();
|
||||
|
||||
fsc->AddOutput(VAT_VEC4,"Color");
|
||||
|
||||
fsc->SetShaderCodes(R"(
|
||||
void main()
|
||||
{
|
||||
Color=Input.Color;
|
||||
})");
|
||||
}
|
||||
|
||||
if(!mci.CreateShader())
|
||||
return(false);
|
||||
|
||||
material_instance=db->CreateMaterialInstance(&mci,&vil_config);
|
||||
delete mci;
|
||||
|
||||
return material_instance;
|
||||
}
|
||||
|
17
inc/hgl/graph/mtl/2d/VertexColor2DNDC.h
Normal file
17
inc/hgl/graph/mtl/2d/VertexColor2DNDC.h
Normal file
@ -0,0 +1,17 @@
|
||||
#ifndef HGL_GRAPH_MTL_2D_VERTEX2DNDC_INCLUDE
|
||||
#define HGL_GRAPH_MTL_2D_VERTEX2DNDC_INCLUDE
|
||||
|
||||
namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
class MaterialCreateInfo;
|
||||
|
||||
namespace mtl
|
||||
{
|
||||
MaterialCreateInfo *CreateVertexColor2DNDC();
|
||||
}//namespace mtl
|
||||
}//namespace graph
|
||||
}//namespace hgl
|
||||
|
||||
#endif//HGL_GRAPH_MTL_2D_VERTEX2DNDC_INCLUDE
|
6
inc/hgl/graph/mtl/StdMaterial.h
Normal file
6
inc/hgl/graph/mtl/StdMaterial.h
Normal file
@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#define STD_MTL_NAMESPACE_BEGIN namespace hgl{namespace graph{namespace mtl{
|
||||
#define STD_MTL_NAMESPACE_END }}}
|
||||
|
||||
#define STD_MTL_NAMESPACE_USING using namespace hgl::graph::mtl
|
@ -1,8 +1,8 @@
|
||||
#include<hgl/shadergen/ShaderDescriptorInfo.h>
|
||||
#include<hgl/CompOperator.h>
|
||||
|
||||
namespace hgl{namespace graph{
|
||||
|
||||
namespace hgl{namespace graph
|
||||
{
|
||||
using ParamPreciseFlagBits=uint8;
|
||||
using PPFB=ParamPreciseFlagBits;
|
||||
|
||||
@ -85,6 +85,7 @@ struct Standard2DMaterial:public StandardMaterial
|
||||
|
||||
PPFB color; ///<是否包含颜色缩放系数
|
||||
PPFB alpha; ///<是否包含alpha缩放系数
|
||||
uint8 color_format;
|
||||
|
||||
PPFB lum; ///<是否包含亮度调整
|
||||
PPFB hue; ///<是否包含色调调整
|
||||
@ -101,4 +102,14 @@ public:
|
||||
hgl_zero(*this);
|
||||
}
|
||||
};//struct Standard2DMaterial:public StandardMaterial
|
||||
|
||||
struct Vertex2DNDCMaterial:public Standard2DMaterial
|
||||
{
|
||||
Vertex2DNDCMaterial()
|
||||
{
|
||||
Reset();
|
||||
|
||||
color=PPFB_Vertex;
|
||||
}
|
||||
};
|
||||
}}//namespace hgl::graph
|
||||
|
50
src/ShaderGen/2d/VertexColor2DNDC.cpp
Normal file
50
src/ShaderGen/2d/VertexColor2DNDC.cpp
Normal file
@ -0,0 +1,50 @@
|
||||
#include<hgl/graph/mtl/StdMaterial.h>
|
||||
#include<hgl/graph/VKMaterial.h>
|
||||
#include<hgl/graph/VKDevice.h>
|
||||
#include<hgl/shadergen/MaterialCreateInfo.h>
|
||||
|
||||
STD_MTL_NAMESPACE_BEGIN
|
||||
MaterialCreateInfo *CreateVertexColor2DNDC()
|
||||
{
|
||||
MaterialCreateInfo *mci=new MaterialCreateInfo("VertexColor2DNDC", ///<名称,随便起
|
||||
1, ///<最终一个RT输出
|
||||
false); ///<无深度输出
|
||||
|
||||
//vertex部分
|
||||
{
|
||||
ShaderCreateInfoVertex *vsc=mci->GetVS();
|
||||
|
||||
vsc->AddInput(VAT_VEC2,VAN::Position);
|
||||
vsc->AddInput(VAT_VEC4,VAN::Color);
|
||||
|
||||
vsc->AddOutput(VAT_VEC4,"Color");
|
||||
|
||||
vsc->SetShaderCodes(R"(
|
||||
void main()
|
||||
{
|
||||
Output.Color=Color;
|
||||
|
||||
gl_Position=vec4(Position,0,1);
|
||||
})");
|
||||
}
|
||||
|
||||
//fragment部分
|
||||
{
|
||||
ShaderCreateInfoFragment *fsc=mci->GetFS();
|
||||
|
||||
fsc->AddOutput(VAT_VEC4,"Color");
|
||||
|
||||
fsc->SetShaderCodes(R"(
|
||||
void main()
|
||||
{
|
||||
Color=Input.Color;
|
||||
})");
|
||||
}
|
||||
|
||||
if(mci->CreateShader())
|
||||
return mci;
|
||||
|
||||
delete mci;
|
||||
return(nullptr);
|
||||
}
|
||||
STD_MTL_NAMESPACE_END
|
@ -1,6 +1,5 @@
|
||||
set(SHADERGEN_INCLUDE_PATH ${ROOT_INCLUDE_PATH}/hgl/shadergen)
|
||||
|
||||
|
||||
SET(SHADER_CREATER_HEADER_FILES ${SHADERGEN_INCLUDE_PATH}/ShaderCreateInfo.h
|
||||
${SHADERGEN_INCLUDE_PATH}/ShaderCreateInfoMap.h
|
||||
${SHADERGEN_INCLUDE_PATH}/ShaderCreateInfoVertex.h
|
||||
@ -21,35 +20,40 @@ SET(MATERIAL_CREATE_INFO_SOURCE_FILES MaterialCreateInfo.cpp)
|
||||
SOURCE_GROUP("Material Create Info" FILES ${MATERIAL_CREATE_INFO_HEADER_FILES}
|
||||
${MATERIAL_CREATE_INFO_SOURCE_FILES})
|
||||
|
||||
SET(SHADERGEN_HEADER_FILES ${SHADERGEN_INCLUDE_PATH}/ShaderDescriptorInfo.h
|
||||
SET(DESC_INFO_HEADER_FILES ${SHADERGEN_INCLUDE_PATH}/ShaderDescriptorInfo.h
|
||||
${SHADERGEN_INCLUDE_PATH}/MaterialDescriptorInfo.h)
|
||||
|
||||
SET(SHADERGEN_SOURCE_FILES
|
||||
#PMC.cpp
|
||||
# VertexPolicy.cpp
|
||||
ShaderDescriptorInfo.cpp
|
||||
MaterialDescriptorInfo.cpp
|
||||
)
|
||||
SET(DESC_INFO_SOURCE_FILES ShaderDescriptorInfo.cpp
|
||||
MaterialDescriptorInfo.cpp)
|
||||
|
||||
SOURCE_GROUP("Material Create Info\\Descriptor Info" FILES ${DESC_INFO_HEADER_FILES}
|
||||
${DESC_INFO_SOURCE_FILES})
|
||||
|
||||
SET(GLSL_COMPILER_SOURCE GLSLCompiler.h
|
||||
GLSLCompiler.cpp)
|
||||
|
||||
SOURCE_GROUP("GLSL Compiler" FILES ${GLSL_COMPILER_SOURCE})
|
||||
|
||||
SOURCE_GROUP("Material Create Info\\Descriptor Info" FILES ${SHADERGEN_HEADER_FILES}
|
||||
${SHADERGEN_SOURCE_FILES})
|
||||
|
||||
SET(STANDARD_MATERIAL_SOURCE ${SHADERGEN_INCLUDE_PATH}/StandardMaterial.h
|
||||
StandardMaterial.cpp)
|
||||
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}/VertexColor2DNDC.h
|
||||
2d/VertexColor2DNDC.cpp)
|
||||
|
||||
SET(STANDARD_MATERIAL_SOURCE ${STD_MTL_HEADER_PATH}/StdMaterial.h)
|
||||
|
||||
SOURCE_GROUP("Standard Material" FILES ${STANDARD_MATERIAL_SOURCE})
|
||||
SOURCE_GROUP("Standard Material\\2D" FILES ${STD_MTL_2D_SOURCE_FILES})
|
||||
|
||||
add_cm_library(ULRE.ShaderGen "ULRE" ${SHADERGEN_HEADER_FILES}
|
||||
${SHADERGEN_SOURCE_FILES}
|
||||
add_cm_library(ULRE.ShaderGen "ULRE" ${DESC_INFO_HEADER_FILES}
|
||||
${DESC_INFO_SOURCE_FILES}
|
||||
${MATERIAL_CREATE_INFO_HEADER_FILES}
|
||||
${MATERIAL_CREATE_INFO_SOURCE_FILES}
|
||||
${SHADER_CREATER_HEADER_FILES}
|
||||
${SHADER_CREATER_SOURCE_FILES}
|
||||
${GLSL_COMPILER_SOURCE}
|
||||
${STANDARD_MATERIAL_SOURCE}
|
||||
${STD_MTL_2D_SOURCE_FILES}
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user