January 18, 20242 yr Localization Long story short, this is just a presentation of the progressive achievement with months of work on reconstruction & reimplementation of my quadrify algo previously posted on xentax a few years ago. Think I can put an end to it now. Original uv: Quadrified (before patching): (after patching): For this specific test the result has reached 100% of accuracy.
January 19, 20242 yr Localization What an amazing post, I have hoped, and so happy to see you finally joined, and as a first post on your behalf, this is the most rewarding one to see, the results are amazing, thank you for not forgetting about it, it was awaited for a long time indeed. I cant express enough how happy i am seeing this, so many models out there need this revolutionary solution you have shared with us initially, years ago. I will continue patiently to wait for anything you are willing to make of it so we, the end users can give it a test run. Thank you. Edited January 19, 20242 yr by Dr. Sheldon Cooper
February 8Feb 8 I'm reading your original XeNTaX post and it seems to contain a mistake in the table of all neighbor triangle combinations. The indexes "e" and "f" were replaced with "d" for some reason, e.g. |abc|acd| which should be |abc|ace|. https://web.archive.org/web/20220804212949/https://forum.xentax.com/viewtopic.php?f=16&t=18005&start=15#p140515 Here is the correct table | abc | abc | abc | abc | abc | abc | | adb | cbf | bfc | fcb | bad | cea | ------------------------------------------------------------------------------------------------- | abc | abc | abc | | ace | dba | eac |
February 8Feb 8 I also found an interesting technique of hiding diagonal edges, described in the following Nvidia paper. They suggest to hide an edge if it is the first edge of two triangles. It corresponds to the |abc|bad| rule in your terms. Page 12 of https://developer.download.nvidia.com/SDK/10/direct3d/Source/SolidWireframe/Doc/SolidWireframe.pdf If anyone is interested in an example, here is my implementation which is part of my open source ForzaTech importing script. polys = [] faces_used = [False] * len(faces) for i, f0 in enumerate(faces): if faces_used[i]: continue r = next(((j, f1) for j, f1 in enumerate(faces[i + 1:], i + 1) if f0[0] == f1[1] and f0[1] == f1[0]), None) if r is None: polys.append([f0[0], f0[1], f0[2]]) else: j, f1 = r polys.append([f0[0], f1[2], f0[1], f0[2]]) faces_used[j] = True
February 13Feb 13 Author Localization On 2/9/2026 at 1:10 AM, Doliman100 said: I'm reading your original XeNTaX post and it seems to contain a mistake in the table of all neighbor triangle combinations. The indexes "e" and "f" were replaced with "d" for some reason, e.g. |abc|acd| which should be |abc|ace|. Nope, that's not a mistake. Coz it wasn't meant to correspond with the image. "a b c" stands for the 3 vertices along the orientation in the face buffer while "d" as a notation for the 4th vertex in the quad that might take any two of the verts of previous face to form an adjacent triangle, whose indices' orientation could also vary. On 2/9/2026 at 1:16 AM, Doliman100 said: They suggest to hide an edge if it is the first edge of two triangles. It corresponds to the |abc|bad| rule in your terms. From a rough glance on that paper it merely applied to that model been used. As to hide a shared edge, or to create a new quad out of two triangles, is simply an implementation detail depending on the end format you're using. For obj you have not much choices. Edited February 13Feb 13 by Bigchillghost
Create an account or sign in to comment