August 12, 2021, 16:58 (GMT) |
adaptive_cloth: cloth: prev_frame_mesh is invalid if frame incorrect When current frame (framenr) is not immediately following the last_frame stored, the `prev_frame_mesh` is invalid and must be deleted. When remesh is on, even the clothObject is invalid, so delete that as well. |
August 12, 2021, 14:51 (GMT) |
adaptive_cloth: Store previous frame mesh information for remeshing The modifier stack doesn't give the previously evaluated `Mesh`, this means it needs to be stored within the `ClothModifierData`. Some parts of the cloth modifier copy information from the given `Mesh` to the `clothObject` every frame, this should not happen when remeshing is on. In `BKE_cloth_remesh()`, must use the previous frame mesh if available for remeshing. TODO: In case the user goes back a frame, must make the `clmd->prev_frame_mesh` invalid otherwise the simulation will not know that the simulation must be restart. |
August 12, 2021, 07:55 (GMT) |
adaptive_cloth: Mesh: msgpack: store the type of Mesh on first line This allows the code that deserializes it to decide which type of Mesh structure to deserialize to. Since msgpack is compact, it doesn't store information about the size (explicitly or implicitly) of the element, this means that deserialization can lead to weird outputs if wrong data structures are used. |
August 12, 2021, 06:18 (GMT) |
adaptive_cloth: set cloth information after remeshing The cloth object doesn't know about the updated mesh, so update the entire cloth object to utilize the new mesh. |
August 11, 2021, 18:35 (GMT) |
adaptive_cloth: AdaptiveMesh: more info in file dump filename Store the edge index as well. |
August 11, 2021, 07:05 (GMT) |
adaptive_cloth: AdaptiveMesh: collapse edge: face inversion test An edge is collapsible only if it doesn't invert any faces. |
August 11, 2021, 06:20 (GMT) |
adaptive_cloth: Mesh: get vert indices of edge aligned with n1 A set of "3D edges" don't always have n1 and n2 (through the verts of the edge) in the same order, useful to get it in the same order. |
August 10, 2021, 18:36 (GMT) |
adaptive_cloth: AdaptiveMesh: call compute_info() where needed |
August 10, 2021, 18:36 (GMT) |
adaptive_cloth: AdaptiveMesh: compute info for newly added elements AdaptiveMesh needs some more calculations, like edge size. |
August 10, 2021, 18:35 (GMT) |
adaptive_cloth: Mesh: compute info for newly added elements Using MeshDiff which provides the newly added elements, iterate over these elements and calculate certain required information. This makes it easier to take care of things. If there is a MeshDiff produced, always call compute_info() with it. This ensures all required information is always available. |
August 10, 2021, 16:42 (GMT) |
adaptive_cloth: AdaptiveMesh: no edge flip if inverted face normals Edge flippability test should prevent flipping of an edge that will lead to inverted face normals. |
August 10, 2021, 16:38 (GMT) |
adaptive_cloth: remesh: compute face normals after creating mesh |
August 10, 2021, 16:38 (GMT) |
adaptive_cloth: Mesh: compute face normal(s) |
August 9, 2021, 11:06 (GMT) |
adaptive_cloth: AdaptiveMesh: preserve vert Need to mark verts that should be preserves, ones that are on seams or boundaries at the beginning of the remeshing process so that the initial state is not altered. Collapse edges should not collapse a vert that should be preserved into another vert. |
August 9, 2021, 11:06 (GMT) |
adaptive_cloth: FilenameGen: increase number of leading zeros Now that many more operations take place during remeshing, it exceeds 1000, so need to update the number of leading zeros. |
August 8, 2021, 13:37 (GMT) |
adaptive_cloth: AdaptiveMesh: collapse edges: edge size criterion If the edge were to be collapsed, the newly formed edges shouldn't exceed the edge size criterion (1.0 - small_value). |
August 8, 2021, 12:58 (GMT) |
adaptive_cloth: AdaptiveMesh: collapse edges: run flip edges It is important that the total update to faces of the mesh (collapse followed by flip edges) is added to the new_active_faces. |
August 8, 2021, 12:39 (GMT) |
adaptive_cloth: AdaptiveMesh: collapse edges: initial steps There are todos but the code roughly works. |
August 8, 2021, 12:38 (GMT) |
adaptive_cloth: mesh: is vert on seam or boundary |
August 8, 2021, 12:37 (GMT) |
adaptive_cloth: mesh: is edge collapseable: make function const |
|