Найти тему

Отрисовка реалистичных космических пейзажей в космическом симуляторе

На фоне моих последних интересов, я взялся делать новую мобильную игру на космическую тему, а именно космический симулятор.

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

Космический корабль на фоне планеты
Космический корабль на фоне планеты

На практике это означает что движок корректно работает с диапазоном расстояний порядка 0.001 - 100000 метров. Этого достаточно для большинства игр.
Но разрабатывая реалистичный космический симулятор оперировать приходится миллионами километров. А отрисовывать объекты надо будет в диапазоне расстояний от 0.001 метра (для детального отображения космического корабля) до 1 млн километров (для отображения планет со спутниками которые мы можем увидеть находясь на орбите планеты).
Т.е. верхняя граница отрисовки превышает возможности движка в 10000 раз.

Решается проблема следующим способом. Модели для отрисовки делятся на два слоя для ближних и дальних планов. Причем модели для дальних планов будут в уменьшенном масштабе.
Отрисовкой будет заниматься две отдельные камеры. Сначала отработает камера для дальних планов и отрисует уменьшенные модели планет.
Затем отработает камера для ближнего плана и отрисует космический корабль.

Модели планет внутри игры на самом деле очень маленьких размеров. Намного меньше размеров корабля.
Модели планет внутри игры на самом деле очень маленьких размеров. Намного меньше размеров корабля.

Вот и все. Если хотите я могу периодически писать статьи о своём новом проекте и особенностях его разработки.

Наука
7 млн интересуются