| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование игр, графики и искусственного интеллекта > Что использовать? |
| Автор: Ravend 5.12.2005, 16:01 |
| Привет, All! пробую создать нечто напоминающее Civ3 (карту), интересует именно прорисовка местности и объекты/юниты на ней, элементы карты скорее всего будут 2D, а объекты/юниты 3D (хотелось реализовать их подвижное передвижение) может ктонибудь в общих чертах поведать как лучше это сделать, нужно ли прибегать к каким либо бибилотекам (в случае выбора между OpenGL и DirectX, у меня явное предпочтение к OpenGL - будет ли её достаточно) или можно обойтись стандартными средствами такими как BitBlt? АТЦЫ! ;) осветите для меня этот вопрос как лучше это реализовать? Спасибо. |
| Автор: mr.DUDA 5.12.2005, 16:09 |
| Используй Direct3D, рисуй свою карту на плоском квадрате из 2-х полигонов, фигурки можно грузить хоть из .x-файлов. А по OpenGL, пусть тебе АТЦЫ и помогут |
| Автор: Ravend 5.12.2005, 16:22 | ||||
почему из 2-х полигонов, поясни
ну что же делать подожду, авось и АТЦЫ заглянут |
| Автор: mr.DUDA 5.12.2005, 16:47 | ||
потому что полигон это треугольник, сложишь два треугольника - получится квадрат |
| Автор: Ravend 5.12.2005, 16:56 | ||
не факт что карта будет квадратная тем не менее спасибо за ответ |
| Автор: DENNN 5.12.2005, 18:00 |
| С OGL что конкретно не понятно? А то вопросы такие общие, что тянут на разговор "за жизнь" и религиозные войны. |
| Автор: Ravend 5.12.2005, 18:34 |
| есть желание совместить 2D с 3D, возможно ли это в OGL, если да то как карту хотелось рисовать спрайтами, а юниты делать 3D моделями, вот и возник вопрос возможно ли это совместить в одной сцене и как |
| Автор: DENNN 6.12.2005, 09:49 | ||
Да без проблем. А вот вопрос "как?" опять слишком общий. У тебя какие-то занния по OGL уже есть? |
| Автор: Ravend 6.12.2005, 10:17 |
| ну наверно начальные, большую часть делал пользуясь примерами, на данный момент смог настроить среду, построить 3D сцену с вращением, маштабированием и перемещением отдельных деталей, так же реализована возможность выбора деталей мышкой |
| Автор: DENNN 6.12.2005, 12:10 |
| Чего же тогда спрашиваешь? Рисуй в буфер кадра используя необходимые команды: для 3Д с тремя координатами, для 2Д - с двумя ( не забывая при необходимости расчитывать нужные координаты). При твоей постановке задачи, если объекты карты не могут закрывать 3Д-объекты, то достаточно в первую очередь вывести сам спрайт с картой и очистить Z-буффер, чтоб при опследующей отрисовки 3д объектов они не пересеклись с плоскостью карты. Есттественно, в таком методе решение задачи "нарисовать 3д объект так, чтоб его изображение совпала с нужной областью карты" или "по координатам курсора определить точки пересечения с картой" ложиться полностью на тебя. Если карта будет изометрическая, то можно применить ортогональную проекцию, что избавит от необходимости учитывать перспективные искажения. |
| Автор: Ravend 6.12.2005, 15:46 |
| DENNN позвольте ещё вопрос, на сколько ресурсоемка OpenGL, каким количеством вершин на сцену стоит оперировать ориентруясь на машину со средними характеристиками: 1GHz, 512 Mb, video ~64Mb |
| Автор: mr.DUDA 6.12.2005, 16:27 | ||
Оффтоп, конечно, но: + за наводку на идею... не знал раньше, что во время рендеринга можно чистить буферы как вздумается, очень помогло в решении одной проблемы (до этого просто отключал z-тест |
| Автор: DENNN 6.12.2005, 17:11 | ||||
И сколько нам открытий чудных ... OpenGL - штука замечательная именно отсутствием всякой крутизны. С пониманием что это костыль, а не инвалидная коляска, приходит понимание что на него можно не только опираться, но и размахивать над головой.
Средние характеристики здесь вообще не причем. Как, формально, и сам OpenGL. ПРи правильной постановке задачи можно выбрать правильный алгоритм отрисовки 3Д сцены. Фактически, важен не сам объем данных, котороый нужно вывести, а то, насколько быстро это необходимо сделать. Ты же ведь всерьез не думаешь, что в GTA в OPENGL вся карта каждый раз отрисовывается? |
| Автор: Ravend 6.12.2005, 17:29 |
| так я и не имел в виду отображение всей доступной информации, но некоторый критерий толжен быть, все таки хотелось услышать ответ в цифрах |
| Автор: DENNN 6.12.2005, 17:48 |
| ТОчной формулы не существует. Определитесь какие требования вы предьявляете к клиентскому софту, в первую очередь к видеоподсистеме. Для современных карт NVIDIA, возможно тупо выводить полигоны из несолько сотен тысяч вершин. Только опять же, это метод грубой силы. К примеру у меня на работе стоит ГИС, которая реальный 3д мир в реалтайме крутит. Объемы растра и вектора данных начинаются от 5Гиг и более. И все это даже без видеокарты с 3д функциями. Все потому, что алгоритм достаточно продуманный. |
| Автор: Maniac 15.5.2006, 00:11 |
поделись как нибудь алгоритмом в новом топике ) |
| Автор: Anarhist 15.5.2006, 03:21 |
| Нафиг DX, OPENGL круче и легче, а трудности создания такой штуки для себя я не вижу! |
| Автор: Maniac 15.5.2006, 03:54 |
легче - да, однозначно круче - ???? Так поделись с человеком мыслями, он за этим здесь |
| Автор: Anarhist 15.5.2006, 12:31 |
| 2d выводишь на задний буфер, вот ток зафиг тебе это на таком компе? Про движение однозначный ответ- скрипты! А про OpenGL скажу! В школе в старших классах преподают паскаль(Delphi), все считают его очень примитивным языком, и никто никогда не задумывался что на нем спокойно можно написать все, начиная от игры потипа Халфы и заканчивая программой управления ядерными ракетами... Вот так и с OpenGL- На нем можно все!!! Совсем другое дело в умении, не умеешь, не берись! |
| Автор: Exekutor 23.5.2006, 14:56 | ||
да, но тогда ракета будет в процессе своего полета замирать на несколько секунд... не в самом языке суть, а в том в какою последовательность машкодов/асм-команд все это переводится... Я как-то попробовал на паскале написать программу, в которой складывались заранее заданные два числа, скомпилил все это, открыл турбо-дебаггером и выпал в осадок - то что я там увидел можно охарактеризовать одним словом - шум. Радиомеханики меня поймут... |
| Автор: Exekutor 24.5.2006, 06:36 | ||
ага, поэтому они туда и не слетали... |
| Автор: $tatic 4.6.2006, 08:59 |
| Человеку бы лучше помогли |
| Автор: DENNN 5.6.2006, 10:02 |
http://www.skeptik.net/conspir/moonhoax.htm Всегда лучше проанализировать факты самому, а не повторять чужие выкрики Добавлено @ 10:10 http://www.ufolog.nm.ru/moon15.htm |