added GetPosition3D in Std3DMaterial

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-09-28 15:03:34 +08:00
parent 1101bcae9d
commit dbea7764fb
4 changed files with 23 additions and 1 deletions

View File

@ -11,6 +11,8 @@ struct Material3DCreateConfig:public MaterialCreateConfig
VAT position_format; ///<position格式
// bool reverse_depth; ///<使用反向深度
public:
Material3DCreateConfig(const GPUDeviceAttribute *da,const AnsiString &name,const Prim &p):MaterialCreateConfig(da,name,p)
@ -22,10 +24,12 @@ public:
local_to_world=false;
position_format=VAT_VEC3;
// reverse_depth=false;
}
};//struct Material3DCreateConfig:public MaterialCreateConfig
//MaterialCreateInfo *CreateVertexColor2D(const Material2DCreateConfig *);
MaterialCreateInfo *CreateVertexColor3D(const Material3DCreateConfig *);
//MaterialCreateInfo *CreatePureColor2D(const Material2DCreateConfig *);
//MaterialCreateInfo *CreatePureTexture2D(const Material2DCreateConfig *);
//MaterialCreateInfo *CreateRectTexture2D(Material2DCreateConfig *);

View File

@ -5,6 +5,7 @@
#include<hgl/type/String.h>
#include<hgl/graph/RenderTargetOutputConfig.h>
#include<hgl/graph/VK.h>
#include<hgl/graph/mtl/SamplerName.h>
STD_MTL_NAMESPACE_BEGIN
class MaterialCreateInfo;

View File

@ -22,7 +22,10 @@ bool Std3DMaterial::CustomVertexShader(ShaderCreateInfoVertex *vsc)
mci->SetLocalToWorld(VK_SHADER_STAGE_ALL_GRAPHICS);
vsc->AddAssign();
vsc->AddFunction(func::GetPosition3DL2W);
}
else
vsc->AddFunction(func::GetPosition3D);
mci->AddUBO(VK_SHADER_STAGE_VERTEX_BIT,
DescriptorSetType::Global,

View File

@ -52,5 +52,19 @@ vec4 GetPosition2D()
}
)"
};
constexpr const char *GetPosition3D=R"(
vec4 GetPosition3D()
{
return vec4(Position,1);
}
)";
constexpr const char *GetPosition3DL2W=R"(
vec4 GetPosition3D()
{
return GetLocalToWorld()*vec4(Position,1);
}
)";
}//namespace func
STD_MTL_NAMESPACE_END