Skip to main content
deleted 1 character in body
Source Link
Gordon Brinkmann
  • 33k
  • 1
  • 25
  • 56

There are two things you have to understand: 1. how the Relative Offset in the Array modifier works and 2. what symmetry is and why this is not necessarily helpful in this case.

First of all, let's say this is the cliff object in top down view. It is symmetrical, so the left and right side are mirrored. And the rectangle around it is its bounding box, i.e. its maximum dimensions in X, Y and Z direction.

top down view of cliff

Now if you add an Array modifier and set the Relative Offset to a Factor X of 1, this means add a duplicate at a distance of exactly 1× the overall width of the object (the width of its bounding box). Since not all parts of the objectsobject extend as far as the maximum width, the duplicate touches the original only on its outmost vertices, leaving a gap in the other parts.

gap between instances

And this already shows why symmetry does not work here: when the left and right side are mirrored to each other, they do not fit seamlessly. Instead they should be counterparts to each other. But even when you make one side the counterpart of the other, you will still have gaps with the Relative Offset. In this example the instances do not even touch at all, since the most indented part on one side is the most bulged part on the other and vice versa.

counterpart sides

So to make arrays of objects like this one seamless, you have to offset them less than their complete width and make them overlap. This can be achieved by a Relative Offset of less than 1 or instead you choose a Constant Offset of a specific distance. In both cases it is best if you knew the distance from a vertex on one side to its counterpart on the other side. If you want to use the Relative Offset, you also need the width of the bounding box.

Below I show both methods: the distance between two corresponding vertices is 7.9834 m, so this value needs to be put in the Distance X field for a Constant Offset. To use the Relative Offset you need the vertex distance divided by the bounding box size, in this example it's 7.9834 / 8.21 ≈ 0.9724 which is then used as Factor X.

overlapping array

But as long as you do not have very exact values both methods are subject to rounding errors, which might not be relevant for a few instances, but the more you have the more problematic they might become. So the easiest and most exact way would be if the sides were completely flat with all vertices at the same X position. Then you can use a Relative Offset of 1 and it will match without gaps. This would actually be the thing I would suggest first and foremost, the previous explanations are just to show you why and how you have issues with what you did.

flat sides

Now, finally: to avoid any messy geometry with interior faces, I would stronlgy recommend you leave the sides where the array instances are connected open. The other thing is: your cliff mesh does not have to be symmetric at all. When you symmetrize it, the complete left and right side are the same, just mirrored, which might look not very naturally. But to seamlessly merge the array instances, only their border edges which make the connection have to be matching (the selected ones in the image below). Inbetween the mesh needs no symmetry unless you want that.

border edges

There are two things you have to understand: 1. how the Relative Offset in the Array modifier works and 2. what symmetry is and why this is not necessarily helpful in this case.

First of all, let's say this is the cliff object in top down view. It is symmetrical, so the left and right side are mirrored. And the rectangle around it is its bounding box, i.e. its maximum dimensions in X, Y and Z direction.

top down view of cliff

Now if you add an Array modifier and set the Relative Offset to a Factor X of 1, this means add a duplicate at a distance of exactly 1× the overall width of the object (the width of its bounding box). Since not all parts of the objects extend as far as the maximum width, the duplicate touches the original only on its outmost vertices, leaving a gap in the other parts.

gap between instances

And this already shows why symmetry does not work here: when the left and right side are mirrored to each other, they do not fit seamlessly. Instead they should be counterparts to each other. But even when you make one side the counterpart of the other, you will still have gaps with the Relative Offset. In this example the instances do not even touch at all, since the most indented part on one side is the most bulged part on the other and vice versa.

counterpart sides

So to make arrays of objects like this one seamless, you have to offset them less than their complete width and make them overlap. This can be achieved by a Relative Offset of less than 1 or instead you choose a Constant Offset of a specific distance. In both cases it is best if you knew the distance from a vertex on one side to its counterpart on the other side. If you want to use the Relative Offset, you also need the width of the bounding box.

Below I show both methods: the distance between two corresponding vertices is 7.9834 m, so this value needs to be put in the Distance X field for a Constant Offset. To use the Relative Offset you need the vertex distance divided by the bounding box size, in this example it's 7.9834 / 8.21 ≈ 0.9724 which is then used as Factor X.

overlapping array

But as long as you do not have very exact values both methods are subject to rounding errors, which might not be relevant for a few instances, but the more you have the more problematic they might become. So the easiest and most exact way would be if the sides were completely flat with all vertices at the same X position. Then you can use a Relative Offset of 1 and it will match without gaps. This would actually be the thing I would suggest first and foremost, the previous explanations are just to show you why and how you have issues with what you did.

flat sides

Now, finally: to avoid any messy geometry with interior faces, I would stronlgy recommend you leave the sides where the array instances are connected open. The other thing is: your cliff mesh does not have to be symmetric at all. When you symmetrize it, the complete left and right side are the same, just mirrored, which might look not very naturally. But to seamlessly merge the array instances, only their border edges which make the connection have to be matching (the selected ones in the image below). Inbetween the mesh needs no symmetry unless you want that.

