Skip to content

Commit a1a3424

Browse files
Merge pull request #14 from ArtifactForms/ArtifactForms-patch-1
Update modifiers.md
2 parents 64b0a8b + 25f5f12 commit a1a3424

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

documentation/modifiers.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,85 @@
1+
# Mesh Modifiers
12

3+
## Basic Modifiers
4+
* **BendModifier:** Bends the mesh along a specified axis.
5+
* **BevelEdgesModifier:** Creates a bevel along the edges of the mesh.
6+
* **BevelFacesModifier:** Creates a bevel around the faces of the mesh.
7+
* **BevelVerticesModifier:** Creates a bevel around the vertices of the mesh.
8+
* **CenterAtModifier:** Centers the mesh at a specific point.
9+
* **CrocodileModifier:**
10+
* **ExtrudeModifier:** Extrudes the faces of the mesh along their normals.
11+
* **FitToAABBModifier:** Scales and **/translates???/** the mesh to fit within an axis-aligned bounding box.
12+
* **FlipFacesModifier:** Flips the orientation of the faces of the mesh.
13+
* **HolesModifier:** Creates holes in the mesh.
14+
* **InsetModifier:** Insets the faces of the mesh inward.
15+
* **NoiseModifier:** Adds noise to the vertex positions of the mesh. **Normals!**
16+
* **PushPullModifier:** Pushes or pulls the faces of the mesh along their normals.
17+
* **RemoveDoubleVerticesModifier:** Removes duplicate vertices from the mesh.
18+
* **RotateXModifier:** Rotates the mesh around the X-axis.
19+
* **RotateYModifier:** Rotates the mesh around the Y-axis.
20+
* **RotateZModifier:** Rotates the mesh around the Z-axis.
21+
* **ScaleModifier:** Scales the mesh uniformly or non-uniformly.
22+
* **SmoothModifier:** Smoothes the mesh by averaging vertex positions. **???**
23+
* **SolidifyModifier:** Adds thickness to the faces of the mesh.
24+
* **SpherifyModifier:** Spherifies the mesh.
25+
* **TranslateModifier:** Translates the mesh.
26+
* **UpdateFaceNormalsModifier** Updates the face normals of the mesh.
27+
* **WireframeModifier:** Converts the mesh to a wireframe representation. **???**
28+
29+
## Subdivision Modifiers
30+
* **CatmullClarkModifier:** Subdivides the mesh using the Catmull-Clark subdivision scheme.
31+
* **DooSabinModifier:** Subdivides the mesh using the Doo-Sabin subdivision scheme.
32+
* **LinearSubdivisionModifier:** Subdivides the mesh using a linear subdivision scheme.
33+
* **PlanarMidEdgeCenterModifier:** Subdivides the mesh by splitting edges and connecting their midpoints.
34+
* **PlanarMidEdgeModifier:** Subdivides the mesh by splitting edges and connecting their midpoints to the face centroids.
35+
* **PlanarVertexCenterModifier:** Subdivides the mesh by connecting vertices to face centroids.
36+
* **PlanarVertexMidEdgeCenterModifier:** Subdivides the mesh by connecting vertices, edge midpoints, and face centroids.
37+
* **PokeFacesModifier:** Adds a vertex to the center of each face.
38+
* **QuadsToTrianglesModifier:** Converts quad faces to triangles.
39+
40+
## Bend Modifier
41+
42+
**Purpose:**
43+
44+
The Bend Modifier is a tool designed to deform a 3D mesh by bending it along the X-axis. It's particularly useful for creating curved shapes or simulating bending effects.
45+
46+
**How it works:**
47+
48+
**Bending Factor:**
49+
50+
The ```factor``` parameter controls the intensity of the bend. A higher factor results in a more pronounced curve.
51+
52+
**Vertex Deformation:**
53+
54+
* For each vertex in the mesh:
55+
* The X-coordinate of the vertex is used to calculate a bending angle.
56+
* The Y and Z coordinates are then modified based on this angle and the ```factor``` to achieve the desired bending effect.
57+
58+
**Using the Bend Modifier:**
59+
60+
1. **Create a Mesh:** Start with a basic 3D mesh, such as a grid, cube, or sphere.
61+
2. **Create the Modifier:** Create an instance of the BendModifier class, specifying the desired bending factor.
62+
3. **Modify the Mesh:** Apply the modify method of the BendModifier to the mesh.
63+
64+
**Example:**
65+
66+
```java
67+
GridCreator creator = new GridCreator();
68+
creator.setSubdivisionsX(10);
69+
creator.setSubdivisionsZ(10);
70+
creator.setTileSizeX(1);
71+
creator.setTileSizeZ(1);
72+
73+
Mesh3D mesh = creator.create(); // Create a grid mesh
74+
BendModifier modifier = new BendModifier(0.5f); // Create a BendModifier with a factor of 0.5
75+
76+
mesh.apply(modifier); // Apply the modifier to the mesh
77+
```
78+
79+
**Additional Considerations:**
80+
81+
* **Extreme Bending:** For very high factor values, the mesh may become distorted or self-intersecting.
82+
* **Mesh Topology:** The effectiveness of the modifier can be influenced by the mesh topology. For complex meshes, additional considerations may be necessary.
83+
* **Combining with Other Modifiers:** The Bend Modifier can be combined with other modifiers to create more complex deformations.
84+
85+
By understanding the basic principles and parameters of the Bend Modifier, you can effectively use it to create a wide range of 3D shapes and effects.

0 commit comments

Comments
 (0)