Спросить
Войти
Категория: Математика

ГЕНЕРАЦИЯ И МОДЕЛИРОВАНИЕ 2D ЛАНДШАФТА ПО КОНТРОЛЬНЫМ ЗНАЧЕНИЯМ С ИСПОЛЬЗОВАНИЕМ UNITY НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ

Автор: Аникеев А.С.

Генерация и моделирование 2D ландшафта по контрольным значениям с использованием Unity на языке программирования c#

А. С. Аникеев

Новосибирский государственный технический университет, Новосибирск

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

В кинематографе, игровой индустрии, а также образовании часто возникает необходимость моделировать или генерировать окружающее пространство. Один из методов решения данной задачи - это холмовой метод. Но данный метод неприменим, когда требуется детализировано отобразить лишь часть всего ландшафта. Так же холмовым методом тяжело смоделировать склон холма, или горы, так как в процессе генерации ландшафта используются только гладкие полусферы. В данной работе предлагается способ устранения представленных недостатков.

В основном для генерации ландшафта используется три основных алгоритма: шум Перлина, фрактальный и холмовой [1]. Шум Перлина - это алгоритм, который решает поставленную задачу суммированием вариаций базовых функций, получаемых путем изменений их характеристик, таких, как частота и амплитуда [2]. Существенным недостатком такого подхода является то, что результат генерации без сглаживания выглядит ребристым и зашумлённым. Основная идея фрактального метода заключается в рекурсивной генерации участка местности путем нахождения промежуточных значений между двумя заданными точками [3, 4]. Данный метод отличается математической сложностью, так как участки ландшафта приходится разбивать на равные части, что не всегда возможно выполнить

наипростейшим образом. Холмовой метод отличается особой простотой и легкостью реализации. Его сущность заключается в генерации некоторого количества холмов в определенной области. Изменяя частоту возникновения и параметры, определяющие форму холма, можно настроить алгоритм для получения ландшафта как равнинной, так и горной местности. Так же следует обратить внимание на то, что получаемые при этом результаты легко вычисляются и выглядят реалистично [5]. Рассмотрим детальнее принципы работы холмового метода. При генерации ландшафт представляется суперпозицией холмовых функций, где каждый холм образуется полусферой. Для достижения реалистичности они иногда генерируются несколькими проходами, высоты холмов на первом проходе соединяются, а карта высот каждого последующего прохода суммируется с картой высот предыдущих. Отсюда вытекают проблемы метода: полусферы гладкие, и поэтому для получения реалистичного ландшафта требуется большое количество проходов генерации, что значительно усложняет алгоритм и требует выполнения большого количества вычислений. Чтобы избавиться от чрезмерной гладкости, используется рекуррентный алгоритм, но при увеличении степени его воздействия на ландшафт возникает вероятность появления аномалии. К тому же холмовой метод очень тяжело адаптировать для генерации как самих гор, так и их склонов. Целью данной работы является разработка алгоритма, устраняющего указанные недостатки холмового метода.

Для этого задаются контрольные значения высот ландшафта, которые интерполируются полиномом или сплайном [6]. Настраивая контрольные значения высот, можно адаптировать алгоритм для любых условий, будь то равнинная местность, холмистая, горная и т.д. Данный алгоритм можно адаптировать под различные задачи и получить как модель холмов протяженностью несколько километров, так и метровый склон горы.

В данной работе используются методы интерполяции, как способы нахождения промежуточных значений величин по имеющемуся дискретному набору известных значений. Основные методы интерполяции: метод ближайшего соседа (когда значение выбирается такое же, как и у ближайшего соседа), линейная интерполяция (когда ближайших соседей соединяют прямой), методом конечных разностей (он основан на решении дифференциальных уравнений, полученных на замене производных разностными схемами), метод интерполяционной формулы Ньютона и т.д. [7,

При выборе метода интерполяции учитывается не только точность, но и сложность интерполирующего полинома. Для решения поставленной задачи лучше всего подходит полином Лагранжа: он с меньшими затратами аппроксимирует выбранные контрольные значения, чем канонический полином. Метод кубических сплайнов, как и тригонометрический, рационально применять, когда требуется построить периодическую функцию. Так же следует отметить, что полином Лагранжа с небольшими вычислительными затратами генерирует функцию, которая плавно проходит через заданные значения. Это точки могут быть расположены на различном расстоянии между собой. Если их много или они находятся близко относительно друг друга, то достаточно разбить область интерполяции на маленькие участки [9].

Интерполяционная функция полинома Лагранжа выглядит следующим образом:

8].

