Crocotile 3D

Crocotile 3D

Not enough ratings
Rounding Corners in Crocotile 3D
By Luke Puke
Learn how to round corners of your Crocotile 3D models!
   
Award
Favorite
Favorited
Unfavorite
[Introduction]
It's easy to create round corners in Crocotile 3D.

Place a disk [SK: 1]. Delete unnecessary tiles to create the desired roundness. Continue the corner sides.

ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ



Place a cylinder. Delete unnecessary tiles to create the desired roundness. Continue the corner sides.


ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ



Place a sphere. Delete unnecessary tiles to create the desired roundness. Continue the corner sides.


ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ


Use Primitives tool, place primitive meshes, delete unnecessary tiles to create the desired roundness, continue corner sides. It is very simple!



This guide is not about creating round corners. It is about rounding given corners.

This guide is about turning corners on the left into the corners on the right:







Why would you want to round an already existing corner instead of creating a round one from scratch? Because you might want to add roundness to something that you have already created. Instead of building around roundness, you will be able to add roundness where you please.

The guide assumes that the reader has some knowledge of Crocotile 3D and its functions. It is recommended for the reader to be familiar with the Align Functions and theories presented in the guide "Constructing Round Primitives in Crocotile 3D".

If you are stuck for some reason, check out the [Supplementary Knowledge] section. Throughout the guide you will see annotation [SK: #]. This annotation indicates that you can find help to the topic being discussed in the Supplementary Knowledge section and that it is under a certain number.

If that does not help, leave a comment here or in the official Crocotile 3D Discord channel. The best solution is to experiment on your own, though.

Enjoy!
[Corner Classification]
The guide proposes the following corner classification:

Circular:


Cylindrical:


Sphrerical:


Multicircle (double):


Multicircle (tripple):


Angles:
Right angles are always equal to 90 degrees. Oblique angles are any non-90 degree angle.
[Terms Clarification]
Corner tiles - tiles that form the corner you wish to round.


Roundness - area where the corner is rounded.


The central point - when referred to in the context of a disk or a quarter, is the vertex that all the tiles of the disk or quarter share.




Apex Vertex of a Sphere/Hemisphere - a vertex of a sphere/hemisphere that is shared by all the topmost tiles. It appears as the uppermost vertex of a sphere created using the Primitives tool.




Intersecting vertex of a corner - a vertex that all corner tiles share.


━━━━━━━━━━━━━━━━━━━
ㅤ│Circular: Right angle Corner


The corresponding edges are assumed to be equal.


Measure the length of either of the corresponding edges [SK: 4].


Place a disk [SK: 1] of an appropriate size [SK: 2].


Align vertices of the disk with the invisible plane [SK: 3].




Remove tiles from the disk, leaving only a quarter of its original size.


Copy and paste the quarter to the corner.


Adjust the overlapping vertices to the roundness [SK: 4].
ㅤ│Circular: Right angle Corner (unequal sides)


The corresponding edges are assumed to be unequal.


Measure the length of either of the corresponding edges [SK: 4].


Place a disk [SK: 1] of an appropriate size [SK: 2].


Align vertices of the disk with the invisible plane [SK: 3].




Remove tiles from the disk, leaving only a quarter of its original size.


Copy the quarter by its central point and paste it to the intersecting vertex of the corner.


Adjust vertices to the roundness [SK: 5].




Select every tile of the quarter and activate the Gizmo if it's not already active.


Place the Gizmo crosshair on the central point of the quarter (hover the mouse cursor over the vertex and press Alt+X).


Adjust grid rounding value to allow for better Gizmo alignment precision. If you are unsure about the appropriate value, try 0.1. Make it higher or lower as per requirement.

You can find the grid rounding value in the small box under the Tileset tab:




Set Gizmo mode to "Scale". Adjust the quarter by manipulating the Gizmo. Make sure to manipulate one axis at a time. Use only green, red or blue box on the Gizmo crosshair:








If you are having trouble with aligning the quarter with a corner's edge, then try to get it as close as possible and then snap the misaligned vertices together (drag the quarter's vertex onto the corner's vertex and hold down "Shift" until vertices are snapped together).




This "imperfection" may not be noticeable:



However, if it is noticeable or perfection is desired, then you can measure the length of the edge you have to adjust your quarter to, measure the quarter's corresponding edge and then scale the quarter to eliminate the difference in lengths.

Here's a demo:

Corner edge is measured. Its value is 13.


Corresponding quarter edge is measured. Its value is 7.


The difference is calculated. In order to eliminate the difference, the quarter has to be scaled by the value of 1.857... (7 * 1.857... = 13).


Select every tile of the quarter and place the crosshair on the central point of the quarter.


Since the difference is on y-axis, the quarter has to be scaled by 1.857... on y-axis in this specific case. Type in the calculated value in the corresponding "Resize" box, found in the Transform tab, and click "Apply".







If another corresponding edge were to be measured, the same processes could be applied:




ㅤ│Circular: Oblique Corner


The corresponding edges are assumed to be equal:


Measure the angle created by the corresponding edges [SK: 4].


In my case, the angle is equal to 54.


Place a tile on the overlapping corner vertex. Connect every vertex of the tile to the corresponding vertices of a corner edge. Connect the the vertex that won't be snapped with the overlapping vertex last. If you have trouble with this step, check [SK: 6]




Before connecting the vertex that won't be snapped with the overlapping vertex, select it.






This is the step where you decide how round you wish your corner to appear; how many tiles will be used to create the round corner.
1. Choose the number of tiles you wish your round corner to contain. In my case, I want 10.
2. Divide this number by the angle value. In my case, the angle equals to 54. So, I have to divide 54 by 10. 54/10 = 5.4.
3. Insert the resulting value into the rotate interval box:




Place the Gizmo crosshair at the overlapping corner vertex:


Set Gizmo mode to "Rotate". Rotate along the corresponding axes (in my case, I use the blue circle handle to rotate along z-axis):


Deselect the vertex, copy the resulting triangle and rotate it. Make sure that the Gizmo crosshair is still positioned at the overlapping corner vertex!


Repeat copy-paste-rotate until the round corner is completed.








ㅤ│Circular: Oblique Corner (unequal sides)


It is not possible to construct a round corner between such edges. However, as you may see on the picture below, it is possible to construct roundness. Refer to to [SK: 8] to learn how to construct roundness between such set of points.



If, however, a corner is absolutely desired and you are willing to move vertices for it, you may attempt to equalize the corresponding edges:


Measure one edge. In my case, this edge equals 5.


Measure the other. In my case, this edge equals 10.


Select a non-overlapping vertex of the edge you wish to adjust. In my case, I want to adjust the bigger egde.


Tilt the invisible planes so they are parallel to the edge you wish to adjust. To tilt the planes, hover your mouse cursor over the edge you wish to adjust, next to its vertex, and press "Shift+T".


Press "T" to tilt the invisible planes:


Set the grid rounding value that will equalize the edge you adjust. In my case, I adjust the bigger edge; thus, my grid rounding value is 5 (10 - 5 = 5).


Use directional keys (WASD) to adjust the edge along the planes:




Edges are equalized.


You can use the technique presented in the previous section to round the corner. Make sure to tilt the invisible planes back to normal (press "T" again)!
━━━━━━━━━━━━━━━━━━━
ㅤ│Cylindrical: Right angle Corner


Cut a corner tile where you wish the roundness to begin:




Rotate the newly created tile 90 degrees inward toward the corner.


Decide how many tiles you wish to form the roundness. In my case, I wish to use 10 tiles.

Divide 90 by the number of tiles you wish to use for roundness. In my case, 90/10 = 9.

Insert the value into "Rotate Interval" box or, if you are using other method of rotation, any other relevant box.


Place the Gizmo crosshair on one of the inward tile's vertices that does not touch the corner tiles:


Copy and paste the inward tile and rotate the copy:


Fill the gap between the inward tile and its copy:




Copy the resulting tile. Paste and rotate until the roundness is fully formed. In my case, I have to create and rotate 10 tiles in total.










Adjust corner tiles to roundness:




Delete unnecessary tiles:






ㅤ│Cylindrical: Oblique Corner


Make two cuts on the corner tiles that are equally far from the intersecting vertex.


The easiest way to do so, is to subdivide the corner tiles:




Select two corresponding tiles from the subdivision and copy them.


Revert the subdivision using "Undo" (ctrl+z):


Paste the tiles you have copied:


You can adjust the position of the tile's vertices along the corner tiles to determine where you want the roundness to begin. Make sure to apply the same changes to the corresponding vertices!

I move this set of vertices two pixels along the corner edge:




I move the corresponding set of vertices two pixels along its corner edge as well:




Rotate a copy-pasted tile 90 degrees inwards relative to the corner tile. If the corner tile lays along an invisible plane, no further adjustments needed.




However, if the corner tile does not lie along an invisible plane, you have to tilt the planes before rotating the tile.


Hover your mouse cursor over an edge of the corner tile and press "Shift+T".


Press "T" to switch to the tilted crosshair mode.


Select the copy-pasted tile and rotate 90 degrees inwards relative to the corner tile:




Find the intersection points of the tiles. To do so, extend the rotated tiles along the invisible planes.






Tilt the crosshair along the edge of the rotated tile (IMPORTANT).




Use the Align Function 'Against' [SK: 5] to put vertices where tiles intersect each other.


Connect the vertices of the other rotated tile with the intersecting vertices:




Measure the resulting angle using the Protractor Tileset.




Decide how many tiles you wish to form the roundness. In my case, I wish to use 10 tiles.

Divide the measured angle value by the number of tiles you wish to use for roundness. In my case, measure angle value equals to 54. So, I have to divide 54 by 10. 54/10 = 5.4.

Insert the value into "Rotate Interval" box or, if you are using other method of rotation, any other relevant box.


Place the Gizmo crosshair on one of the inward tile's vertices that does not touch the corner tiles:


Copy and paste the inward tile and rotate the copy:


Cut the corresponding corner to expose the gap between rotated tiles:




Fill the gap between the inward tile and its copy:


Adjust the corner side:


Copy the resulting tile. Paste and rotate until the roundness is fully formed. In my case, I have to create and rotate 10 tiles in total.








Adjust the remaining corner side with the roundness:




Delete unnecessary tiles:





━━━━━━━━━━━━━━━━━━━
ㅤ│Spherical: Right angle Corner


Place a tile along the edge of the corner you wish you round. Length of the tile determines where the roundness begins. It's important that the tile touches the intersecting vertex of the corner:


Rotate the tile 90 degrees inwards toward the corner, with the crosshair positioned on the vertex that lies on the corner's edge but does not coincide with the intersecting vertex:




The vertex that previously lay on the intersecting vertex of the corner will be referred to as 'the middle point' in this section.


Measure the length of the tile, from the middle point to the vertex that lays on the corner's edge:


Place a sphere primitive using the Primitive Tool. Its size must be twice the distance from the middle point to the vertex that lies on the corner's edge. Make sure to use a value for 'Sides' that is divisible by 4 (otherwise, you won't be able to cut the sphere into equal quarters).