border edges

There are two things you have to understand: 1. how the Relative Offset in the Array modifier works and 2. what symmetry is and why this is not necessarily helpful in this case.

First of all, let's say this is the cliff object in top down view. It is symmetrical, so the left and right side are mirrored. And the rectangle around it is its bounding box, i.e. its maximum dimensions in X, Y and Z direction.

top down view of cliff

Now if you add an Array modifier and set the Relative Offset to a Factor X of 1, this means add a duplicate at a distance of exactly 1× the overall width of the object (the width of its bounding box). Since not all parts of the object extend as far as the maximum width, the duplicate touches the original only on its outmost vertices, leaving a gap in the other parts.

gap between instances

And this already shows why symmetry does not work here: when the left and right side are mirrored to each other, they do not fit seamlessly. Instead they should be counterparts to each other. But even when you make one side the counterpart of the other, you will still have gaps with the Relative Offset. In this example the instances do not even touch at all, since the most indented part on one side is the most bulged part on the other and vice versa.

counterpart sides

So to make arrays of objects like this one seamless, you have to offset them less than their complete width and make them overlap. This can be achieved by a Relative Offset of less than 1 or instead you choose a Constant Offset of a specific distance. In both cases it is best if you knew the distance from a vertex on one side to its counterpart on the other side. If you want to use the Relative Offset, you also need the width of the bounding box.

Below I show both methods: the distance between two corresponding vertices is 7.9834 m, so this value needs to be put in the Distance X field for a Constant Offset. To use the Relative Offset you need the vertex distance divided by the bounding box size, in this example it's 7.9834 / 8.21 ≈ 0.9724 which is then used as Factor X.

overlapping array

But as long as you do not have very exact values both methods are subject to rounding errors, which might not be relevant for a few instances, but the more you have the more problematic they might become. So the easiest and most exact way would be if the sides were completely flat with all vertices at the same X position. Then you can use a Relative Offset of 1 and it will match without gaps. This would actually be the thing I would suggest first and foremost, the previous explanations are just to show you why and how you have issues with what you did.

flat sides

Now, finally: to avoid any messy geometry with interior faces, I would stronlgy recommend you leave the sides where the array instances are connected open. The other thing is: your cliff mesh does not have to be symmetric at all. When you symmetrize it, the complete left and right side are the same, just mirrored, which might look not very naturally. But to seamlessly merge the array instances, only their border edges which make the connection have to be matching (the selected ones in the image below). Inbetween the mesh needs no symmetry unless you want that.

border edges

Source Link
Gordon Brinkmann
  • 33k
  • 1
  • 25
  • 56

There are two things you have to understand: 1. how the Relative Offset in the Array modifier works and 2. what symmetry is and why this is not necessarily helpful in this case.

First of all, let's say this is the cliff object in top down view. It is symmetrical, so the left and right side are mirrored. And the rectangle around it is its bounding box, i.e. its maximum dimensions in X, Y and Z direction.

top down view of cliff

Now if you add an Array modifier and set the Relative Offset to a Factor X of 1, this means add a duplicate at a distance of exactly 1× the overall width of the object (the width of its bounding box). Since not all parts of the objects extend as far as the maximum width, the duplicate touches the original only on its outmost vertices, leaving a gap in the other parts.

gap between instances

And this already shows why symmetry does not work here: when the left and right side are mirrored to each other, they do not fit seamlessly. Instead they should be counterparts to each other. But even when you make one side the counterpart of the other, you will still have gaps with the Relative Offset. In this example the instances do not even touch at all, since the most indented part on one side is the most bulged part on the other and vice versa.

counterpart sides

So to make arrays of objects like this one seamless, you have to offset them less than their complete width and make them overlap. This can be achieved by a Relative Offset of less than 1 or instead you choose a Constant Offset of a specific distance. In both cases it is best if you knew the distance from a vertex on one side to its counterpart on the other side. If you want to use the Relative Offset, you also need the width of the bounding box.

Below I show both methods: the distance between two corresponding vertices is 7.9834 m, so this value needs to be put in the Distance X field for a Constant Offset. To use the Relative Offset you need the vertex distance divided by the bounding box size, in this example it's 7.9834 / 8.21 ≈ 0.9724 which is then used as Factor X.

overlapping array

But as long as you do not have very exact values both methods are subject to rounding errors, which might not be relevant for a few instances, but the more you have the more problematic they might become. So the easiest and most exact way would be if the sides were completely flat with all vertices at the same X position. Then you can use a Relative Offset of 1 and it will match without gaps. This would actually be the thing I would suggest first and foremost, the previous explanations are just to show you why and how you have issues with what you did.

flat sides

Now, finally: to avoid any messy geometry with interior faces, I would stronlgy recommend you leave the sides where the array instances are connected open. The other thing is: your cliff mesh does not have to be symmetric at all. When you symmetrize it, the complete left and right side are the same, just mirrored, which might look not very naturally. But to seamlessly merge the array instances, only their border edges which make the connection have to be matching (the selected ones in the image below). Inbetween the mesh needs no symmetry unless you want that.

border edges