Помощь - Поиск - Пользователи - Календарь
Полная версия: Замкнутое пространство
Форум «Всё о Паскале» > Pascal, Object Pascal > Написание игр
volvo
Приветствую всех, заглянувших в эту тему...

Вот, появилась у меня задумка, и одновременно с задумкой - проблема с выбором средства реализации... Дело в следующем... Мне для одного моего проекта (проект, в принципе, не игровой, но поскольку в играх нечто подобное может встречаться часто - спрошу здесь) понадобилась реализация замкнутого пространства с возможностью свободного перемещения по нему... Все бы ничего, если бы пространство включало в себя комнату, скажем, 10*10 метров и 3 метров высоты...

В моем случае все гораздо сложнее - приблизительные размеры помещения оцениваются в 50 (длина) километров и порядка 20 километров высоты, и в этом "помещении" нужно реализовать передвижение человека (ну, пусть будет перемещение камеры на высоте от человеческого роста до, скажем, одного километра) - что будет равноценно перемещению человека на ногах или на вертолете...

Если быть совсем точным, лучше всего объект, который я хочу реализовать, описывается так: полый цилиндр диаметром 20 километров длиной 50 километров, вид изнутри (Олег, ты правильно догадался, именно это я и хочу сделать smile.gif ), с возможностью установки в произвольных местах некоторых объектов (кубов, шаров, более сложных объектов, неважно, главное - реализовать сам объект и перемещение по нему, дальше я разберусь), с возможностью также перемещения "под водой", "в тумане", "в облаках", и т.п. эффекты...

Собственно вопрос: что лучше использовать (для успешной реализации всех перечисленных спецэффектов, и максимально реалистичного отображения объекта)? В принципе, доступными средствами на данный момент являются DirectX или OpenGL, среда разработки - предпочтительно Дельфи (возможно - FPC), но возможен переход на C++ (под OpenGL)... Если у кого был опыт разработки трехмерного мира подобного масштаба - просьба откликнуться, рассказать, с какими сложностями можно столкнуться в процессе разработки, возможно, есть какие-то сторонние (желательно - FreeWare) библиотеки, использование которых облегчит разработку?
arhimag
Впринципе для этого можно использовать DGLE, но если хочеться, чтобы фпс было побольше и порыться глубже, то Opengl ИМХО он проще и удобнее, правда от DirectX, имхо, можно добиться большей производительности. А так, и OpenGL и DirectX есть и под Delphi, все зависит от твоего желания, но OpenGL имхо менно для твоей задумки будет значительно проще!
Lapp
Я извиняюсь за вторжение - не считаю себя специалистом в этом вопросе. Но один пункт меня заинтересовал..
Почему ты считаешь, что комната - это мало, а 50 км - много? Ведь ясно, что вопрос только в отношении размеров объема к размеру деталей. То есть, если мы захотим в комнате рассматривать микронные неровности, то задача усложнится больше, чем рассматривание метровых деталей в 50 км..
А если так, то на первый план выступает способ отображения объекта с разными уровнями детализации. И тут полагаться на графические библиотеки, имхо, не стоит. Надо иметь специальный движок, наподобие того, что используется во flight-симуляторах. Наверняка такие движки есть - хотя я их не знаю, как неспециалист.. Мне кажется, такую штуку интересно было бы разработать самому - но это вопрос желания и наличия времени.. - последнего как правило нету sad.gif.
Я правильно понял суть вопроса?
arhimag
то что ты говоришь реализуеться достаточно легко, алгоритм бсп деревьев, его легко редактировать набором констант и блаагодаря этому можно редактировать детализация объектов.
volvo
Цитата
Почему ты считаешь, что комната - это мало, а 50 км - много?
Объясняю, в чем основная проблема: дело в том, что при таком раскладе, что человек находится на внутренней поверхности цилиндра, для него НЕТ скрытого пространства, это во-первых (изгиб поверхности НЕ скрывает, а открывает все то, что на этой поверхности находится) достаточно поднять камеру вверх, и должно быть видно все, что творится на противоположной стороне цилиндра (при условии хорошего освещения и чистой атмосферы внутри объекта, а освещение будет прекрасным, и прозрачность атмосферы должна колебаться от абсолютно прозрачной до густого тумана, поэтому полагаться на скрытие деталей за туманом нельзя, да и размеры объектов могут быть километровыми...), а во-вторых, я вообще не могу никак сообразить, как реализовать то, что камера находится ВНУТРИ, а не снаружи цилиндра, ну, и с физикой дикие проблемы: цилиндр в принципе вращающийся, следовательно сила тяжести направлена не куда-нибудь, а от продольной оси цилиндра "под ноги человеку", это тоже привносит дополнительные проблемы (в частности - представь, как должна вести себя вода в таком мире)...

Так что, готовые движки скорее всего отпадают, буду пробовать делать на маленьких моделях вручную...
arhimag
Volvo , поведай тайну, что это такое?
А по поводу графики, то действительно, это очень похоже на классический пример для бсп деревьев.
volvo
Классический? Ты работал с DirectX ВООБЩЕ когда-нибудь (не на уровне "Hello, World!")? Можно посмотреть твои работы? Аналогично - с OpenGL, ссылку на ТВОИ программы приведи...
arhimag
В directX работал только с directdraw, а для dricetX 3d знаю только теорию, на практике ничего на нем не делал, а вот OPENGL использовал и в достаточно большом количестве, и огромные ландшафты делал!
Altair
Цитата
Volvo , поведай тайну, что это такое?

Можно я? smile.gif
Это будет трехмерное путешествие по миру инопланетного космического корабля!
Нажмите для просмотра прикрепленного файла
Незабываемое путешествие!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.