Чому Т-переходи в сітках призводять до тріщин?


19

Я чув з багатьох джерел, що наявність Т-переходів у 3D-сітках - погана ідея, оскільки це може призвести до появи тріщин під час візуалізації. Чи може хтось пояснити, чому це відбувається, і що можна зробити, щоб їх уникнути?


Відповіді:


20

Відповідь lhf хороша з точки зору тесселяції, але це може траплятися з більш простими випадками використання сітки трикутника.

Візьмемо цей тривіальний приклад трьох трикутників з простору екрана , ABC, ADE та DBE ...

введіть тут опис зображення

Незважаючи на те, що точка E, математично, повинна була бути точно на відрізку AB, трубопровід не буде використовувати цілком точні значення, такі як раціональні числа (наприклад, https://gmplib.org/ ). Натомість це, ймовірно, буде використовувати поплавці, і тому буде введено деяке наближення / помилка. Напевно, результат буде чимось на зразок:

введіть тут опис зображення

Зауважте, що у всіх вершинах можуть бути неточності. Хоча наведений вище приклад показує тріщину, T-перехід може натомість призвести до перекриття по краю, що спричинить пікселі двічі. Це може здатися не поганим, але це може спричинити проблеми з прозорістю або трафаретними операціями.

Ви могли б тоді думати , що з плаваючою точкою помилки , що вноситься буде незначними, але в візуалізаторі, екран просторі вершина (X, Y) значення майже завжди представлені числами з фіксованою точкою і тому зміщення від ідеального розташування як правило, набагато більше. Крім того, оскільки обладнання для візуалізації "інтерполює" лінійний сегмент "піксель за пікселем" із власною внутрішньою точністю, є ще більше шансів на те, що він буде відходити від округленого місця E.

Якщо Т-перехід буде «знято», скажімо, також діленням трикутника ABC на два, тобто AEC і EBC, проблема відійде, оскільки зрушення, введені помилками, будуть послідовними.

Тепер ви можете запитати, чому рендері (особливо HW) використовують математику з фіксованою точкою для вершин XY координат? Чому вони не використовують плаваючу крапку, щоб зменшити проблему? Хоча деякі з них зробили (наприклад, Dreamga Sega), це може призвести до ще однієї проблеми, коли математика набору трикутників стає катастрофічно неточною, особливо для довгих тонких трикутників, і вони змінюють розмір неприємними способами.


2
Коли ви говорите, що "вершинні (X, Y) значення майже завжди представлені цифрами з фіксованою точкою", я здогадуюсь, що ви маєте на увазі координати вершин простору екрану в растерізаторі, правда? Не оригінальні вершини модельного простору.
Натан Рід

2
@NathanReed Так. Просто на екрані X&Y (і, можливо, на деяких графічних процесорах Z). Я відредагую це, щоб зробити це зрозумілішим.
Simon F

9

При моделюванні параметричних поверхонь із сіткою в області параметрів, T-переходи, швидше за все, виявляться як розриви на поверхні. Вони відображатимуться як прогалини у візуалізації. Дивіться нижче.

Більш загально, Т-переходи в трикутних сітках, ймовірно, призведуть до розривів інтерпольованих атрибутів, таких як колір та нормали.

введіть тут опис зображення введіть тут опис зображення


Дивіться також stackoverflow.com/questions/23530807/… .
lhf

4

Помилка округлення з плаваючою комою.

Після перетворення переходу Т і точка в Т може отримати округлення від краю.

Тоді може статися, що фрагмент, який відбирається для пікселя, лежить у зазорі між двома поверхнями.

Це можна виправити, якщо в першу чергу немає Т-переходу.


3

Простий спосіб уникнути цього - забезпечити зварення всіх вершин

Ви заявляєте, що у вас є надрізи уздовж країв з вершиною, але у вас немає відповідної вершини на сусідньому краї, щоб приварити / з'єднати її, якщо ви думаєте про це як кнопку на сорочці, ви посіяли на ґудзик до краю, але не дайте йому отвору, щоб тканина була відкритою.

На малюнку нижче, червоні точки являють собою правильно зварені вершини, всі сині крапки потребують додаткової вершини, щоб вирізати сусідній край.

введіть тут опис зображення

Взагалі кажучи, це хороша практика зберігати своє моделювання в квадратиках і три, це допомагає полегшити цю проблему, оскільки ви завжди повинні мати відповідну вершину для зварювання. Це також допомагає зберегти квадроцикли, якщо ви плануєте використовувати будь-які методи підрозділу в мережі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.