Пишу с дивана. Для расчёта полётов над планетой можно юзать сферическую систему координат, например, рассчитывать следующую позицию/поворот крафта по ней и потом переводить обратно в декартовы. Если будут проблемы с z-fighting'ом на больших пространствах то юзать вот это https://www.gamasutra.com/blogs/BranoKemen/20090812/85207/Logarithmic_Depth_Buffer.php но я без понятия, может, эта проблема уже решена в движках. Ремарка про то что можно использовать инвертированный буфер глубины в directx, который тоже решает проблему, но, опять же, я про directx только в новостях про видеокарточки читал. По поводу генерации — есть концепция LOD, то есть в зависимости от расстояния ты генеришь/подгружаешь разные куски геометрии. Типа, один большой кусок планеты издалека, четыре куска когда подъезжаешь поближе, 16 кусков когда совсем в упор. Что-то связанное с quad tree, расстоянием до центра AABB конкретного куска ландшафта, и каким-нибудь алгоритмом генерации, которым можно генерировать одну и ту же карту с разной детализацией. Типа как функции шумов, которые можно детализировать до посинения или пока память в видеокарточке не кончится. Движок это набор инструментов, который в абсолютно любом случае придётся дописывать руками, поэтому выбирай любой.
не смейтесь, но я пробовал написать свойВсе правильно сделал. , а также как считается полет по орбите. Без полета по орбите же невозможно сделать полет "по прямой", потому что прямая в случае планеты - совсем не прямая. И здесь мне интересен опыт разработчиков того же Star Citizen, для которых проблемой это не сталоУравнения движения из курса физики? В той же Elite 2 все это обсчитывалось.
Пишу с дивана.
Для расчёта полётов над планетой можно юзать сферическую систему координат, например, рассчитывать следующую позицию/поворот крафта по ней и потом переводить обратно в декартовы.
Если будут проблемы с z-fighting'ом на больших пространствах то юзать вот это https://www.gamasutra.com/blogs/BranoKemen/20090812/85207/Logarithmic_Depth_Buffer.php но я без понятия, может, эта проблема уже решена в движках. Ремарка про то что можно использовать инвертированный буфер глубины в directx, который тоже решает проблему, но, опять же, я про directx только в новостях про видеокарточки читал.
По поводу генерации — есть концепция LOD, то есть в зависимости от расстояния ты генеришь/подгружаешь разные куски геометрии. Типа, один большой кусок планеты издалека, четыре куска когда подъезжаешь поближе, 16 кусков когда совсем в упор. Что-то связанное с quad tree, расстоянием до центра AABB конкретного куска ландшафта, и каким-нибудь алгоритмом генерации, которым можно генерировать одну и ту же карту с разной детализацией. Типа как функции шумов, которые можно детализировать до посинения или пока память в видеокарточке не кончится.
Движок это набор инструментов, который в абсолютно любом случае придётся дописывать руками, поэтому выбирай любой.
Алсо, спасибо за вопрос, тема интересная и хочется видеть побольше геймдев-страдальцев на этом порносайте.
Комментарий недоступен
На моей прошлой работе у нас был шарик с примерно такой топологией, каждый тайлик детализировался в зависимости от расстояния.
не смейтесь, но я пробовал написать свойВсе правильно сделал.
, а также как считается полет по орбите. Без полета по орбите же невозможно сделать полет "по прямой", потому что прямая в случае планеты - совсем не прямая. И здесь мне интересен опыт разработчиков того же Star Citizen, для которых проблемой это не сталоУравнения движения из курса физики? В той же Elite 2 все это обсчитывалось.
Комментарий недоступен
Комментарий недоступен