ПрограммированиеФорумОбщее

Создание планет и супербольших пространств? (2 стр)

Страницы: 1 2 3 Следующая »
#15
12:54, 5 янв 2016

Ciaphas
> Совершенно верно.
> Просто прямоугольник замкнуть надо, соединив противоположенные стороны.
> Конечно, топология при этом другая будет, чем на поверхности сферы.)
А тор с нулевым радиусом - это сфера. Эврика!

BUzer
> Меня удивляет, кстати, что популярные движки всё ещё не переползают на double
> для всяких координат игровых объектов, учитывая имеющийся спрос на огромные
> игровые пространства.
Дык это проблему не решает, а только откладывает на попозже. Ну и основная проблема в таких вещах даже не рендер, а физика.

#16
13:32, 5 янв 2016

https://trello.com/c/M4LgGSUW
Да не все так плохо в анреал енжине..

#17
13:36, 5 янв 2016

http://www.gamedev.ru/projects/forum/?id=139185

#18
13:58, 5 янв 2016

http://spaceengine.org/
http://www.gamedev.ru/projects/forum/?id=122716

http://scrawkblog.com/2014/05/19/proland-to-unity-terrain/

#19
15:00, 5 янв 2016

BUzer
> Меня удивляет, кстати, что популярные движки всё ещё не переползают на double
> для всяких координат игровых объектов, учитывая имеющийся спрос на огромные
> игровые пространства.
Меня не удивляет, учитывая, что UE4 и так уже память гигабайтами жрёт раз, а фпс выше 30 не поднимается два.

#20
15:23, 5 янв 2016

Denadan
> ОП, напрямую ты не сделаешь никак, это невозможно чисто технически. такие вещи
> иммитируются разными уровнями детализации, когда у тебя фактически несколько
> сцен(тут сцены - уровни отображения а не сцены юнити, как ты это реализуешь -
> отдельный разговор) - например
> "планету не видно воопше" - рисуем просто скайбокс с отметками объектов
> "планета различима как диск" - рисуем билборд планеты со статической текстурой
> "планета близко, видны крупные детали" - рендерим объект с деталями имитируя
> его удаленность(например рисуем в отдельную текстуру, которую натягиваем на все
> тот же билборд но побольше)
> "на орбите" - рисуем часть сферы
> "заходим на посадку" - кривизной можно пренебречь, место посадки - упрощенная
> 3д сцена, генерируемая(если места посадки произвольны) или заранее
> созданная(если места посадки заданы жестко)
> "ходим на планете" - детальная игровая 3д сцена с интерактивными объектами и
> прочей фигней
Но ведь для того, чтобы все это сымитировать, все равно нужно:
1)Создать в памяти сферу-планету с реальными размерами, чтобы корректно рассчитывать все отображения при различном удалении звездолета от нее.
2)Сохранить реальные(огромные) координаты других космических объектов, с их реальным удалением друг от друга.
3)Управлять размерами отображаемой на экран информации в зависимости от удаления и угла поворота относительно планеты.

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

#21
16:23, 5 янв 2016

Крофтикус

Но почему когда я хочу создать куб 10х10 на двухметровой сцене, движок делает все тоже самое, но только сам?
Никто же не предлагает при движении к обычному кубу, менять его размер, имитируя приближение. А при подходе вплотную, заменять его на плоскость?

Чтобы это было тем же самым, движок должен позволять граням куба быть целым ландшафтом с горами, реками и холмами и состоять из тысяч полигонов, а игроку уменьшится до размеров микроба, сесть на этот куб и походить по граням.
Вряд ли, однако, движок это позволит.
А космические расстояния просто во float не поместятся: расстояние от Земли до Солнца в метрах больше чем максимальное значение float. Придется double использовать. А движок, скорее всего, этого не делает.
А расстояние между звездными системами  и doubl'ом не выражишь. Придется использовать типы для записи сверхбольших чисел, или мерять в единицах большего масштаба. В парсеках, например.

#22
16:25, 5 янв 2016

А что-нибудь, кроме U и UE в природе существует? На моей памяти кто-то космическую стрелялку делал с круглыми планетами, 3D во всех направлениях и прочие красоты. Там даже на планету можно было высаживаться и она была круглая. Потом после высадки только лодилась плоская модель ландшафта.

#23
16:37, 5 янв 2016

почему? да хотя бы потому что вся современная технология 3д графики ориентирована на построение довольно ограниченных сцен с ограниченным числом объектов.

