From d43a877be1de79aa95fffeb02568f835e5d78655 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Tue, 18 Mar 2025 00:38:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86SceneGraph=E7=9A=84=E7=9B=B8?= =?UTF-8?q?=E5=85=B3.CPP=E6=96=87=E4=BB=B6=E7=9B=AE=E5=BD=95=EF=BC=8C?= =?UTF-8?q?=E7=8E=B0=E9=98=B6=E6=AE=B5=E5=88=86=E7=AB=8Brender/scene?= =?UTF-8?q?=E4=B8=A4=E4=B8=AA=E3=80=82=E6=8E=A5=E4=B8=8B=E6=9D=A5=E5=87=86?= =?UTF-8?q?=E5=A4=87=E5=BB=BA=E7=AB=8BSceneWorld=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E5=86=99=E4=B8=96=E7=95=8C=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/hgl/graph/SceneNode.h | 5 +-- inc/hgl/graph/SceneOrient.h | 4 +- .../graph/{SceneManager.h => SceneWorld.h} | 11 ++--- src/SceneGraph/CMakeLists.txt | 41 ++++++++++--------- .../{ => render}/MaterialRenderList.cpp | 0 .../{ => render}/RenderAssignBuffer.cpp | 0 .../{ => render}/RenderAssignBuffer.h | 0 src/SceneGraph/{ => render}/RenderList.cpp | 0 src/SceneGraph/{ => scene}/SceneFile.cpp | 0 src/SceneGraph/{ => scene}/SceneMatrix.cpp | 0 src/SceneGraph/{ => scene}/SceneNode.cpp | 0 src/SceneGraph/{ => scene}/SceneOrient.cpp | 0 src/SceneGraph/scene/SceneWorld.cpp | 0 13 files changed, 28 insertions(+), 33 deletions(-) rename inc/hgl/graph/{SceneManager.h => SceneWorld.h} (54%) rename src/SceneGraph/{ => render}/MaterialRenderList.cpp (100%) rename src/SceneGraph/{ => render}/RenderAssignBuffer.cpp (100%) rename src/SceneGraph/{ => render}/RenderAssignBuffer.h (100%) rename src/SceneGraph/{ => render}/RenderList.cpp (100%) rename src/SceneGraph/{ => scene}/SceneFile.cpp (100%) rename src/SceneGraph/{ => scene}/SceneMatrix.cpp (100%) rename src/SceneGraph/{ => scene}/SceneNode.cpp (100%) rename src/SceneGraph/{ => scene}/SceneOrient.cpp (100%) create mode 100644 src/SceneGraph/scene/SceneWorld.cpp diff --git a/inc/hgl/graph/SceneNode.h b/inc/hgl/graph/SceneNode.h index 85d30dd4..78ff1fbf 100644 --- a/inc/hgl/graph/SceneNode.h +++ b/inc/hgl/graph/SceneNode.h @@ -1,10 +1,10 @@ -#ifndef HGL_GRAPH_SCENE_NODE_INCLUDE -#define HGL_GRAPH_SCENE_NODE_INCLUDE +#pragma once #include #include #include #include + namespace hgl { namespace graph @@ -111,4 +111,3 @@ namespace hgl SceneNode *Duplication(SceneNode *); ///<复制一个场景节点 }//namespace graph }//namespace hgl -#endif//HGL_GRAPH_SCENE_NODE_INCLUDE diff --git a/inc/hgl/graph/SceneOrient.h b/inc/hgl/graph/SceneOrient.h index b59be7c6..9fcfde07 100644 --- a/inc/hgl/graph/SceneOrient.h +++ b/inc/hgl/graph/SceneOrient.h @@ -1,5 +1,4 @@ -#ifndef HGL_GRAPH_SCENE_ORIENT_INCLUDE -#define HGL_GRAPH_SCENE_ORIENT_INCLUDE +#pragma once #include #include @@ -51,4 +50,3 @@ namespace hgl };//class SceneOrient }//namespace graph }//namespace hgl -#endif//HGL_GRAPH_SCENE_ORIENT_INCLUDE diff --git a/inc/hgl/graph/SceneManager.h b/inc/hgl/graph/SceneWorld.h similarity index 54% rename from inc/hgl/graph/SceneManager.h rename to inc/hgl/graph/SceneWorld.h index 0517c610..092d2489 100644 --- a/inc/hgl/graph/SceneManager.h +++ b/inc/hgl/graph/SceneWorld.h @@ -9,23 +9,18 @@ namespace hgl * 场景管理器
* 管理一个场景中的所有资源与场景节点 */ - class SceneManager + class SceneWorld { SceneNode *root_node; - - public: - SceneNode *GetSceneRoot() {return root_node;} - const SceneNode *GetSceneRoot()const{return root_node;} - - const uint GetNodeCount()const { return node_list.GetCount(); } + public: - };//class SceneManager + };//class SceneWorld }//namespace graph }//namespace hgl diff --git a/src/SceneGraph/CMakeLists.txt b/src/SceneGraph/CMakeLists.txt index 8a8f10b3..d19fe778 100644 --- a/src/SceneGraph/CMakeLists.txt +++ b/src/SceneGraph/CMakeLists.txt @@ -31,7 +31,7 @@ SET(GEOMETRY_FILES ${SG_INCLUDE_PATH}/InlineGeometry.h #${SG_INCLUDE_PATH}/Mesh.h #${SG_INCLUDE_PATH}/Spline.h InlineGeometry.cpp - #Mesh.cpp + #Mesh.cpp ) SOURCE_GROUP("Geometry" FILES ${GEOMETRY_FILES}) @@ -69,28 +69,32 @@ SET(GRAPH_FRAMEWORK_FILES ${SG_INCLUDE_PATH}/RenderFramework.h source_group("Framework" FILES ${GRAPH_FRAMEWORK_FILES}) -SET(SCENE_GRAPH_HEADER ${SG_INCLUDE_PATH}/SceneManager.h - ${SG_INCLUDE_PATH}/SceneNodeAttributes.h - ${SG_INCLUDE_PATH}/SceneNode.h - ${SG_INCLUDE_PATH}/ShadowPolicy.h - ${SG_INCLUDE_PATH}/RenderNode.h - ${SG_INCLUDE_PATH}/SceneMatrix.h - ${SG_INCLUDE_PATH}/SceneOrient.h +SET(SG_SCENE_SOURCE ${SG_INCLUDE_PATH}/SceneWorld.h + ${SG_INCLUDE_PATH}/SceneNodeAttributes.h + ${SG_INCLUDE_PATH}/SceneNode.h + ${SG_INCLUDE_PATH}/SceneMatrix.h + ${SG_INCLUDE_PATH}/SceneOrient.h + Scene/SceneNode.cpp + Scene/SceneOrient.cpp + Scene/SceneMatrix.cpp + Scene/SceneWorld.cpp +) + +SET(SG_RENDER_SOURCE ${SG_INCLUDE_PATH}/RenderNode.h ${SG_INCLUDE_PATH}/RenderList.h ${SG_INCLUDE_PATH}/MaterialRenderList.h ${SG_INCLUDE_PATH}/MaterialRenderMap.h +# ${SG_INCLUDE_PATH}/ShadowPolicy.h + render/RenderList.cpp + render/MaterialRenderList.cpp + render/RenderAssignBuffer.h + render/RenderAssignBuffer.cpp ) -SET(SCENE_GRAPH_SOURCE RenderList.cpp - MaterialRenderList.cpp - RenderAssignBuffer.h - RenderAssignBuffer.cpp - SceneNode.cpp - SceneOrient.cpp - SceneMatrix.cpp -) +SOURCE_GROUP("Scene Graph\\Scene" FILES ${SG_SCENE_SOURCE}) +SOURCE_GROUP("Scene Graph\\Render" FILES ${SG_RENDER_SOURCE}) -SOURCE_GROUP("Scene Graph" FILES ${SCENE_GRAPH_HEADER} ${SCENE_GRAPH_SOURCE}) +SET(SCENE_GRAPH_FILES ${SG_SCENE_SOURCE} ${SG_RENDER_SOURCE}) SET(STATIC_MESH_HEADER_FILES ${SG_INCLUDE_PATH}/StaticMesh.h ${SG_INCLUDE_PATH}/StaticMeshLODPolicy.h) @@ -355,8 +359,7 @@ SET(VULKAN_RENDER_SOURCE ${VK_RR_SOURCE} ${VK_RENDERABLE_SOURCE} ${VK_RENDER_DEVICE_SOURCE}) -add_cm_library(ULRE.SceneGraph "ULRE" ${SCENE_GRAPH_HEADER} - ${SCENE_GRAPH_SOURCE} +add_cm_library(ULRE.SceneGraph "ULRE" ${SCENE_GRAPH_FILES} ${SG_PRIMITIVE_SOURCE} ${GEOMETRY_FILES} ${LIGHT_FILES} diff --git a/src/SceneGraph/MaterialRenderList.cpp b/src/SceneGraph/render/MaterialRenderList.cpp similarity index 100% rename from src/SceneGraph/MaterialRenderList.cpp rename to src/SceneGraph/render/MaterialRenderList.cpp diff --git a/src/SceneGraph/RenderAssignBuffer.cpp b/src/SceneGraph/render/RenderAssignBuffer.cpp similarity index 100% rename from src/SceneGraph/RenderAssignBuffer.cpp rename to src/SceneGraph/render/RenderAssignBuffer.cpp diff --git a/src/SceneGraph/RenderAssignBuffer.h b/src/SceneGraph/render/RenderAssignBuffer.h similarity index 100% rename from src/SceneGraph/RenderAssignBuffer.h rename to src/SceneGraph/render/RenderAssignBuffer.h diff --git a/src/SceneGraph/RenderList.cpp b/src/SceneGraph/render/RenderList.cpp similarity index 100% rename from src/SceneGraph/RenderList.cpp rename to src/SceneGraph/render/RenderList.cpp diff --git a/src/SceneGraph/SceneFile.cpp b/src/SceneGraph/scene/SceneFile.cpp similarity index 100% rename from src/SceneGraph/SceneFile.cpp rename to src/SceneGraph/scene/SceneFile.cpp diff --git a/src/SceneGraph/SceneMatrix.cpp b/src/SceneGraph/scene/SceneMatrix.cpp similarity index 100% rename from src/SceneGraph/SceneMatrix.cpp rename to src/SceneGraph/scene/SceneMatrix.cpp diff --git a/src/SceneGraph/SceneNode.cpp b/src/SceneGraph/scene/SceneNode.cpp similarity index 100% rename from src/SceneGraph/SceneNode.cpp rename to src/SceneGraph/scene/SceneNode.cpp diff --git a/src/SceneGraph/SceneOrient.cpp b/src/SceneGraph/scene/SceneOrient.cpp similarity index 100% rename from src/SceneGraph/SceneOrient.cpp rename to src/SceneGraph/scene/SceneOrient.cpp diff --git a/src/SceneGraph/scene/SceneWorld.cpp b/src/SceneGraph/scene/SceneWorld.cpp new file mode 100644 index 00000000..e69de29b