From 1d360369c9af325506c4a43e802ed906135483b1 Mon Sep 17 00:00:00 2001 From: atdunbg Date: Sat, 3 Oct 2026 02:27:46 +0800 Subject: [PATCH] =?UTF-8?q?revert:=20=E5=88=A0=E9=99=A4=20SetPlaneLimit=20?= =?UTF-8?q?=E8=A6=86=E7=9B=96=EF=BC=8CGizmo=20=E5=8F=82=E6=95=B0=E4=B8=8E?= =?UTF-8?q?=20Horizon=20=E5=AF=B9=E9=BD=90=EF=BC=88=E5=85=A8=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 对照 Horizon 实现(同官方 ImGuizmo submodule、零定制、Manipulate 全 默认参数)确认库默认行为就是可用的出货行为。0.034 把轴隐藏阈值从 11.5° 抬到 20°,常规视角轴被过早隐藏("箭头又没了");之前 0.35 同 根因。两次阈值折腾全部推翻:自行覆盖库内部可见度参数本身就是错的方向。 --- App/editor/ViewportPanel.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/App/editor/ViewportPanel.cpp b/App/editor/ViewportPanel.cpp index 6ad270c..7a899c4 100644 --- a/App/editor/ViewportPanel.cpp +++ b/App/editor/ViewportPanel.cpp @@ -146,13 +146,9 @@ std::optional ViewportPanel::Draw(const EditorContext &ctx, const ImVec2 mn = ImGui::GetItemRectMin(); ImGuizmo::SetRect(mn.x, mn.y, size.x, size.y); - // 轴可见度阈值:库内轴恒定屏幕尺寸(mGizmoSizeClipSpace - // =0.1),可见判定 = sinθ(轴与视线夹角) > 阈值/0.1。 - // 默认 0.02 ⇒ θ>11.5° 就可见——"有高度差"的正对视角 - // (θ≈15°)轴"看得见但几何上不可操作"(⊥视线轴悬停 - // 失效、∥视线轴拖拽无一阶位移)。取 0.034 ⇒ θ<20° 的 - // 轴隐藏(UE 正对轴隐藏语义),≥20° 正常可拖 - ImGuizmo::SetPlaneLimit(0.034f); + // 不调 SetPlaneLimit/SetAxisLimit——全默认参数,与 + // Horizon 同款(官方库出货行为:轴仅在几乎正对视线 + // 时隐藏,任何自行抬高阈值都会过早藏轴) glm::mat4 m = tr->World(); // 操作空间:local(模型轴,旋转/缩放随物体朝向直观)/