You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Fixes how transform is applied to geometry in UV unwrap
This commit is contained in:
@@ -849,15 +849,15 @@ void ResourceImporterScene::_find_meshes(Node *p_node, Map<Ref<ArrayMesh>, Trans
|
|||||||
|
|
||||||
if (mesh.is_valid() && !meshes.has(mesh)) {
|
if (mesh.is_valid() && !meshes.has(mesh)) {
|
||||||
Spatial *s = mi;
|
Spatial *s = mi;
|
||||||
while (s->get_parent_spatial()) {
|
Transform transform;
|
||||||
|
while (s) {
|
||||||
|
transform = transform * s->get_transform();
|
||||||
s = s->get_parent_spatial();
|
s = s->get_parent_spatial();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s == mi) {
|
meshes[mesh] = transform;
|
||||||
meshes[mesh] = s->get_transform();
|
|
||||||
} else {
|
print_line("mesh transform: " + meshes[mesh]);
|
||||||
meshes[mesh] = s->get_transform() * mi->get_relative_transform(s);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int i = 0; i < p_node->get_child_count(); i++) {
|
for (int i = 0; i < p_node->get_child_count(); i++) {
|
||||||
|
|||||||
@@ -1111,13 +1111,14 @@ Error ArrayMesh::lightmap_unwrap(const Transform &p_base_transform, float p_texe
|
|||||||
for (int j = 0; j < vc; j++) {
|
for (int j = 0; j < vc; j++) {
|
||||||
|
|
||||||
Vector3 v = p_base_transform.xform(r[j]);
|
Vector3 v = p_base_transform.xform(r[j]);
|
||||||
|
Vector3 n = p_base_transform.basis.xform(rn[j]).normalized();
|
||||||
|
|
||||||
vertices[(j + vertex_ofs) * 3 + 0] = v.x;
|
vertices[(j + vertex_ofs) * 3 + 0] = v.x;
|
||||||
vertices[(j + vertex_ofs) * 3 + 1] = v.y;
|
vertices[(j + vertex_ofs) * 3 + 1] = v.y;
|
||||||
vertices[(j + vertex_ofs) * 3 + 2] = v.z;
|
vertices[(j + vertex_ofs) * 3 + 2] = v.z;
|
||||||
normals[(j + vertex_ofs) * 3 + 0] = rn[j].x;
|
normals[(j + vertex_ofs) * 3 + 0] = n.x;
|
||||||
normals[(j + vertex_ofs) * 3 + 1] = rn[j].y;
|
normals[(j + vertex_ofs) * 3 + 1] = n.y;
|
||||||
normals[(j + vertex_ofs) * 3 + 2] = rn[j].z;
|
normals[(j + vertex_ofs) * 3 + 2] = n.z;
|
||||||
uv_index[j + vertex_ofs] = Pair<int, int>(i, j);
|
uv_index[j + vertex_ofs] = Pair<int, int>(i, j);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user