Commit df1516fe authored by Hui Wang's avatar Hui Wang
Browse files

Update model.md

parent 0e5fc0cf
...@@ -53,16 +53,16 @@ of the vertices mode.) ...@@ -53,16 +53,16 @@ of the vertices mode.)
There are three possible types of bevels: There are three possible types of bevels:
- Vertex Bevel: The selected vertex _v_ is replaced by a face _f_ whose - **Vertex Bevel**: The selected vertex _v_ is replaced by a face _f_ whose
vertices are connected to the edges originally incident on _v_. The new face is vertices are connected to the edges originally incident on _v_. The new face is
inset (i.e., shunken or expanded) by a user-controllable amount. inset (i.e., shunken or expanded) by a user-controllable amount.
- Vertex Extrude: The selected vertex _v_ is beveled by a flat amount (we use 1/3 the length of the edge from the original vertex _v_ to an adjacent vertex endpoint as the tangential offset), a new vertex _v'_ is inserted into the resulting face, and _v'_ is offset in its normal direction by a user-controllable amount. - **Vertex Extrude**: The selected vertex _v_ is beveled by a flat amount (we use 1/3 the length of the edge from the original vertex _v_ to an adjacent vertex endpoint as the tangential offset), a new vertex _v'_ is inserted into the resulting face, and _v'_ is offset in its normal direction by a user-controllable amount.
<video src="./model_mode/vertex_bevel.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/vertex_bevel.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/vertex_bevel.mp4) ![](./model_mode/vertex_bevel.mp4)
- Edge Bevel: The selected edge _e_ is replaced by a face _f_ whose - **Edge Bevel**: The selected edge _e_ is replaced by a face _f_ whose
vertices are connected to the edges originally incident on the endpoints of _e_. vertices are connected to the edges originally incident on the endpoints of _e_.
The new face is inset and offset by some user-controllable amount, as with the The new face is inset and offset by some user-controllable amount, as with the
vertex bevel. vertex bevel.
...@@ -70,15 +70,15 @@ vertex bevel. ...@@ -70,15 +70,15 @@ vertex bevel.
<video src="./model_mode/edge_bevel.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/edge_bevel.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/edge_bevel.mp4) ![](./model_mode/edge_bevel.mp4)
- Face Bevel: - **Face Bevel**:
The selected face _f_ is replaced by a new face _g_, as well The selected face _f_ is replaced by a new face _g_, as well
as a ring of faces around _g_, such that the vertices of _g_ connect to the as a ring of faces around _g_, such that the vertices of _g_ connect to the
original vertices of _f_. The new face is inset and offset by some original vertices of _f_. The new face is inset and offset by some
user-controllable amount. user-controllable amount.
- Face Extrude: The selected face _f_ is replaced by a new face _g_ as in Face Bevel, and _g_ is offset only in the normal direction by some user-controllable amount. - **Face Extrude**: The selected face _f_ is replaced by a new face _g_ as in Face Bevel, and _g_ is offset only in the normal direction by some user-controllable amount.
- Face Inset: The selected face _f_ is replaced by a new face _g_ as in Face Bevel, but its vertices are only offset in the tangent direction by a constant factor (we use 1/3 in the example). - **Face Inset**: The selected face _f_ is replaced by a new face _g_ as in Face Bevel, but its vertices are only offset in the tangent direction by a constant factor (we use 1/3 in the example).
<video src="./model_mode/face_bevel.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/face_bevel.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/face_bevel.mp4) ![](./model_mode/face_bevel.mp4)
...@@ -90,21 +90,21 @@ connectivity of the mesh (for instance, splitting or collapsing edges). These ...@@ -90,21 +90,21 @@ connectivity of the mesh (for instance, splitting or collapsing edges). These
commands are applied by selecting a mesh element (in any mode) and pressing the commands are applied by selecting a mesh element (in any mode) and pressing the
appropriate key, as listed below. Local mesh editing operations include: appropriate key, as listed below. Local mesh editing operations include:
- Erase Vertex: The selected vertex _v_ together with all incident edges - **Erase Vertex**: The selected vertex _v_ together with all incident edges
and faces will be replaced with a single face _f_, that is the union of all and faces will be replaced with a single face _f_, that is the union of all
faces originally incident on _v_. faces originally incident on _v_.
<video src="./model_mode/erase_vertex.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/erase_vertex.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/erase_vertex.mp4) ![](./model_mode/erase_vertex.mp4)
- Erase Edge: The selected edge _e_ will be replaced with the union of the - **Erase Edge**: The selected edge _e_ will be replaced with the union of the
faces containing it, producing a new face _e_ (if _e_ is a boundary edge, faces containing it, producing a new face _e_ (if _e_ is a boundary edge,
nothing happens). nothing happens).
<video src="./model_mode/erase_edge.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/erase_edge.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/erase_edge.mp4) ![](./model_mode/erase_edge.mp4)
- Edge Collapse: - **Edge Collapse**:
The selected edge _e_ is replaced by a single vertex _v_. The selected edge _e_ is replaced by a single vertex _v_.
This vertex is connected by edges to all vertices previously connected to either This vertex is connected by edges to all vertices previously connected to either
endpoint of _e_. Moreover, if either of the polygons containing _e_ was a endpoint of _e_. Moreover, if either of the polygons containing _e_ was a
...@@ -114,16 +114,16 @@ only two edges). ...@@ -114,16 +114,16 @@ only two edges).
<video src="./model_mode/collapse_edge.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/collapse_edge.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/collapse_edge.mp4) ![](./model_mode/collapse_edge.mp4)
- Face Collapse: The selected face _f_ is replaced by a single vertex _v_. - **Face Collapse**: The selected face _f_ is replaced by a single vertex _v_.
All edges previously connected to vertices of _f_ are now connected directly to All edges previously connected to vertices of _f_ are now connected directly to
_v_. _v_.
<video src="./model_mode/collapse_face.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/collapse_face.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/collapse_face.mp4) ![](./model_mode/collapse_face.mp4)
- Vertex Inset: A new vertex _v_ is inset at the center of the selected face _f_, dividing _f_ into _n_ triangles (where _n_ is the degree of _f_). - **Vertex Inset**: A new vertex _v_ is inset at the center of the selected face _f_, dividing _f_ into _n_ triangles (where _n_ is the degree of _f_).
- Edge Flip: - **Edge Flip**:
The selected edge _e_ is "rotated" around the face, in the The selected edge _e_ is "rotated" around the face, in the
sense that each endpoint moves to the next vertex (in counter-clockwise order) sense that each endpoint moves to the next vertex (in counter-clockwise order)
along the boundary of the two polygons containing _e_. along the boundary of the two polygons containing _e_.
...@@ -131,7 +131,7 @@ along the boundary of the two polygons containing _e_. ...@@ -131,7 +131,7 @@ along the boundary of the two polygons containing _e_.
<video src="./model_mode/edge_flip.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/edge_flip.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/edge_flip.mp4) ![](./model_mode/edge_flip.mp4)
- Edge Split: - **Edge Split**:
[Note: this method is for triangle meshes only!] The [Note: this method is for triangle meshes only!] The
selected edge _e_ is split at its midpoint, and the new vertex _v_ is connected selected edge _e_ is split at its midpoint, and the new vertex _v_ is connected
to the two opposite vertices (or one in the case of a surface with boundary). to the two opposite vertices (or one in the case of a surface with boundary).
...@@ -139,7 +139,7 @@ to the two opposite vertices (or one in the case of a surface with boundary). ...@@ -139,7 +139,7 @@ to the two opposite vertices (or one in the case of a surface with boundary).
<video src="./model_mode/edge_split.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/edge_split.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/edge_split.mp4) ![](./model_mode/edge_split.mp4)
- Edge Bisect: The selected edge _e_ is split at its midpoint, and the new vertex _v_ at the split is returned. Note that the new vertex _v_ is not connected to the two opposite vertices as in Edge Split. - **Edge Bisect**: The selected edge _e_ is split at its midpoint, and the new vertex _v_ at the split is returned. Note that the new vertex _v_ is not connected to the two opposite vertices as in Edge Split.
### Global Mesh Processing<a name="global-mesh-processing"></a> ### Global Mesh Processing<a name="global-mesh-processing"></a>
...@@ -148,13 +148,13 @@ A number of commands can be used to create a more global change in the mesh ...@@ -148,13 +148,13 @@ A number of commands can be used to create a more global change in the mesh
pressing the appropriate sidebar button with a mesh selected. Note that in scenes with multiple meshes (e.g., those used by pressing the appropriate sidebar button with a mesh selected. Note that in scenes with multiple meshes (e.g., those used by
the path tracer), this command will be applied only to the selected mesh. the path tracer), this command will be applied only to the selected mesh.
- Triangulate: - **Triangulate**:
Each polygon is split into triangles. Each polygon is split into triangles.
<video src="./model_mode/triangulate.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/triangulate.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/triangulate.mp4) ![](./model_mode/triangulate.mp4)
- Linear Subdivision:<a name="linear-subdivision"></a> - **Linear Subdivision**:
Each polygon in the selected mesh is split into Each polygon in the selected mesh is split into
quadrilaterals by inserting a vertex at the midpoint and connecting it to the quadrilaterals by inserting a vertex at the midpoint and connecting it to the
midpoint of all edges. New vertices are placed at the average of old vertices so midpoint of all edges. New vertices are placed at the average of old vertices so
...@@ -163,7 +163,7 @@ that, e.g., flat faces stay flat, and old vertices remain where they were. ...@@ -163,7 +163,7 @@ that, e.g., flat faces stay flat, and old vertices remain where they were.
<video src="./model_mode/linear_subd.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/linear_subd.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/linear_subd.mp4) ![](./model_mode/linear_subd.mp4)
- Catmull-Clark Subdivision: - **Catmull-Clark Subdivision**:
_[Note: this method is for meshes without boundary only!]_ _[Note: this method is for meshes without boundary only!]_
Just as with linear subdivision, each Just as with linear subdivision, each
polygon is split into quadrilaterals, but this time the vertex positions are polygon is split into quadrilaterals, but this time the vertex positions are
...@@ -174,8 +174,8 @@ ultimately generating a nice rounded surface. ...@@ -174,8 +174,8 @@ ultimately generating a nice rounded surface.
<video src="./model_mode/catmull_subd.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/catmull_subd.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/catmull_subd.mp4) ![](./model_mode/catmull_subd.mp4)
- Loop Subdivision: - **Loop Subdivision**:
_[Note: this method is for triangle meshes without boundary only!]_ _[Note: this method is for triangle meshes without boundary only!]_
Each triangle is split into four by connecting the edge midpoints. Vertex Each triangle is split into four by connecting the edge midpoints. Vertex
positions are updated according to the [Loop subdivision positions are updated according to the [Loop subdivision
rules](https://en.wikipedia.org/wiki/Loop_subdivision_surface). rules](https://en.wikipedia.org/wiki/Loop_subdivision_surface).
...@@ -183,7 +183,7 @@ rules](https://en.wikipedia.org/wiki/Loop_subdivision_surface). ...@@ -183,7 +183,7 @@ rules](https://en.wikipedia.org/wiki/Loop_subdivision_surface).
<video src="./model_mode/loop_subd.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/loop_subd.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/loop_subd.mp4) ![](./model_mode/loop_subd.mp4)
- Isotropic Remeshing: - **Isotropic Remeshing**:
_[Note: this method is for triangle meshes only!]_ _[Note: this method is for triangle meshes only!]_
The mesh is resampled so that triangles all have roughly the same size and The mesh is resampled so that triangles all have roughly the same size and
shape, and vertex valence is close to regular (i.e., about six edges incident on shape, and vertex valence is close to regular (i.e., about six edges incident on
...@@ -192,7 +192,7 @@ every vertex). ...@@ -192,7 +192,7 @@ every vertex).
<video src="./model_mode/remesh.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video> <video src="./model_mode/remesh.mp4" controls preload muted loop style="max-width: 100%; margin: 0 auto;"></video>
![](./model_mode/remesh.mp4) ![](./model_mode/remesh.mp4)
- Simplification: - **Simplification**:
_[Note: this method is for triangle meshes only!]_ The _[Note: this method is for triangle meshes only!]_ The
number of triangles in the mesh is reduced by a factor of about four, aiming to number of triangles in the mesh is reduced by a factor of about four, aiming to
preserve the appearance of the original mesh as closely as possible. preserve the appearance of the original mesh as closely as possible.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment