Розщеплення квадратичної місцевості - я не розумію


12

Більшість робіт, які я читаю, базують свою територію в тій чи іншій формі на квадраті. Дивіться це на сторінці 38 :

http://www.slideshare.net/repii/terrain-rendering-in-frostbite-using-procedural-shader-splatting-presentation?from=ss_embed

Чи не суперечить перша точка нижній два? Як ви можете мати фіксовану сітку вершини 33x33 на лист, але все ж говорити про адаптивне поділ у квадратичному дереві? Термінологія заплутана, і я буду вдячний за будь-яку ясність щодо цього!


Ось мої припущення:
Повторне розміщення патчів кожного разу, коли зміни квадрата будуть хітом, чи не так?

http://www.dukecg.net/QuadtreeTerrain.png

  1. Квадрат, починаючи з меж місцевості.
  2. Ітерація вниз до місця спостерігача.
  3. Обмежена версія (не більше 1 рівня різниці між сусідами)
  4. Фрустум-кал.
  5. Помістіть місцевий пластир у кожен отриманий лист, де шкала відрізняється, але роздільна здатність завжди 33x33.

Відповіді:


7

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

У вашому прикладі ця структура являє собою 33 × 33 підмежу, яку будуть містити вузли. Залежно від рівня вузла, що 33 × 33 меш адаптується (адаптується) для покриття ширшої області. Більший вузол заповнить більший простір, але його підмеша все-таки є вершиною 33 × 33 вершиною.

Після того, як дерево буде побудовано, ви можете зробити висічення фрусту, спустившись по дереву та відкинувши вузли, які не перетинаються.

Одне, що потрібно пам’ятати, - це те, що вам, швидше за все, потрібно буде усунути тріщини, які виникають, коли більший вузол тягнеться поруч із меншим вузлом. Один з простих способів - це просто налаштувати (згортати) будь-які неподілені вершини між сітками.

Що стосується вас іншого питання щодо дерева, яке замінюється, так. Якщо ви не хочете потрапляти в дані управління деревом, я пропоную просто скласти стек і очистити його, коли представлення достатньо переміститься.


Проблема з видимими швами на плитках різного розміру пояснюється на слайді 39-40 презентації. Мабуть, вони видаляють Т-з'єднання, використовуючи одну з 9 можливих сіток на місцях стику (див. Слайд 40).
bummzack

відмова від відповідальності: IDNRTFA ;-)
bitcruncher

3

"Одиниця" місцевості - 33х33 блоки. Якщо ви поруч, це ви побачите. Якщо ви знаходитесь далі, ці блоки зливаються в нижчі шматки LOD.

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


Отже, кінцевий лист - це не кожен можливий кінцевий лист (при найменшому розмірі сітки), це кінцевий лист для цієї ітерації, виходячи з відстані, тому деякі можуть бути 16x16, а віддалені - 256x256 (чи будь-які інші)? Чи це не означає, що щоразу, коли квадратура змінюється, патчі потрібно розміщувати і масштабувати знову?
Джордж Р
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.