From 8dca542974de0e9a829beeafc252e75f0c3391ef Mon Sep 17 00:00:00 2001 From: hyzboy Date: Fri, 12 Jul 2019 10:13:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=A9=E9=98=B5=E5=A4=84=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=9D=9E=E5=B8=B8=E9=87=8D=E8=A6=81=E7=9A=84=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/Vulkan/VulkanAppFramework.h | 2 -- inc/hgl/math/Matrix.h | 4 ++++ src/SceneGraph/Camera.cpp | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/example/Vulkan/VulkanAppFramework.h b/example/Vulkan/VulkanAppFramework.h index e3a95b01..82afec6c 100644 --- a/example/Vulkan/VulkanAppFramework.h +++ b/example/Vulkan/VulkanAppFramework.h @@ -277,8 +277,6 @@ public: camera.height=h; camera.center.Set(0,0,0,1); camera.eye.Set(100,100,0,1); //xyz三个值不要一样,以方便调试 - camera.znear=0.01f; - camera.zfar=1024; camera.Refresh(); //更新矩阵计算 } diff --git a/inc/hgl/math/Matrix.h b/inc/hgl/math/Matrix.h index 40072335..098ffac4 100644 --- a/inc/hgl/math/Matrix.h +++ b/inc/hgl/math/Matrix.h @@ -94,6 +94,10 @@ namespace hgl f / aspect_ratio, 0.0f, 0.0f, 0.0f, 0.0f, -f, 0.0f, 0.0f, 0.0f, 0.0f, zfar / (znear - zfar), (znear * zfar) / (znear - zfar), + // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + // 某些引擎这两项会乘0.5,那是因为他们是 -1 to 1 的Z值设定,而我们是0 to 1,所以这里不用乘 + // 同理,camera的znear必须为无限接近0的正数,zfar为一个较大的正数,默认使用0.01/1024 + 0.0f, 0.0f, -1.0f, 0.0f); } diff --git a/src/SceneGraph/Camera.cpp b/src/SceneGraph/Camera.cpp index 22356b16..2c27769f 100644 --- a/src/SceneGraph/Camera.cpp +++ b/src/SceneGraph/Camera.cpp @@ -20,6 +20,8 @@ namespace hgl nup.x, nup.y, nup.z, 0.0f, -forward.x, -forward.y, -forward.z/2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f); + // ^^^^^^ + // 某些引擎此项为0.5,这个会影响最终输出的z值,但我们这里必须为0 return result*translate(-eye.xyz()); }