где базисные полиномы имеют вид:

Например, уравнение, проходящее через точки (-4,-2), (-1.5, 4), (0,0) и (2,0) имеет вид:

Его график представлен на рисунке 1.

График функции для полученного многочлена

1 1

X: -Y: 4 1.5 /

\\ X: 0 Y: 0 X: 2 Y: 0 /

X: -4 Y: -2

Рис.1. - График функции, проходящий через точки (-4,-2), (-1.5, 4),

(0,0) и (2,0).

Моделирование 2D ландшафта в Unity с использованием контрольных значений.

Любая 2D или 3D поверхность в unity строится из треугольников. Например, трехмерная сфера состоит из 515 вершин (точек) в пространстве, которые соединены между собой 768 треугольниками [10, 11].

Аналогичный подход используется в программе: весь ландшафт разделяется на небольшие участки одинаковый длины Ы. Для каждой точки

4
2
0
0
2

п ландшафта вычисляется значение функции / (?г) (где f — функция,

полученная применением полинома Лагранжа), как это графически проиллюстрировано на рисунке 2.

Рис. 2. - Образец разбиения дороги на участки.

Сгенерированный холмовым методом склон горы отображен на рисунке 3 (а) вместе с его модернизацией приведенным выше методом (б, в, г). Точки для полинома Лагранжа выбраны следующим путем: по оси ОХ точки расположены на равном расстоянии между контрольными значениями А и Б (см. рис. 3 (а)), а по оси ОУ случайным образом в интервале:

