Деформуючі поверхні


10

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

Незалежно від форми поверхні (літаки, куби, сфери ...), я хочу мати невеликі відступи на позиціях від ігрових сутностей (гравців, ворогів, предметів ...).

Це складно пояснити, тому я проілюстрував те, про що я говорю, ось приклад зі сферою:

ілюстрація деформуюча гра поверхні

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

Я програмую на C / C ++ за допомогою OpenGL, але будь-які поради в правильному напрямку будуть добре.

Відповіді:


5

Для простої деформації ви можете вибрати точку на поверхні / об'єкті для маніпулювання, а потім застосувати до неї перетворення (наприклад, переклад). Потім перетворіть усі точки на певній відстані від цієї точки однаково, але майте силу перетворення тим більше, чим далі від обраної вами точки.

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

Залежно від того, який ефект ви хочете архівувати, ви можете застосувати перетворення глобально, локально або в напрямку / від центру об'єкта та / або використовувати різні функції для імітації різних матеріалів.

Простий приклад відступу площини за допомогою функцій випадання sin / cos можна знайти серед www.lighthouse3d.com/opengl/terrain/


1
Я отримую 403 заборонену помилку за посиланням.
Джордж Дакетт

1
Ну ... "LL-хакер тоді в порядку (також безпосередньо до розділу, про який йдеться): web.archive.org/web/20100927141645/http://lighthouse3d.com/…
Exilyth
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.