update 2 examples
This commit is contained in:
parent
c5b5486969
commit
9d92ebb8da
@ -226,10 +226,10 @@ private:
|
||||
if(!sp->material)
|
||||
return(false);
|
||||
|
||||
sp->desc_sets=sp->material->CreateDescriptorSets();
|
||||
sp->material_instance=sp->material->CreateInstance();
|
||||
|
||||
db->Add(sp->material);
|
||||
db->Add(sp->desc_sets);
|
||||
db->Add(sp->material_instance);
|
||||
return(true);
|
||||
}
|
||||
|
||||
@ -312,16 +312,16 @@ private:
|
||||
|
||||
sampler=device->CreateSampler(&sampler_create_info);
|
||||
|
||||
InitCameraUBO(sp_gbuffer.desc_sets,sp_gbuffer.material->GetUBO("world"));
|
||||
InitCameraUBO(sp_gbuffer.material_instance,"world");
|
||||
|
||||
sp_gbuffer.desc_sets->BindSampler(sp_gbuffer.material->GetSampler("TextureColor" ),texture.color, sampler);
|
||||
sp_gbuffer.desc_sets->BindSampler(sp_gbuffer.material->GetSampler("TextureNormal" ),texture.normal, sampler);
|
||||
sp_gbuffer.desc_sets->Update();
|
||||
sp_gbuffer.material_instance->BindSampler("TextureColor" ,texture.color, sampler);
|
||||
sp_gbuffer.material_instance->BindSampler("TextureNormal" ,texture.normal, sampler);
|
||||
sp_gbuffer.material_instance->Update();
|
||||
|
||||
sp_composition.desc_sets->BindSampler(sp_composition.material->GetSampler("GB_Position" ),gbuffer.position, sampler);
|
||||
sp_composition.desc_sets->BindSampler(sp_composition.material->GetSampler("GB_Normal" ),gbuffer.normal, sampler);
|
||||
sp_composition.desc_sets->BindSampler(sp_composition.material->GetSampler("GB_Color" ),gbuffer.color, sampler);
|
||||
sp_composition.desc_sets->Update();
|
||||
sp_composition.material_instance->BindSampler("GB_Position" ,gbuffer.position, sampler);
|
||||
sp_composition.material_instance->BindSampler("GB_Normal" ,gbuffer.normal, sampler);
|
||||
sp_composition.material_instance->BindSampler("GB_Color" ,gbuffer.color, sampler);
|
||||
sp_composition.material_instance->Update();
|
||||
|
||||
return(true);
|
||||
}
|
||||
@ -387,12 +387,12 @@ private:
|
||||
bool InitScene(SubpassParam *sp)
|
||||
{
|
||||
CreateRenderObject(sp->material);
|
||||
render_root.Add(db->CreateRenderableInstance(sp->pipeline_fan,sp->desc_sets,ro_plane),scale(100,100,1));
|
||||
render_root.Add(db->CreateRenderableInstance(sp->pipeline_triangles,sp->desc_sets,ro_torus ),translate(0,0,0));
|
||||
render_root.Add(db->CreateRenderableInstance(sp->pipeline_triangles,sp->desc_sets,ro_sphere ),scale(20,20,20));
|
||||
render_root.Add(db->CreateRenderableInstance(sp->pipeline_triangles,sp->desc_sets,ro_cube ),translate(-30, 0,10)*scale(10,10,10));
|
||||
render_root.Add(db->CreateRenderableInstance(sp->pipeline_triangles,sp->desc_sets,ro_cylinder ),translate( 30, 30,10)*scale(1,1,2));
|
||||
render_root.Add(db->CreateRenderableInstance(sp->pipeline_triangles,sp->desc_sets,ro_cone ),translate( 0,-30, 0)*scale(1,1,2));
|
||||
render_root.Add(db->CreateRenderableInstance(sp->pipeline_fan, sp->material_instance,ro_plane ),scale(100,100,1));
|
||||
render_root.Add(db->CreateRenderableInstance(sp->pipeline_triangles,sp->material_instance,ro_torus ),translate(0,0,0));
|
||||
render_root.Add(db->CreateRenderableInstance(sp->pipeline_triangles,sp->material_instance,ro_sphere ),scale(20,20,20));
|
||||
render_root.Add(db->CreateRenderableInstance(sp->pipeline_triangles,sp->material_instance,ro_cube ),translate(-30, 0,10)*scale(10,10,10));
|
||||
render_root.Add(db->CreateRenderableInstance(sp->pipeline_triangles,sp->material_instance,ro_cylinder ),translate( 30, 30,10)*scale(1,1,2));
|
||||
render_root.Add(db->CreateRenderableInstance(sp->pipeline_triangles,sp->material_instance,ro_cone ),translate( 0,-30, 0)*scale(1,1,2));
|
||||
|
||||
render_root.RefreshMatrix();
|
||||
render_root.ExpendToList(&render_list);
|
||||
@ -460,7 +460,7 @@ public:
|
||||
{
|
||||
VulkanApplicationFramework::BuildCommandBuffer( index,
|
||||
sp_composition.pipeline_triangles,
|
||||
sp_composition.desc_sets,
|
||||
sp_composition.material_instance,
|
||||
ro_gbc_plane);
|
||||
}
|
||||
};//class TestApp:public CameraAppFramework
|
||||
|
@ -16,6 +16,8 @@ constexpr uint32_t SCREEN_HEIGHT=128;
|
||||
|
||||
class TestApp:public CameraAppFramework
|
||||
{
|
||||
Color4f color;
|
||||
|
||||
private:
|
||||
|
||||
SceneNode render_root;
|
||||
@ -23,6 +25,7 @@ private:
|
||||
|
||||
vulkan::Material * material =nullptr;
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::Buffer * ubo_color =nullptr;
|
||||
|
||||
vulkan::Renderable *ro_plane_grid,
|
||||
*ro_cube,
|
||||
@ -127,6 +130,14 @@ private:
|
||||
|
||||
bool InitUBO()
|
||||
{
|
||||
color.Set(1,1,1,1);
|
||||
|
||||
ubo_color=device->CreateUBO(sizeof(Vector4f),&color);
|
||||
|
||||
db->Add(ubo_color);
|
||||
|
||||
material_instance->BindUBO("color_material",ubo_color);
|
||||
|
||||
if(!InitCameraUBO(material_instance,"world"))
|
||||
return(false);
|
||||
|
||||
|
@ -2,13 +2,21 @@
|
||||
|
||||
layout(location = 0) in vec3 Vertex;
|
||||
|
||||
layout(binding = 0) uniform WorldMatrix
|
||||
layout(binding=0) uniform WorldMatrix // hgl/math/Math.h
|
||||
{
|
||||
mat4 two_dim;
|
||||
mat4 ortho;
|
||||
|
||||
mat4 projection;
|
||||
mat4 inverse_projection;
|
||||
|
||||
mat4 modelview;
|
||||
mat4 inverse_modelview;
|
||||
|
||||
mat4 mvp;
|
||||
mat3 normal;
|
||||
mat4 inverse_mvp;
|
||||
|
||||
vec4 view_pos;
|
||||
vec2 resolution;
|
||||
} world;
|
||||
|
||||
layout(push_constant) uniform Consts {
|
||||
|
@ -1,12 +1,20 @@
|
||||
#version 450 core
|
||||
|
||||
layout(binding = 0) uniform WorldMatrix
|
||||
layout(binding=0) uniform WorldMatrix // hgl/math/Math.h
|
||||
{
|
||||
mat4 ortho;
|
||||
|
||||
mat4 projection;
|
||||
mat4 inverse_projection;
|
||||
|
||||
mat4 modelview;
|
||||
mat4 inverse_modelview;
|
||||
|
||||
mat4 mvp;
|
||||
mat4 inverse_mvp;
|
||||
|
||||
vec4 view_pos;
|
||||
vec2 resolution;
|
||||
} world;
|
||||
|
||||
layout(push_constant) uniform Consts {
|
||||
|
@ -5,13 +5,21 @@ layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 2) in vec3 Normal;
|
||||
layout(location = 3) in vec3 Tangent;
|
||||
|
||||
layout(binding = 0) uniform WorldMatrix
|
||||
layout(binding=0) uniform WorldMatrix // hgl/math/Math.h
|
||||
{
|
||||
mat4 ortho;
|
||||
|
||||
mat4 projection;
|
||||
mat4 inverse_projection;
|
||||
|
||||
mat4 modelview;
|
||||
mat4 inverse_modelview;
|
||||
|
||||
mat4 mvp;
|
||||
mat4 inverse_mvp;
|
||||
|
||||
vec4 view_pos;
|
||||
vec2 resolution;
|
||||
} world;
|
||||
|
||||
layout(push_constant) uniform Consts {
|
||||
|
Loading…
x
Reference in New Issue
Block a user