diff --git a/3rdpty/dl_yaml_cpp.sh b/3rdpty/dl_yaml_cpp.sh new file mode 100644 index 00000000..4bdb72fa --- /dev/null +++ b/3rdpty/dl_yaml_cpp.sh @@ -0,0 +1 @@ +git clone https://github.com/jbeder/yaml-cpp.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 94cb03d7..4a1cf849 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,3 +58,4 @@ SET(ULRE ULRE.Base ${Vulkan_LIBRARY}) add_subdirectory(example) +add_executable(WIP WIP.cpp) diff --git a/WIP.cpp b/WIP.cpp new file mode 100644 index 00000000..1799feff --- /dev/null +++ b/WIP.cpp @@ -0,0 +1,16 @@ +2019.05.05 00:27 + + 需建立Mesh类,独立提供数据,但又与Renderable类不同。 + Mesh类提供原始的缓冲区数据与图元类型 + + Renderable提供可供Vulkan使用的缓冲区类型,并且其中可能包含多个MESH的数据 + 比如有多种形状的石头,它们使用了同一种材质,这种情况下多个mesh就可以合并到一个Renderable中,渲染时不再切换VBO。 + + SceneNode提供当前节点的变换矩阵,以及mesh、灯光、摄像机等信息。 + + 工作计划: + + 1.使用yaml保存pipeline信息 + 2.建立scene数据文件。 + scene主体依然使用yaml描述 + mesh,信息使用二进制独立保存 diff --git a/inc/hgl/graph/vulkan/VKRenderable.h b/inc/hgl/graph/vulkan/VKRenderable.h index 659e19c6..023bb75c 100644 --- a/inc/hgl/graph/vulkan/VKRenderable.h +++ b/inc/hgl/graph/vulkan/VKRenderable.h @@ -9,8 +9,9 @@ class VertexBuffer; class IndexBuffer; /** -* 可渲染对象
-* 本对象包含材质实例信息和Mesh信息 + * 可渲染数据对象
+ * 本对象包含材质实例信息和Mesh信息,可渲染数据对象中包含供最终API使用的VBO数据,可能存在多个MESH数据的集合。

+ * 比如有多种形状的石头,它们使用了同一种材质,这种情况下多个mesh就可以合并到一个Renderable中,渲染时不再切换VBO。 */ class Renderable {