Відповіді:
Відповідь lhf хороша з точки зору тесселяції, але це може траплятися з більш простими випадками використання сітки трикутника.
Візьмемо цей тривіальний приклад трьох трикутників з простору екрана , ABC, ADE та DBE ...
Незважаючи на те, що точка E, математично, повинна була бути точно на відрізку AB, трубопровід не буде використовувати цілком точні значення, такі як раціональні числа (наприклад, https://gmplib.org/ ). Натомість це, ймовірно, буде використовувати поплавці, і тому буде введено деяке наближення / помилка. Напевно, результат буде чимось на зразок:
Зауважте, що у всіх вершинах можуть бути неточності. Хоча наведений вище приклад показує тріщину, T-перехід може натомість призвести до перекриття по краю, що спричинить пікселі двічі. Це може здатися не поганим, але це може спричинити проблеми з прозорістю або трафаретними операціями.
Ви могли б тоді думати , що з плаваючою точкою помилки , що вноситься буде незначними, але в візуалізаторі, екран просторі вершина (X, Y) значення майже завжди представлені числами з фіксованою точкою і тому зміщення від ідеального розташування як правило, набагато більше. Крім того, оскільки обладнання для візуалізації "інтерполює" лінійний сегмент "піксель за пікселем" із власною внутрішньою точністю, є ще більше шансів на те, що він буде відходити від округленого місця E.
Якщо Т-перехід буде «знято», скажімо, також діленням трикутника ABC на два, тобто AEC і EBC, проблема відійде, оскільки зрушення, введені помилками, будуть послідовними.
Тепер ви можете запитати, чому рендері (особливо HW) використовують математику з фіксованою точкою для вершин XY координат? Чому вони не використовують плаваючу крапку, щоб зменшити проблему? Хоча деякі з них зробили (наприклад, Dreamga Sega), це може призвести до ще однієї проблеми, коли математика набору трикутників стає катастрофічно неточною, особливо для довгих тонких трикутників, і вони змінюють розмір неприємними способами.
При моделюванні параметричних поверхонь із сіткою в області параметрів, T-переходи, швидше за все, виявляться як розриви на поверхні. Вони відображатимуться як прогалини у візуалізації. Дивіться нижче.
Більш загально, Т-переходи в трикутних сітках, ймовірно, призведуть до розривів інтерпольованих атрибутів, таких як колір та нормали.
Помилка округлення з плаваючою комою.
Після перетворення переходу Т і точка в Т може отримати округлення від краю.
Тоді може статися, що фрагмент, який відбирається для пікселя, лежить у зазорі між двома поверхнями.
Це можна виправити, якщо в першу чергу немає Т-переходу.
Простий спосіб уникнути цього - забезпечити зварення всіх вершин
Ви заявляєте, що у вас є надрізи уздовж країв з вершиною, але у вас немає відповідної вершини на сусідньому краї, щоб приварити / з'єднати її, якщо ви думаєте про це як кнопку на сорочці, ви посіяли на ґудзик до краю, але не дайте йому отвору, щоб тканина була відкритою.
На малюнку нижче, червоні точки являють собою правильно зварені вершини, всі сині крапки потребують додаткової вершини, щоб вирізати сусідній край.
Взагалі кажучи, це хороша практика зберігати своє моделювання в квадратиках і три, це допомагає полегшити цю проблему, оскільки ви завжди повинні мати відповідну вершину для зварювання. Це також допомагає зберегти квадроцикли, якщо ви плануєте використовувати будь-які методи підрозділу в мережі.