1) точность чисел используемых в расчетах координат - float, это 6-7 знаков. для хранения расстояния до хотя бы до луны в метрах(что уже не достаточно для объектов на поверхности) нужно 9. до солнца - 12, объектов оортова облака все 15, ты не сможешь поместить в одну координатную систему плутон и землю с луной, или луну и вот то дерево на земле. да, современные видеокарты могут и в дабл, у которого как раз 15 знаков точности, но возьмем соседнюю звезду и он уже не поможет. а это только одна солнечная система.

2) количество деталей. начнем с простого... планета это огромная сфера, такс.. приблизительное количество узлов сетки покрывающую землю с шагом ~1м  что бы она была достаточно гладкой сферой порядка 0,5e15(площадь земли 510 000 000 км2, км2 покрытый сеткой через метр - миллион узлов), только для хранения такого массива данных понадобится 12 петабайт памяти(3 координаты в дабле). это мы исчо даже не начали трогать ландшафт, облачный покров, океаны, не говоря уже о объектах на поверхности. 12 петабайт только вершин. каждый кадр. что бы честно нарисовать далекую планету размером с землю, которая занимает 100 пикселей на экране.
а вот для этого
>1)Создать в памяти сферу-планету с реальными размерами, чтобы корректно рассчитывать все отображения при различном удалении звездолета от нее.
>2)Сохранить реальные(огромные) координаты других космических объектов, с их реальным удалением друг от друга.
>3)Управлять размерами отображаемой на экран информации в зависимости от удаления и угла поворота относительно планеты.
тебе нужно всего несколько значений. расстояние и радиус объекта. при приближении - детализация до нужного уровня. полная детализация ограниченого участка поверхности. расстояние относительное. между звездами с одной точностью, между звездой и планетой - другая, планетой и спутниками - третья.

да и останавливаясь на небольших сценах - там же тоже совсем все не честно. различные игры с шейдерами для имитации рельефа поверхности, заранее просчитанные тени статических объектов, отсечение невидимой геометрии и исчо вагон и маленькая тележка всякого шулерства в "честном" 3д

#24
17:03, 5 янв 2016

Алексей Патрашов
> А что-нибудь, кроме U и UE в природе существует? На моей памяти кто-то
> космическую стрелялку делал с круглыми планетами, 3D во всех направлениях и
> прочие красоты. Там даже на планету можно было высаживаться и она была круглая.
> Потом после высадки только лодилась плоская модель ландшафта.
А тему Вы вообще читаете? Ссылки есть - смотрите.

#25
21:09, 5 янв 2016

вот тут вроде давно придумали как на юньке вывернуться : )

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

З.Ы. _vasa_
> Да не все так плохо в анреал енжине
там все так же, поскольку они кешируют обратный z-buffer, я так и не понял зачем, хотя вот из отсюда нам пишут

Для того чтобы избежать Z-fighting при больших значениях Far Plane, мы используем технику reversed depth buffer. Смысл этой техники очень прост: при расчете матрицы проекции необходимо поменять местами Far Plane и Near Plane и инвертировать функцию сравнения глубины на больше или равно

ну и отдельные пожелания в "тро-ло-ло" датированные х.з. когда не роляют

#26
21:39, 5 янв 2016

seaman
> А тему Вы вообще читаете? Ссылки есть - смотрите.
А какие реальные варианты в них есть?
SpaceEngine - это не движок, а интерактивный планетарий, с закрытым исходным кодом.
Случайный Космос - из той же оперы.
Proland to Unity: Terrain - просто статья про генерацию ландшафта.
trello.com - не очень разобрался о чем там вообще написано, если честно.

#27
21:40, 5 янв 2016

seaman
> А тему Вы вообще читаете?
Я прочитал и поэтому так удивлён, как будто всё сошлось на этих двух. Особо выдающиеся люди умудрялись даже прогрессивные сетки на геоландшафтах делать и гравитацию делать к центру планеты, а не просто в одном направлении. С посадкой на планету будут математические трудности потому, что там вместо функций численное решение, но сейчас это не проблема, зато можно будет сажать челноки очень реалистично, если технология сеттинга соответствующая.

#28
21:58, 5 янв 2016

Крофтикус
> trello.com - не очень разобрался о чем там вообще написано, если честно.
Там о запросе фичи в виде новой системы координат для open world..

Sh.Tac.
Первая ссылка почему то не открывается

#29
22:05, 5 янв 2016

странно, я где-то на эпиковском форуме нашёл, мол у нас пока нет, смотрите
www.davenewson.com/dev/unity-notes-on-rendering-the-big-and-the-small

а, да вот же

З.Ы. но вообще тема мне видится бесперспективной, ну даже нарисовал планету, что дальше с ней делать?
её ни обойти, ни облететь за разумное время, а делать там нечего : )

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.