1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-12 13:20:55 +00:00

Revert "Fixes the normals of SphereMesh when the sphere/hemisphere is oblong"

This reverts commit c4d0074aae.

It caused regression #52965.
This commit is contained in:
Rémi Verschelde
2021-09-27 18:18:27 +02:00
parent 9de9994444
commit ac01b1cb1c

View File

@@ -1456,8 +1456,6 @@ void SphereMesh::_create_mesh_array(Array &p_arr) const {
int i, j, prevrow, thisrow, point; int i, j, prevrow, thisrow, point;
float x, y, z; float x, y, z;
float scale = height * (is_hemisphere ? 1.0 : 0.5);
// set our bounding box // set our bounding box
PoolVector<Vector3> points; PoolVector<Vector3> points;
@@ -1481,7 +1479,7 @@ void SphereMesh::_create_mesh_array(Array &p_arr) const {
v /= (rings + 1); v /= (rings + 1);
w = sin(Math_PI * v); w = sin(Math_PI * v);
y = scale * cos(Math_PI * v); y = height * (is_hemisphere ? 1.0 : 0.5) * cos(Math_PI * v);
for (i = 0; i <= radial_segments; i++) { for (i = 0; i <= radial_segments; i++) {
float u = i; float u = i;
@@ -1496,8 +1494,7 @@ void SphereMesh::_create_mesh_array(Array &p_arr) const {
} else { } else {
Vector3 p = Vector3(x * radius * w, y, z * radius * w); Vector3 p = Vector3(x * radius * w, y, z * radius * w);
points.push_back(p); points.push_back(p);
Vector3 normal = Vector3(x * radius * w * scale, y / scale, z * radius * w * scale); normals.push_back(p.normalized());
normals.push_back(normal.normalized());
}; };
ADD_TANGENT(z, 0.0, -x, 1.0) ADD_TANGENT(z, 0.0, -x, 1.0)
uvs.push_back(Vector2(u, v)); uvs.push_back(Vector2(u, v));