Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование игр, графики и искусственного интеллекта > Что использовать?


Автор: 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, пусть тебе АТЦЫ и помогут smile

Автор: Ravend 5.12.2005, 16:22
Цитата
mr.DUDA
Используй Direct3D, рисуй свою карту на плоском квадрате из 2-х полигонов, фигурки можно грузить хоть из .x-файлов.

почему из 2-х полигонов, поясни

Цитата
А по OpenGL, пусть тебе АТЦЫ и помогут smile 

ну что же делать подожду, авось и АТЦЫ заглянут smile

Автор: mr.DUDA 5.12.2005, 16:47
Цитата(Ravend @ 5.12.2005, 15:22)
почему из 2-х полигонов, поясни

потому что полигон это треугольник, сложишь два треугольника - получится квадрат

Автор: 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
Цитата(Ravend @ 5.12.2005, 18:34)
есть желание совместить 2D с 3D, возможно ли это в OGL, если да то как

Да без проблем. А вот вопрос "как?" опять слишком общий. У тебя какие-то занния по 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
Цитата(DENNN @ 6.12.2005, 11:10)
и очистить Z-буффер

Оффтоп, конечно, но:

+

за наводку на идею... не знал раньше, что во время рендеринга можно чистить буферы как вздумается, очень помогло в решении одной проблемы (до этого просто отключал z-тест smile).

Автор: DENNN 6.12.2005, 17:11
Цитата(mr @ 6.12.2005, 16:27)
за наводку на идею... не знал раньше, что во время рендеринга можно чистить буферы как вздумается, очен

И сколько нам открытий чудных ... smile
OpenGL - штука замечательная именно отсутствием всякой крутизны. С пониманием что это костыль, а не инвалидная коляска, приходит понимание что на него можно не только опираться, но и размахивать над головой. smile

Цитата(Ravend @ 6.12.2005, 15:46)
позвольте ещё вопрос, на сколько ресурсоемка OpenGL, каким количеством вершин на сцену стоит оперировать ориентруясь на машину со средними характеристиками:
1GHz, 512 Mb, video ~64Mb

Средние характеристики здесь вообще не причем. Как, формально, и сам OpenGL. ПРи правильной постановке задачи можно выбрать правильный алгоритм отрисовки 3Д сцены. Фактически, важен не сам объем данных, котороый нужно вывести, а то, насколько быстро это необходимо сделать. Ты же ведь всерьез не думаешь, что в GTA в OPENGL вся карта каждый раз отрисовывается? smile

Автор: Ravend 6.12.2005, 17:29
так я и не имел в виду отображение всей доступной информации, но некоторый критерий толжен быть, все таки хотелось услышать ответ в цифрах

Автор: DENNN 6.12.2005, 17:48
ТОчной формулы не существует. Определитесь какие требования вы предьявляете к клиентскому софту, в первую очередь к видеоподсистеме.
Для современных карт NVIDIA, возможно тупо выводить полигоны из несолько сотен тысяч вершин. Только опять же, это метод грубой силы. К примеру у меня на работе стоит ГИС, которая реальный 3д мир в реалтайме крутит. Объемы растра и вектора данных начинаются от 5Гиг и более. И все это даже без видеокарты с 3д функциями. Все потому, что алгоритм достаточно продуманный.

Автор: Maniac 15.5.2006, 00:11
Цитата(DENNN @  6.12.2005,  17:48 Найти цитируемый пост)
Все потому, что алгоритм достаточно продуманный.


поделись как нибудь алгоритмом в новом топике ) 

Автор: Anarhist 15.5.2006, 03:21
Нафиг DX, OPENGL круче и легче, а трудности создания такой штуки для себя я не вижу!  

Автор: Maniac 15.5.2006, 03:54
Цитата(Anarhist @  15.5.2006,  03:21 Найти цитируемый пост)
Нафиг DX, OPENGL круче и легче


легче - да, однозначно
круче - ????


Цитата(Anarhist @  15.5.2006,  03:21 Найти цитируемый пост)
а трудности создания такой штуки для себя я не вижу!  

Так поделись с человеком мыслями, он за этим здесь  smile  

Автор: Anarhist 15.5.2006, 12:31
2d выводишь на задний буфер, вот ток зафиг тебе это на таком компе? Про движение однозначный ответ- скрипты! 
А про OpenGL скажу! В школе в старших классах преподают паскаль(Delphi), все считают его очень примитивным языком, и никто никогда не задумывался что на нем спокойно можно написать все, начиная от игры потипа Халфы и заканчивая программой управления ядерными ракетами... Вот так и с OpenGL- На нем можно все!!! Совсем другое дело в умении, не умеешь, не берись!  

Автор: Exekutor 23.5.2006, 14:56
Цитата

В школе в старших классах преподают паскаль(Delphi), все считают его очень примитивным языком, и никто никогда не задумывался что на нем спокойно можно написать все, начиная от игры потипа Халфы и заканчивая программой управления ядерными ракетами... 


да, но тогда ракета будет в процессе своего полета замирать на несколько секунд... smile 

не в самом языке суть,  а в том в какою последовательность машкодов/асм-команд все это переводится... Я как-то попробовал на паскале написать программу, в которой складывались заранее заданные два числа, скомпилил все это, открыл турбо-дебаггером и выпал в осадок - то что я там увидел можно охарактеризовать одним словом - шум. Радиомеханики меня поймут... 

Автор: DENNN 23.5.2006, 16:30
Цитата(Exekutor @  23.5.2006,  14:56 Найти цитируемый пост)
да, но тогда ракета будет в процессе своего полета замирать на несколько секунд... 

Все дело в правильном проектировании. Для размышлений: в американской лунной программе использовались ЭВМ на базе БИС. 

Автор: Exekutor 24.5.2006, 06:36
Цитата

в американской лунной программе использовались ЭВМ на базе БИС. 


ага, поэтому они туда и не слетали... 

Автор: $tatic 4.6.2006, 08:59
 smile  smile  smile 
Человеку бы лучше помогли 

Автор: DENNN 5.6.2006, 10:02
Цитата(Exekutor @  24.5.2006,  06:36 Найти цитируемый пост)
ага, поэтому они туда и не слетали..

http://www.skeptik.net/conspir/moonhoax.htm
Всегда лучше проанализировать факты самому, а не повторять чужие выкрики  smile

Добавлено @ 10:10 
http://www.ufolog.nm.ru/moon15.htm 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)