renamed to RenderAssignBuffer from RenderExtraBuffer

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-09-05 20:48:47 +08:00
parent 8bb742f3f4
commit 28b2b53d03
4 changed files with 25 additions and 24 deletions

View File

@ -1,12 +1,12 @@
#pragma once #pragma once
#include<hgl/graph/RenderNode.h> #include<hgl/graph/RenderNode.h>
#include<hgl/graph/VKVBOList.h> #include<hgl/graph/VKVBOList.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
struct RenderExtraBuffer; struct RenderAssignBuffer;
/** /**
* *
*/ */
class MaterialRenderList class MaterialRenderList
{ {
@ -19,7 +19,7 @@ class MaterialRenderList
private: private:
RenderExtraBuffer *extra_buffer; RenderAssignBuffer *assign_buffer;
struct RenderItem struct RenderItem
{ {

View File

@ -44,7 +44,7 @@ SET(SCENE_GRAPH_HEADER ${SG_INCLUDE_PATH}/SceneInfo.h
SET(SCENE_GRAPH_SOURCE RenderList.cpp SET(SCENE_GRAPH_SOURCE RenderList.cpp
MaterialRenderList.cpp MaterialRenderList.cpp
RenderExtraBuffer.h RenderAssignBuffer.h
SceneNode.cpp SceneNode.cpp
SceneOrient.cpp) SceneOrient.cpp)

View File

@ -3,8 +3,9 @@
#include<hgl/graph/VKDevice.h> #include<hgl/graph/VKDevice.h>
#include<hgl/graph/VKCommandBuffer.h> #include<hgl/graph/VKCommandBuffer.h>
#include<hgl/graph/VKVertexInput.h> #include<hgl/graph/VKVertexInput.h>
#include<hgl/graph/mtl/UBOCommon.h>
#include<hgl/util/sort/Sort.h> #include<hgl/util/sort/Sort.h>
#include"RenderExtraBuffer.h" #include"RenderAssignBuffer.h"
/** /**
* *
@ -60,7 +61,7 @@ MaterialRenderList::MaterialRenderList(GPUDevice *d,Material *m)
device=d; device=d;
cmd_buf=nullptr; cmd_buf=nullptr;
mtl=m; mtl=m;
extra_buffer=nullptr; assign_buffer=nullptr;
vbo_list=new VBOList(mtl->GetVertexInput()->GetCount()); vbo_list=new VBOList(mtl->GetVertexInput()->GetCount());
} }
@ -68,7 +69,7 @@ MaterialRenderList::MaterialRenderList(GPUDevice *d,Material *m)
MaterialRenderList::~MaterialRenderList() MaterialRenderList::~MaterialRenderList()
{ {
SAFE_CLEAR(vbo_list); SAFE_CLEAR(vbo_list);
SAFE_CLEAR(extra_buffer) SAFE_CLEAR(assign_buffer)
} }
void MaterialRenderList::Add(Renderable *ri,const Matrix4f &mat) void MaterialRenderList::Add(Renderable *ri,const Matrix4f &mat)
@ -90,24 +91,24 @@ void MaterialRenderList::End()
if(node_count<=0)return; if(node_count<=0)return;
if(!extra_buffer) if(!assign_buffer)
extra_buffer=new RenderExtraBuffer; assign_buffer=new RenderAssignBuffer;
if(extra_buffer->node_count<node_count) if(assign_buffer->node_count<node_count)
extra_buffer->NodeAlloc(device,node_count); assign_buffer->NodeAlloc(device,node_count);
Stat(); Stat();
//写入LocalToWorld数据 //写入LocalToWorld数据
extra_buffer->WriteLocalToWorld(rn_list.GetData(),node_count); assign_buffer->WriteLocalToWorld(rn_list.GetData(),node_count);
const uint mi_count=mi_set.GetCount(); const uint mi_count=mi_set.GetCount();
if(mi_count<=0)return; if(mi_count<=0)return;
//if(extra_buffer->mi_count<mi_count) //if(assign_buffer->mi_count<mi_count)
// extra_buffer->MIAlloc(device,mi_count,); // assign_buffer->MIAlloc(device,mi_count,);
//extra_buffer->WriteMaterialInstance(rn_list.GetData(),node_count,mi_set); //assign_buffer->WriteMaterialInstance(rn_list.GetData(),node_count,mi_set);
} }
void MaterialRenderList::RenderItem::Set(Renderable *ri) void MaterialRenderList::RenderItem::Set(Renderable *ri)
@ -182,8 +183,8 @@ void MaterialRenderList::Bind(MaterialInstance *mi)
if(assign_binding_count>0) if(assign_binding_count>0)
{ {
mi->BindUBO(DescriptorSetType::PerFrame,"l2w",extra_buffer->assigns_l2w); mi->BindUBO(DescriptorSetType::PerFrame,mtl::SBS_LocalToWorld.name,assign_buffer->assigns_l2w);
// mi->BindUBO(DescriptorSetType::PerFrame,"Assign",extra_buffer->assigns_mi); // mi->BindUBO(DescriptorSetType::PerFrame,"Assign",assign_buffer->assigns_mi);
} }
cmd_buf->BindDescriptorSets(mi->GetMaterial()); cmd_buf->BindDescriptorSets(mi->GetMaterial());
@ -242,7 +243,7 @@ bool MaterialRenderList::Bind(const VertexInputData *vid,const uint ri_index)
// if(l2w_binding_count!=4) // if(l2w_binding_count!=4)
// return(false); // return(false);
// hgl_cpy(buffer_list+count,extra_buffer->l2w_buffer,4); // hgl_cpy(buffer_list+count,assign_buffer->l2w_buffer,4);
// for(uint i=0;i<4;i++) // for(uint i=0;i<4;i++)
// buffer_offset[count+i]=ri_index*16; //mat4每列都是rgba32f自然是16字节 // buffer_offset[count+i]=ri_index*16; //mat4每列都是rgba32f自然是16字节
@ -260,7 +261,7 @@ bool MaterialRenderList::Bind(const VertexInputData *vid,const uint ri_index)
if(assign_binding_count!=1) if(assign_binding_count!=1)
return(false); return(false);
vbo_list->Add(extra_buffer->assigns_vbo->GetBuffer(),extra_buffer->assigns_vbo_strip*ri_index); vbo_list->Add(assign_buffer->assigns_vbo->GetBuffer(),assign_buffer->assigns_vbo_strip*ri_index);
} }
} }

View File

@ -24,7 +24,7 @@ VK_NAMESPACE_BEGIN
/* /*
* *
*/ */
struct RenderExtraBuffer struct RenderAssignBuffer
{ {
uint node_count; ///<渲染节点数量 uint node_count; ///<渲染节点数量
// uint mi_count; ///<材质实例数量 // uint mi_count; ///<材质实例数量
@ -54,12 +54,12 @@ struct RenderExtraBuffer
public: public:
RenderExtraBuffer() RenderAssignBuffer()
{ {
hgl_zero(*this); hgl_zero(*this);
} }
~RenderExtraBuffer() ~RenderAssignBuffer()
{ {
Clear(); Clear();
} }
@ -205,5 +205,5 @@ public:
// //mi_data_buffer->Unmap(); // //mi_data_buffer->Unmap();
// } // }
//} //}
};//struct RenderExtraBuffer };//struct RenderAssignBuffer
VK_NAMESPACE_END VK_NAMESPACE_END