Як зробити натуральний вигляд вокселя


11

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

Я бачив гру з вокселями, яка має природний ландшафт. Під цим я маю на увазі не блокадність. У грі є 4 * 4 * 4 блоки на кубічний метр, а блоки, як бруд, пісок та камінь, мають круглі краї та вид плавлення разом (як у звичайних іграх). Ось скріншот введіть тут опис зображення

Як це досягається?



ти знаєш, яка це гра? як ти можеш бути впевнений, що це вокселі? Гаразд, знайшов це сам, гра називається Blockscape: indiedb.com/games/blockscape
Babis

На сайті procworld.blogspot.com є щоденник, в якому розміщені всілякі докладні повідомлення про те, як створено його воксель. Повідомлення проходять за кілька років від моменту, коли двигун перебуває в зародковому стані до теперішнього часу, коли він наразі має ліцензію на Everquest Next.
стокастик

Відповіді:


14

Це досягається за допомогою інтерполяції пандусів між кубами різної висоти.

Коли у вас є такий пейзаж (видно збоку)

  #
 ####   ##
############

ви додасте багатокутники, щоб він виглядав так:

 /#\
/####\ /##\
############

Алгоритм обчислення цих пандусів - алгоритм маршируючих кубів .

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


Дякую! Чи знаєте ви місце, яке пояснює, як це зробити в OpenGL, Light Weight Java Library Library? Редагувати: І якщо ви знаєте хорошу техніку, як додати детектування зіткнень для маршируючої місцевості, це також буде вдячно.
KaareZ

@KaareZ Вибачте, я ніколи не працював з LWJGL.
Філіп

@Philipp Вас може зацікавити ця відповідь

1
Або ви можете пропустити маршируючий куб взагалі та перейти до набагато цікавішого frankpetterson.com/publications/dualcontour/dualcontour.pdf менш складного, ви також можете просто додати шумовий фенкцій як компенсацію до кінцевої вершини шматка. У вас все ще є блок, але тепер у них є властивість горбиків, не будучи суворо вирівняними по строгому прямолінійному ... комбінуючи подвійний контур і це для ще більш цікавого результату (з модифікатором на зміщення вершин для контролю більш-менш органічної генерації) .
користувач29244

forum.unity3d.com/attachments/captura-jpg.23795 ось малюнок "прокатки" (зміщення застосовується як вертикальне переміщення). Ось більше зображення, але зі зміщенням, застосованим у кожному напрямку forum.unity3d.com/attachments/t1- jpg.23871 forum.unity3d.com/attachments/t2-jpg.23872 vimeo.com/27976287
користувач29244

6

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

Найважливіша технічна проблема полягає в тому, що при високоефективності тих моделей, які ви створили з високим рівнем деталізації, ви отримаєте величезну кількість крихітних вокселів. Обробка та візуалізація величезної кількості вокселів не є дрібницею. Відповідь на це називається « Розріджені воксельні октреси»

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

Більш детально про SVO в цій статті

Ось відкритий код із впровадженням ліцензії BSD SVO https://code.google.com/p/efficient-sparse-voxel-octrees/

Ось відео, яке пояснює відображення на основі багатокутника проти SVO (плюси і мінуси).


Це круто! Також подивіться на sauerbraten.org , він використовує подібну техніку (але не реалізує маршируючі кубики, ця частина залишається дизайнеру рівня)
Кролтан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.