From 7828468547a4ef8cd0b3b98cfe7cbd4fc3533b81 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Fri, 12 Jun 2020 15:53:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9BCameraAppFramework=E4=B8=AD?= =?UTF-8?q?=E5=AF=B9=E7=9B=B8=E6=9C=BA=E7=9F=A9=E9=98=B5=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84=E7=AE=A1=E7=90=86=EF=BC=8C=E4=BD=BF=E4=B9=8B=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E7=BB=91=E5=AE=9A=E5=88=B0=E5=A4=9A=E4=B8=AA=E6=9D=90?= =?UTF-8?q?=E8=B4=A8=E3=80=82=20=E5=9B=A0=E6=AD=A4=E4=BF=AE=E6=AD=A3Geomet?= =?UTF-8?q?ry3D=E6=8E=A5=E6=94=B6=E8=BE=93=E5=85=A5=E6=97=A0=E6=95=88?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/Vulkan/Geometry3D.cpp | 14 +++++++------- example/Vulkan/VulkanAppFramework.h | 15 +++++++-------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/example/Vulkan/Geometry3D.cpp b/example/Vulkan/Geometry3D.cpp index 6962356b..53cf534d 100644 --- a/example/Vulkan/Geometry3D.cpp +++ b/example/Vulkan/Geometry3D.cpp @@ -10,8 +10,8 @@ using namespace hgl; using namespace hgl::graph; -constexpr uint32_t SCREEN_WIDTH=128; -constexpr uint32_t SCREEN_HEIGHT=128; +constexpr uint32_t SCREEN_WIDTH=1280; +constexpr uint32_t SCREEN_HEIGHT=720; class TestApp:public CameraAppFramework { @@ -52,7 +52,7 @@ private: bool InitUBO(MDP *mdp) { - if(!InitCameraUBO(mdp->material_instance,"world")) + if(!mdp->material_instance->BindUBO("world",GetCameraMatrixBuffer())) return(false); mdp->material_instance->Update(); @@ -150,12 +150,12 @@ public: if(!CameraAppFramework::Init(SCREEN_WIDTH,SCREEN_HEIGHT)) return(false); - if(!InitMDP(&m3d,PRIM_LINES,OS_TEXT("res/shader/PositionColor3D.vert.spv"), - OS_TEXT("res/shader/VertexColor.frag.spv"))) + if(!InitMDP(&m3d,PRIM_LINES,OS_TEXT("res/shader/PositionColor3D.vert"), + OS_TEXT("res/shader/VertexColor.frag"))) return(false); - if(!InitMDP(&m2d,PRIM_TRIANGLE_FAN, OS_TEXT("res/shader/OnlyPosition.vert.spv"), - OS_TEXT("res/shader/FlatColor.frag.spv"))) + if(!InitMDP(&m2d,PRIM_TRIANGLE_FAN, OS_TEXT("res/shader/OnlyPosition.vert"), + OS_TEXT("res/shader/FlatColor.frag"))) return(false); { diff --git a/example/Vulkan/VulkanAppFramework.h b/example/Vulkan/VulkanAppFramework.h index 4677b62c..f48e050a 100644 --- a/example/Vulkan/VulkanAppFramework.h +++ b/example/Vulkan/VulkanAppFramework.h @@ -112,7 +112,7 @@ public: cili.khronos.validation = true; cili.RenderDoc.Capture = true; - inst=vulkan::CreateInstance(U8_TEXT("VulkanTest")); + inst=vulkan::CreateInstance(U8_TEXT("VulkanTest"),nullptr,&cili); if(!inst) return(false); @@ -304,12 +304,16 @@ public: camera.type=CameraType::Perspective; camera.width=w; camera.height=h; + camera.vp_width=w; + camera.vp_height=h; camera.center.Set(0,0,0,1); camera.eye.Set(100,100,100,1); //xyz三个值不要一样,以方便调试 camera.znear=16; camera.zfar=256; camera.Refresh(); //更新矩阵计算 + + ubo_world_matrix=db->CreateUBO(sizeof(WorldMatrix),&camera.matrix); } void Resize(int w,int h)override @@ -318,14 +322,9 @@ public: camera.height=h; } - bool InitCameraUBO(vulkan::MaterialInstance *mi,const UTF8String &node_name) + vulkan::Buffer *GetCameraMatrixBuffer() { - ubo_world_matrix=db->CreateUBO(sizeof(WorldMatrix),&camera.matrix); - - if(!ubo_world_matrix) - return(false); - - return mi->BindUBO(node_name,ubo_world_matrix); + return ubo_world_matrix; } virtual void BuildCommandBuffer(uint32_t index)=0;