[(ссг -1 - ?0

К ~ Еу _

—и-и--К

сЫ - 2

Ш- 1-Ю

где сЫ — количества всего точек, п — номер ьысчшиоммой точен,

Ау — высота точки А Еу — высота точки Б.

(в) (г)

Рис. 3. - Пример генерации холмовым методом (а), и возможные результаты его модернизации (б, в, г).

При оценке реалистичности склона сгенерированного холма учитывались такие параметры, как гладкость каждого небольшого короткого участка в отдельности, неровность всей области генерации и отсутствие больших отклонений по оси ОУ полученного ландшафта от линии, соединяющей точки А и Б.

Используя выше определенные критерии, можно заключить, что предложенный алгоритм модернизации холмового метода генерации ландшафта с помощью интерполяционного полинома Лагранжа позволяет получить реалистичный ландшафт и исключает недостатки холмового метода. Полученный алгоритм прост в использовании и универсален. Продемонстрировано, что он может использоваться для любых условий, достаточно иметь только контрольные значения. Полученный результат решает задачу, поставленную в начале работы.

Литература:

1.Арсентьев А., Воробкалов П. Метод адаптивной генерации ландшафта // Известия Тульского государственного университета. Технические науки. - 2011. - №3. - с. 246-250.
2.Медведева О.А., Гордеев К.И., Гуляев Г.Ю. Генерация карт высот с использованием шума перлина для построения ландшафтов // Фундаментальные и прикладные научные исследования: актуальные вопросы, достижения и инновации. - Пенза: Наука и Просвещение, 2017. - С. 105-108.
3.Mandelbrot В. В. The Fractal Geometry of Nature. W. H. Freeman Co., 1983.
4. Янюшкин В.В. Фрактальный подход при моделировании процессов протекания в капиллярно-пористых средах на примере решения задач обеспечения безопасности жизнедеятельности в чрезвычайных ситуациях и охраны // Инженерный вестник Дона. 2008. №2. URL: ivdon.ru/ru/magazine/archive/n2y2008/56.
5. Генерация трехмерных ландшафтов // IXBT.com. URL: ixbt.com/video/3dterrains-generation.shtml (дата обращения: 07.04.2020).
6.Де Бор К. Практическое руководство по сплайнам. - М.: Радио и связь, 1985. 304 с.
7.Тарасян В. С., Дмитриев Н. В. Интерполяция распределённых данных горизонталей для получения цифровой модели рельефа // Инженерный вестник Дона. 2018. №1. URL: ivdon.ru/ru/magazine/archive/n1y2018/4774
8.Половко А.М., Бутусов П.Н. Интерполяция. Методы и компьютерные технологии их реализации. - СПб.: БХВ-Петербург, 2004. - С. 320.
9.Тынкевич М.А. Численные методы анализа. - Кемерово: Уч.-изд. л., 2002. - 378 с.
10.Sung K., Gregory S. Basic Math for Game Development with Unity 3D. -New York: Springer Science + Business Media, 2019. - 414 p.
11. Дикинстон К. Оптимизация игр в Unity 5. Советы и методы оптимизации приложения, охватывающие все аспекты работы с движком unity3D. - М.: ДМК. Пресс, 2017. - 306 с.

References

1.Arsent&ev A., Vorobkalov P. Izvestija Tul&skogo gosudarstvennogo universiteta. Tehnicheskie nauki. 2011. №3.pp. 246-250.
2.Medvedeva O.A., Gordeev K.I. Guljaev G.Ju. Fundamental&nye i prikladnye nauchnye issledovanija: aktual&nye voprosy, dostizhenija i innovacii. Penza: Nauka i Prosveshhenie, 2017. pp. 105-108.
3.Mandelbrot В. В. The Fractal Geometry of Nature. W. H. Freeman Co., 1983.
4.Janjushkin V.V. Inzhenernyj vestnik Dona. 2008. №2. URL: ivdon.ru/ru/magazine/archive/n2y2008/56
5.Generacija trehmernyh landshaftov. [3D landscape generation]. IXBT.com. URL: ixbt.com/video/3dterrains-generation.shtml (date of the application: 07.04.2020).
6.Carl De Boor. Prakticheskoe rukovodstvo po splajnam [A practical guide to splines]. M.: Radio i svjaz&, 1885. 304 p.
7.Tarasjan V.S., Dmitriev N.V. Inzhenernyj vestnik Dona, 2018, №1. URL: ivdon.ru/ru/magazine/archive/n1y2018/4774
8. Polovenko A.M., Butusov P.N. Interpoljacija. Metody i komp&juternye tehnologii ih realizacii. Interpolation. [Methods and computer technology for their implementation]. SPb.: BHV-Peterburg, 2004. P. 320.
9.Tynkevich M.A. Chislennye metody analiza. [Numerical Analysis Methods]. Kemerovo: Uch.-izd. l., 2002. P. 378.
10.Sung K., Gregory S. Basic Math for Game Development with Unity 3D. New York: Springer Science + Business Media, 2019. 414 p.
11. Dikinston K. Optimizacija igr v Unity5. Sovety i metody optimizacii prilozhenija, ohvatyvajushhie vse aspekty raboty s dvizhkom unity3D [Optimization of games in Unity 5. Tips and methods for optimizing the application, covering all aspects of working with the unity3D engine]. M.: DMK. Press, 2017. p. 306.
unity 2d ВИЗУАЛЬНОЕ МОДЕЛИРОВАНИЕ ЛАНДШАФТ ИНТЕРПОЛЯЦИОННЫЙ ПОЛИНОМ ЛАГРАНЖА visual modeling landscape lagrange interpolation polynomial
Другие работы в данной теме:
Контакты
Обратная связь
support@uchimsya.com
Учимся
Общая информация
Разделы
Тесты