adjust & layout codes.

This commit is contained in:
hyzboy 2024-06-24 22:30:34 +08:00
parent 1b5d4aabb0
commit 09e9e71d59
9 changed files with 97 additions and 58 deletions

@ -1 +1 @@
Subproject commit 8d091ebfb0fb02c320789357f66bf84d1c80682f
Subproject commit 3b769e692b3e2dc43dba9c682f7e899d2115eac7

View File

@ -1,43 +0,0 @@
#Material
Name Billboard2DWay
Base Std3D/Billboard
#VertexInput
vec2 TexCoord
#Vertex
Output
{
vec2 TexCoord
}
Code
{
void main()
{
Output.TexCoord=TexCoord;
vec4 pos=GetPosition3D()
+camera.camera_right*TexCoord.x*Billboard.Size.x
+camera.camera_up *TexCoord.y*Billboard.Size.y;
gl_Position=GetPosition3D();
}
}
#Fragment
sampler2D TextureBaseColor
Output
{
vec4 FragColor;
}
Code
{
void main()
{
FragColor=texture(TextureBaseColor,Input.TexCoord);
}
}

View File

@ -0,0 +1,82 @@
#Material
Name BillboardFixedSize
Base Std3D/Billboard
#VertexInput
vec2 TexCoord
#MaterialInstance
Length 8
Stage Vertex
Code
{
uvec2 BillboardSize;
}
#Vertex
Output
{
vec2 BillboardSize
}
Code
{
void main()
{
MaterialInstance mi=GetMI();
Output.BillboardSize=mi.BillboardSize/viewport.canvas_resolution;
gl_Position=GetPosition3D();
gl_Position/=gl_Position.w;
}
}
#Geometry
Output
{
vec2 TexCoord
}
Code
{
void main()
{
const vec2 BillboardVertex[4]=vec2[]
(
vec2(-0.5,-0.5),
vec2(-0.5, 0.5),
vec2( 0.5,-0.5),
vec2( 0.5, 0.5)
);
for(int i=0;i<4;i++)
{
gl_Position=gl_in[0].gl_Position;
gl_Position.xy+=BillboardVertex[i]*Input[0].BillboardSize;
Output.TexCoord=BillboardVertex[i]+vec2(0.5);
EmitVertex();
}
EndPrimitive();
}
}
#Fragment
sampler2D TextureBaseColor
Output
{
vec4 FragColor;
}
Code
{
void main()
{
FragColor=texture(TextureBaseColor,Input.TexCoord);
}
}

View File

@ -81,7 +81,7 @@ Code
#ifndef HAVE_SPECULAR
FragColor=vec4(direct_color,1.0);
#else
#else
vec3 spec_color=vec3(0.0);

View File

@ -129,8 +129,8 @@ private:
struct PlaneGridCreateInfo pgci;
pgci.grid_size.Set(32,32);
pgci.sub_count.Set(8,8);
pgci.grid_size.Set(500,500);
pgci.sub_count.Set(5,5);
pgci.lum=0.5;
pgci.sub_lum=0.75;
@ -203,5 +203,5 @@ public:
int main(int,char **)
{
return RunApp<TestApp>(1280,720);
return RunApp<TestApp>(1920,1080);
}

View File

@ -25,7 +25,7 @@ namespace
const int shader_count=shader_maps->GetCount();
shader_stage_list.SetCount(shader_count);
VkPipelineShaderStageCreateInfo *p=shader_stage_list.GetData();
VkPipelineShaderStageCreateInfo *p=shader_stage_list.GetData();
auto **itp=shader_maps->GetDataList();
for(int i=0;i<shader_count;i++)

View File

@ -39,8 +39,8 @@ void main()
}
EndPrimitive();
})";
constexpr const char fs_main[]=R"(
constexpr const char fs_main[]=R"(
void main()
{
FragColor=texture(TextureBaseColor,Input.TexCoord);
@ -90,7 +90,7 @@ MaterialCreateInfo *CreateBillboard2DDynamic(mtl::BillboardMaterialCreateConfig
{
if(!cfg)
return(nullptr);
cfg->shader_stage_flag_bit|=VK_SHADER_STAGE_GEOMETRY_BIT;
cfg->local_to_world=true;

View File

@ -40,8 +40,8 @@ void main()
}
EndPrimitive();
})";
constexpr const char fs_main[]=R"(
constexpr const char fs_main[]=R"(
void main()
{
FragColor=texture(TextureBaseColor,Input.TexCoord);
@ -87,9 +87,9 @@ void main()
bool EndCustomShader() override
{
mci->SetMaterialInstance( mi_codes, //材质实例glsl代码
mi_bytes, //材质实例数据大小
VK_SHADER_STAGE_VERTEX_BIT); //只在Vertex Shader中使用材质实例最终数据
mci->SetMaterialInstance(mi_codes, //材质实例glsl代码
mi_bytes, //材质实例数据大小
VK_SHADER_STAGE_VERTEX_BIT); //只在Vertex Shader中使用材质实例最终数据
return(true);
}
@ -100,7 +100,7 @@ MaterialCreateInfo *CreateBillboard2DFixedSize(mtl::BillboardMaterialCreateConfi
{
if(!cfg)
return(nullptr);
cfg->shader_stage_flag_bit|=VK_SHADER_STAGE_GEOMETRY_BIT;
cfg->local_to_world=true;