For example, if you measured the distance of "6", then the size of the sphere should be "12" among all boxes. Sides can be of any number you desire, as long as it divides by 4:




Rotate the sphere so that its vertices and edges align with the invisible planes [SK: 3].




Delete every tile of the sphere except for a quarter of it:




Rotate the quarter so it corresponds with the corner you wish to round:




Copy the quarter at its intersecting vertex and place the copy at the midpoint.




Delete the unnecessary tile:




Cut the corner tiles to reveal the quarter:












Copy and paste boundary tiles of the quarter:




Move the resulting tiles along the invisible plane:




Connect the boundary tiles with the corresponding quarter tiles:








Copy, paste, and rotate the resulting rounded corner side to the other side of the quarter:






Unfotunately, the down side of the quarter has to be extended manually:








Using the Align Functions, adjust the vertices of the rounded corner side with the rest of the form [SK: 5]:












Adjusting vertices to roundness [SK: 5]






[/previewicon










ㅤ│Spherical: Oblique Corner


Place a tile along the edge of the corner you wish you round. Length of the tile determines where the roundness begins. It's important that the tile touches the intersecting vertex of the corner:


Place a tile of the same length along the other corner edge. If the egde does not run parallel to the invisible planes, tilt the crosshair along the edge (hover you mouse over the edge, press "Shift+T", press "T") and then place the tile:










Rotate tiles 90 degrees inwards toward the corner, with the crosshair positioned on the vertex that lies on the corner's edge but does not coincide with the intersection vertex.




Make sure to tilt the crosshair with tiles that lay on edges not parallel to the invisible planes before turning the tile.






Find points of intersection of the construction tiles. To do so, extend one of the tiles along invisible planes and then use the align function "Against" [SK]:








Measure the resulting corner. In my case, it equas 57. Decide how many tiles you wish to use to create roundness. I want to use 10 tiles. Divide the resulting corner value by the number of tiles you wish you use. In my case, it will be 57/10 = 5.7. That's my value of rotation.



Measure the length of one of the tiles making up the corner:


Multiply the measured value by 2 [[b]SK[/b]] and input it into the 'Size' boxes of the primitive tool. Extract the disk from a primitive [SK].


Rotate the disk by half the angle of its constituent triangles [SK]. Vertices of the circle have to align with the lines of the invisible plane:




Remove tiles from the circle, leaving only a quarter of its original size:




Rotate the quarter upright and paste it at the intersecting vertex of the corner formed by the construction tiles.






Measure the angle between the quarter and a construction tile.


Rotate the quarter so it completely overlaps with the construction tile.


Delete the construction tiles.




Place the crosshair at the central vertex of the quarter. Copy the quarter and rotate its copy by the value of rotation. In my case, it's 5.7.

Note: the value of rotation was calculated above. Look for "the value of rotation" in this section if you have missed it.




Fill the gaps between the quarters.








Copy the resulting tiles and rotate them by the value of rotation. Make sure that the crosshair is still on the central point of the quarter. Repeat until the desired roundness is formed.






Place the crosshair at the intersecting vertex of tiles forming roundness and copy the roundness tiles. Place the crosshair at the central point of a quarter. Paste the roundness.


Delete the quarters.






Cut the corner tiles to reveal the roundness:






Extend sides. Make sure the crosshair is tilted along the edge that you wish to extend the sides.







You may notice that I returned a corner side. That's because I would like to position vertices of roundness against this side using the align function "Against".












Using the Align Functions, adjust the vertices of the rounded corner side with the rest of the form [[b]SK[/b]]:






━━━━━━━━━━━━━━━━━━━
ㅤ│Multicircle (double): Right angle






























































ㅤ│Multicircle (double): Oblique angle


























































ㅤ│Multicircle (pseudo-tripple): Right angle










































ㅤ│Multicircle (pseudo-tripple): Oblique angle
























































━━━━━━━━━━━━━━━━━━━
[Supplementary Knowledge]
╔═════════════════════════╗
[1] Creating disks with the Primitive Tool
The Primitive Tool can be found at the top-left corner of the 3D view screen.


Before the tool is able to place a disk, you must set it up.

To set it up, go to the Transform tab:


And search for "Primitive" settings.


Change "Box" setting to either "Cone" or "Cylinder".


"Size" boxes refer respectively to X, Y, and Z coordinate planes. "Sides" refer to how many edges will form circumference of the disk.


When setting up a disk, keep the following in mind:
• X and Z values must be equal.
• Y value must be equal to zero.
• The number of tiles comprising the disc is equal to half of the 'Sides' value (for example, 20 sides = 10 tiles).

When the desired disk is set up, place it the same way you would place a tile (make sure the Primitive Tool is selected).
[2] Setting up the correct "Size" and "Sides" values
In this guide, quarters of disks are commonly used to create roundness. As such, disks have to be set up in order to accommodate their quarters.

╔════════════╗
║Setting up "Size"  ║
╚════════════╝

Let's assume we want to connect a quarter of a disk to the edge marked in magenta. The edge is 14 pixels long.


If we were to input the edge's length into the appropriate "Size" boxes:


We would get the following results:


This quarter has the length exactly half that of the edge.


Therefore, it's important to remember to double the value of the edge's length when entering it into the 'Size' boxes.




Why is it so?

Values in "Size" boxes define disk's DIAMETER.

Diameter of a disk is a straight line that passes through the center of the disk and connects two points on its circumference.


However, since this guide describes situations requiring quarters of a disk, we will need to define disk's RADIUS

Radius of a disk is the distance from the center of the disk to any point on its circumference.


As you can see, a quarter contains a radius of a disk:


The diameter is always twice the length of the radius.

In other words, the radius is always half as much as the diameter. Since we can only define the diameter, multiplying values by 2 allows us to achieve a disk with the radius and,consequently, the desired length of its quarter.


╔═════════════╗
║Setting up "Sides"  ║
╚═════════════╝


There is only one rule: the "Sides" value of sides MUST be divisible by 4.

Why is it so?

This guide describes situations that involve quarters of a disk. A quarter constitutes 1/4 of the entire disk. Crocotile uses edges and vertices to define disks. If you cannot evenly divide those edges and vertices into four equal groups, extracting a quarter from a disk becomes challenging. Take a look:

20 sides. Lines of symmetry lay on the disk's edges and vertices. This disk can be easily divided into 4 quarters.


18 sides. Lines of symmetry partially lay on the disk's edges and vertices.


21 sides. Lines of symmetry do not lay on the disk's edges and vertices.



Keep in mind, there are situations in the guide, such as with oblique angles, where this rule does not apply, since we won't be using quarters. When we use quarters - sides must be divisible by 4. When we don't - they may not be divisible by 4.
[3] Aligning vertices of disks with the invisible plane
When Crocotile 3D places a disk, its vertices are not initially aligned with the invisible planes. Usually, that's not an issue. However, situations in the guide require the disk's vertices to be aligned with the invisible planes.


To align the vertices of the disk, you need to rotate the disk by the value obtained by dividing 180 by the number of circumferential edges of the disk.

In this particular example, the disk has 20 edges. To get the required value, we have to divide 180 by 20. 180/20 = 9. So, to align this particular disk, it has to be rotated by 9 degrees.


Select disk's tiles:


Place the crosshair at the central point:


Enter the value in the box relevant to your method of rotation:


Rotate!



Why is it so?

Disks are composed of triangles. The apex angles of these triangles always add up to 360°.


To find the value of an angle in one of these triangles, divide 360 by the number of triangles. If a disk consists of 20 triangles, then each of its apex angles is equal to 18 degrees (360/20 = 18).


To align the vertices of the disk with the invisible plane, we need to rotate the disk by half of the value of its constituting triangle's apex angle. If the apex angle equals to 18°, then we have to rotate the disk by 9°.

Therefore, rather than first dividing 360 by the number of triangles and then further halving the outcome, a more straightforward approach involves dividing 180 (as 360 divided by 2 equals 180) directly by the number of triangles. However, I want to clarify that dividing 180 should be done by the number of circumferential edges for the sake of clarity, given that the composition of triangles can be optimized in a three-dimensional space. Crocotile 3D streamlines its triangle arrangement, so even if a disk is theoretically composed of 20 triangles, Crocotile efficiently employs only 10 tiles.
[4] Measuring distances and angles
The guide will frequently ask you to measure distances and angles. Please familiarize yourself with the relevant theory. The following guide will assist you:
https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=2879781450
[5] Adjusting vertices to roundness
Adjusting vertices to roundness can be as simple as connecting a pair of vertices together.

However, it can get to the complexity of connecting vertices to an inclined edge.

To achieve precision within Crocotile 3D, I STRONGLY recommend the reader to familiarise oneself with the Align functions in Crocotile 3D. The following guide will assist you:

https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=2883486583

If you're unfamiliar with the Align functions and how they operate, allow me to inform you that these tools are ABSOLUTELY VITAL FOR ACHIEVING PRECISION within the program. If you're aiming to excel in Crocotile 3D, it is ESSENTIAL that you become acquainted with and understand them. Fortunately, learning them is not a demanding task, nor are they difficult to grasp. This was your wake up call. Please learn about the Align functions.

[6] Creating circular roundness manually































[7] Splitting troubleshooting
If the yellow line does not appear while in the Active mode, you may attempt the following:



╔═════════════════════════════╗
║Flatten the UVs of the tiles you wish to split║
╚═════════════════════════════╝






If you need more information, please refer to the official Crocotile 3D documentation, following this link:
https://crocotile3d.com/howto.html#anchoruvs

Search for "Flatten"!


╔═════════════════╗
║Adjust tile splitting value║
╚═════════════════╝


You can find the 'Tile Splitting' box at the bottom left corner of the Tileset tab.
[8] Constructing roundness between any points
Consult the following guide to create roundness between points when you cannot create corners between them:

https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=3031227119
[X] Theory
If you are wondering why the methods presented in this guide work, take a look at the Theory section of the guide "Constructing Roundness Between Any Points in Crocotile 3D"

https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=3031227119
╚═════════════════════════╝