![]() |
|
Модераторы: Rickert |
![]()
|
|
| Ravend |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.7.2005 Репутация: нет Всего: 1 |
Привет, All!
пробую создать нечто напоминающее Civ3 (карту), интересует именно прорисовка местности и объекты/юниты на ней, элементы карты скорее всего будут 2D, а объекты/юниты 3D (хотелось реализовать их подвижное передвижение) может ктонибудь в общих чертах поведать как лучше это сделать, нужно ли прибегать к каким либо бибилотекам (в случае выбора между OpenGL и DirectX, у меня явное предпочтение к OpenGL - будет ли её достаточно) или можно обойтись стандартными средствами такими как BitBlt? АТЦЫ! ;) осветите для меня этот вопрос как лучше это реализовать? Спасибо. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 7 Всего: 232 |
Используй Direct3D, рисуй свою карту на плоском квадрате из 2-х полигонов, фигурки можно грузить хоть из .x-файлов. А по OpenGL, пусть тебе АТЦЫ и помогут
-------------------- ![]() |
|||
|
||||
| Ravend |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.7.2005 Репутация: нет Всего: 1 |
почему из 2-х полигонов, поясни
ну что же делать подожду, авось и АТЦЫ заглянут |
||||
|
|||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 7 Всего: 232 |
потому что полигон это треугольник, сложишь два треугольника - получится квадрат -------------------- ![]() |
|||
|
||||
| Ravend |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.7.2005 Репутация: нет Всего: 1 |
не факт что карта будет квадратная тем не менее спасибо за ответ |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 3 Всего: 43 |
С OGL что конкретно не понятно?
А то вопросы такие общие, что тянут на разговор "за жизнь" и религиозные войны. |
|||
|
||||
| Ravend |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.7.2005 Репутация: нет Всего: 1 |
есть желание совместить 2D с 3D, возможно ли это в OGL, если да то как
карту хотелось рисовать спрайтами, а юниты делать 3D моделями, вот и возник вопрос возможно ли это совместить в одной сцене и как |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 3 Всего: 43 |
Да без проблем. А вот вопрос "как?" опять слишком общий. У тебя какие-то занния по OGL уже есть? |
|||
|
||||
| Ravend |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.7.2005 Репутация: нет Всего: 1 |
ну наверно начальные, большую часть делал пользуясь примерами, на данный момент смог настроить среду, построить 3D сцену с вращением, маштабированием и перемещением отдельных деталей, так же реализована возможность выбора деталей мышкой
|
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 3 Всего: 43 |
Чего же тогда спрашиваешь? Рисуй в буфер кадра используя необходимые команды: для 3Д с тремя координатами, для 2Д - с двумя ( не забывая при необходимости расчитывать нужные координаты). При твоей постановке задачи, если объекты карты не могут закрывать 3Д-объекты, то достаточно в первую очередь вывести сам спрайт с картой и очистить Z-буффер, чтоб при опследующей отрисовки 3д объектов они не пересеклись с плоскостью карты. Есттественно, в таком методе решение задачи "нарисовать 3д объект так, чтоб его изображение совпала с нужной областью карты" или "по координатам курсора определить точки пересечения с картой" ложиться полностью на тебя. Если карта будет изометрическая, то можно применить ортогональную проекцию, что избавит от необходимости учитывать перспективные искажения.
|
|||
|
||||
| Ravend |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.7.2005 Репутация: нет Всего: 1 |
DENNN
позвольте ещё вопрос, на сколько ресурсоемка OpenGL, каким количеством вершин на сцену стоит оперировать ориентруясь на машину со средними характеристиками: 1GHz, 512 Mb, video ~64Mb |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 7 Всего: 232 |
Оффтоп, конечно, но: + за наводку на идею... не знал раньше, что во время рендеринга можно чистить буферы как вздумается, очень помогло в решении одной проблемы (до этого просто отключал z-тест -------------------- ![]() |
|||
|
||||
| DENNN |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 3 Всего: 43 |
И сколько нам открытий чудных ... OpenGL - штука замечательная именно отсутствием всякой крутизны. С пониманием что это костыль, а не инвалидная коляска, приходит понимание что на него можно не только опираться, но и размахивать над головой.
Средние характеристики здесь вообще не причем. Как, формально, и сам OpenGL. ПРи правильной постановке задачи можно выбрать правильный алгоритм отрисовки 3Д сцены. Фактически, важен не сам объем данных, котороый нужно вывести, а то, насколько быстро это необходимо сделать. Ты же ведь всерьез не думаешь, что в GTA в OPENGL вся карта каждый раз отрисовывается? |
||||
|
|||||
| Ravend |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.7.2005 Репутация: нет Всего: 1 |
так я и не имел в виду отображение всей доступной информации, но некоторый критерий толжен быть, все таки хотелось услышать ответ в цифрах
|
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 3 Всего: 43 |
ТОчной формулы не существует. Определитесь какие требования вы предьявляете к клиентскому софту, в первую очередь к видеоподсистеме.
Для современных карт NVIDIA, возможно тупо выводить полигоны из несолько сотен тысяч вершин. Только опять же, это метод грубой силы. К примеру у меня на работе стоит ГИС, которая реальный 3д мир в реалтайме крутит. Объемы растра и вектора данных начинаются от 5Гиг и более. И все это даже без видеокарты с 3д функциями. Все потому, что алгоритм достаточно продуманный. |
|||
|
||||
![]()
|
| Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |