diff --git a/scene/resources/surface_tool.cpp b/scene/resources/surface_tool.cpp index 653f234d3dc..f51d8dd0bf1 100644 --- a/scene/resources/surface_tool.cpp +++ b/scene/resources/surface_tool.cpp @@ -880,9 +880,9 @@ void SurfaceTool::create_vertex_array_from_triangle_arrays(const Array &p_arrays v.normal = narr[i]; } if (lformat & RS::ARRAY_FORMAT_TANGENT) { - Plane p(tarr[i * 4 + 0], tarr[i * 4 + 1], tarr[i * 4 + 2], tarr[i * 4 + 3]); - v.tangent = p.normal; - v.binormal = p.normal.cross(v.tangent).normalized() * p.d; + v.tangent = Vector3(tarr[i * 4 + 0], tarr[i * 4 + 1], tarr[i * 4 + 2]); + float d = tarr[i * 4 + 3]; + v.binormal = v.normal.cross(v.tangent).normalized() * d; } if (lformat & RS::ARRAY_FORMAT_COLOR) { v.color = carr[i]; diff --git a/servers/rendering_server.cpp b/servers/rendering_server.cpp index 6e9b525f31c..d1c3aaf6f75 100644 --- a/servers/rendering_server.cpp +++ b/servers/rendering_server.cpp @@ -340,7 +340,7 @@ void _get_axis_angle(const Vector3 &p_normal, const Vector4 &p_tangent, float &r if (d < 0.0) { r_angle = CLAMP((1.0 - r_angle / Math_PI) * 0.5, 0.0, 0.49999); } else { - r_angle = (r_angle / Math_PI) * 0.5 + 0.5; + r_angle = CLAMP((r_angle / Math_PI) * 0.5 + 0.5, 0.500008, 1.0); } }