From 1d81121d305ddb62804bcda497124d38e9f163d3 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Tue, 18 Jan 2022 12:10:02 +0800 Subject: [PATCH] used Vector3f instead Vector4f because noramlized(Vector3f) != normalized(Vector4f) --- CMCore | 2 +- CMSceneGraph | 2 +- example/Vulkan/Cubemap.cpp | 13 +++++++++---- example/Vulkan/Geometry3D.cpp | 18 ++++++------------ example/common/VulkanAppFramework.h | 9 ++++----- inc/hgl/graph/RenderNode.h | 2 +- inc/hgl/graph/SceneInfo.h | 18 +++++++++--------- res | 2 +- 8 files changed, 32 insertions(+), 34 deletions(-) diff --git a/CMCore b/CMCore index cb9f4430..caaefe20 160000 --- a/CMCore +++ b/CMCore @@ -1 +1 @@ -Subproject commit cb9f4430091567f00b26d6064dd85ffcbcef0522 +Subproject commit caaefe206bcea74aa1e4ed6f3fd7e8dec1b1ab45 diff --git a/CMSceneGraph b/CMSceneGraph index 729f752d..6b739c91 160000 --- a/CMSceneGraph +++ b/CMSceneGraph @@ -1 +1 @@ -Subproject commit 729f752d7cd93593ec59b5adaa2f981571253dc2 +Subproject commit 6b739c9105ba9767c4bcc14ee9cbf044b9537240 diff --git a/example/Vulkan/Cubemap.cpp b/example/Vulkan/Cubemap.cpp index 1d2961dd..9fc4c7be 100644 --- a/example/Vulkan/Cubemap.cpp +++ b/example/Vulkan/Cubemap.cpp @@ -1,5 +1,5 @@ -// Cubemap -// CubeÌùͼ²âÊÔ +// Cubemap +// Cube贴图测试 #include"VulkanAppFramework.h" #include @@ -121,7 +121,7 @@ private: envmap_mi=db->CreateMaterialInstance(envmap_material); if(!envmap_mi)return(false); - { + { MaterialParameters *mp_texture=envmap_mi->GetMP(DescriptorSetsType::Value); if(!mp_texture) @@ -200,7 +200,12 @@ public: if(!CameraAppFramework::Init(SCREEN_WIDTH,SCREEN_HEIGHT)) return(false); - render_list=new RenderList(device); + camera->pos=Vector3f(10,10,0); + camera->target=Vector3f(0,0,0); + + camera->Refresh(); //更新矩阵计算 + + render_list=new RenderList(device); if(!InitMaterial()) return(false); diff --git a/example/Vulkan/Geometry3D.cpp b/example/Vulkan/Geometry3D.cpp index ce00fa32..fffa5a8c 100644 --- a/example/Vulkan/Geometry3D.cpp +++ b/example/Vulkan/Geometry3D.cpp @@ -44,17 +44,6 @@ private: if(!pipeline) return(false); - { - MaterialParameters *mp_global=material_instance->GetMP(DescriptorSetsType::Global); - - if(!mp_global) - return(false); - - if(!mp_global->BindUBO("g_camera",GetCameraInfoBuffer()))return(false); - - mp_global->Update(); - } - return(true); } @@ -98,7 +87,6 @@ private: pgci.side_color.Set(0,0,1,1); ro_plane_grid[2]=CreateRenderablePlaneGrid(db,vab,&pgci); - camera->pos=Vector4f(200,200,200,1.0); } bool InitScene() @@ -107,6 +95,9 @@ private: Add(ro_plane_grid[1],rotate(HGL_RAD_90,0,1,0)); Add(ro_plane_grid[2],rotate(HGL_RAD_90,1,0,0)); + camera->pos=Vector3f(200,200,200); + camera->Refresh(); + render_root.RefreshMatrix(); render_list->Expend(camera->info,&render_root); @@ -140,6 +131,9 @@ public: void BuildCommandBuffer(uint32 index) { + render_root.RefreshMatrix(); + render_list->Expend(GetCameraInfo(),&render_root); + VulkanApplicationFramework::BuildCommandBuffer(index,render_list); } diff --git a/example/common/VulkanAppFramework.h b/example/common/VulkanAppFramework.h index a5dee649..4c5e2ef5 100644 --- a/example/common/VulkanAppFramework.h +++ b/example/common/VulkanAppFramework.h @@ -333,7 +333,6 @@ public: { camera=new WalkerCamera; - camera->type=CameraType::Perspective; camera->width=w; camera->height=h; camera->vp_width=w; @@ -396,12 +395,12 @@ public: SubmitDraw(index); - if(isPush(KeyboardButton::W ))camera->Up (move_speed);else - if(isPush(KeyboardButton::S ))camera->Down (move_speed);else + if(isPush(KeyboardButton::W ))camera->Forward (move_speed);else + if(isPush(KeyboardButton::S ))camera->Backward (move_speed);else if(isPush(KeyboardButton::A ))camera->Left (move_speed);else if(isPush(KeyboardButton::D ))camera->Right (move_speed);else - if(isPush(KeyboardButton::R ))camera->Forward (move_speed);else - if(isPush(KeyboardButton::F ))camera->Backward (move_speed);else + if(isPush(KeyboardButton::R ))camera->Up (move_speed);else + if(isPush(KeyboardButton::F ))camera->Down (move_speed);else if(isPush(KeyboardButton::Left ))camera->HoriRotate( move_speed);else if(isPush(KeyboardButton::Right ))camera->HoriRotate(-move_speed);else diff --git a/inc/hgl/graph/RenderNode.h b/inc/hgl/graph/RenderNode.h index 62c3aa09..6f6965b2 100644 --- a/inc/hgl/graph/RenderNode.h +++ b/inc/hgl/graph/RenderNode.h @@ -14,7 +14,7 @@ namespace hgl { MVPMatrix matrix; - Vector4f WorldCenter; + Vector3f WorldCenter; float distance_to_camera_square; // float distance_to_camera; diff --git a/inc/hgl/graph/SceneInfo.h b/inc/hgl/graph/SceneInfo.h index ac1d3315..b23be4c2 100644 --- a/inc/hgl/graph/SceneInfo.h +++ b/inc/hgl/graph/SceneInfo.h @@ -12,21 +12,21 @@ namespace hgl */ struct MVPMatrix { - Matrix4f l2w; ///< Local to World - //Matrix4f normal; ///