August 8, 2021, 12:37 (GMT) |
adaptive_cloth: mesh: const version of get checked node of vert |
August 7, 2021, 06:31 (GMT) |
adaptive_cloth: AdaptiveMesh: flippability: consider abs of 2 terms Consider the absolute value of the cross_2d values generated because they are just calculating the area and the assumption is that the orientation of the triangles shouldn't matter for this test. |
August 7, 2021, 06:03 (GMT) |
adaptive_cloth: should remesh dump file macro This helps turn off dumping of the serialized mesh easily. |
August 6, 2021, 13:21 (GMT) |
adaptive_cloth: mesh: split edge: correct orientation for new face Set the correct orientation for the new faces formed during the split edge operation. By swapping the unwanted vert for the new vert, the orientation is preserved. |
August 6, 2021, 11:12 (GMT) |
adaptive_cloth: AdaptiveMesh: edge flip test: only if edge size is ok Allow the edge flip only if the flipped edges doesn't exceed the edge size requirement. |
August 6, 2021, 05:43 (GMT) |
adaptive_cloth: Mesh: edge flippable: no connecting edge ov1, ov2 Ensure that the edge when flipped does not already have a connecting edge. This leads to a variety of problems like overlapping duplicate faces or deletion of faces if no duplication is a requirement. Edge flips should only change the orientation of the edge which is only through connectivity change, not actually change the number of edges/faces. |
August 6, 2021, 05:05 (GMT) |
adaptive_cloth: AdaptiveMesh: flip edges: set edge size It is important to set the edge size for all the newly created edges. Limit the number of loops, it can easily become an infinite loop. There should be a better solution for this but cannot think of one as of right now. Always check if the edge is still flippable or not. Again, this couldn't be solved with a different flip edge algorithm where the new edge is always added, but right now, that isn't possible. |
August 5, 2021, 09:39 (GMT) |
adaptive_cloth: AdaptiveMesh: splittable edges indices set changes Earlier, an edge wouldn't be tested for if one of it's verts was already selected (for another edge). This would seems almost correct but leads to non symmetrical remeshing. So it makes sense to get all the splittable edges, sort them based on their size and then split the edge only if it still exists in the mesh. So changes added: Give the entire set of splittable edges instead of maximally independent. Sort the set based on the edge size. |
August 5, 2021, 08:35 (GMT) |
adaptive_cloth: fix: AdaptiveMesh: anisotropic flip check Based on the next paper by the same authors, "Folding and Crumpling Adaptive Sheets". The edge flip criterion is different. So using this now. |
August 5, 2021, 05:44 (GMT) |
adaptive_cloth: fix: mesh: flip edge: edge might already exist It is possible that there might already be an edge between ov1 and ov2 so it is best to not create a new edge between those because edges between verts should always be unique for all the algorithms to work correctly. It is a case that shouldn't show up too often but when it does, it will be interesting to see what happens in the static remeshing part. The number of faces remains the same but number of edges can change (reduce only). |
August 4, 2021, 06:59 (GMT) |
modifier: adaptive_remesh: collapse edge only if collapseable |
August 4, 2021, 06:58 (GMT) |
adaptive_cloth: mesh: collapse edges: remove dump file statements |
August 4, 2021, 05:57 (GMT) |
adaptive_cloth: mesh: is_edge_collapseable() The collapse edge operation doesn't support one type of edge collapse. When the collapse is across seams, it is possible for one vert v1 to be asked to collapsed into multiple verts v2. Now deciding which v2 to consider is a difficult task, so not handling it right now. |
August 4, 2021, 05:12 (GMT) |
adaptive_cloth: mesh: collapse edge: tackle edge case During an across seams collapse edge, it is possible that n1 might still have v1 attached to it. Take the example of a icosphere's bottom most vert collapsed into some other neighbouring vert. For this, make v1.node point to n1 so essentially, v1 has been converted to v2 instead of removing it. |
August 4, 2021, 04:46 (GMT) |
adaptive_cloth: mesh: face edge linkage checks improvement It is not necessary for the face to have it's verts available, because delete_edge() can remove the verts from the face. So this check ensures that there is no out of bounds access. |
August 4, 2021, 04:01 (GMT) |
adaptive_cloth: mesh: collapse edge across seams It works for most cases. There is one case that is difficult to do for, when v1 has two v2 to collapse into. Will add a check to make sure the edge is collapsed only if collapse-able. |
August 3, 2021, 16:45 (GMT) |
adaptive_cloth: mesh: collapse edge rewrite to fix bugs Found a lot of bugs in collapse edge routine using the debug tool so needed a rewrite of this function. Need to still add across seams support. |
August 2, 2021, 05:45 (GMT) |
adaptive_cloth: msgpack: store more information for easier debugging Ideally this wouldn't be needed. This makes it easier to debug the deserialization part. In case msgpack is used for final caching this information needs to be removed. |
August 1, 2021, 17:13 (GMT) |
adaptive_cloth: static_remesh: dump file after each split and flip |
August 1, 2021, 17:12 (GMT) |
adaptive_cloth: filename_gen: number has 0's to make length 3 |
|