Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Вниз

Оцените возможности 3D OpenGL движка.   Найти похожие ветки 

 
Unknown user ©   (2003-11-02 19:32) [0]

Я уже 3 месяца работаю над созданием своего 3D движка, а сегодня выложил демку. Прошу оценить - http://www.delphimaster.ru/cgi-bin/download.pl?look=1&id=1067788632&n=1. И пожалуйста укажите какой средний FPS показывает демка (а ткакже видео/процессор).


 
DillerXX ©   (2003-11-03 16:23) [1]

А ты уверен, что не забыл положить что-то в папку maps?


 
Unknown user ©   (2003-11-03 17:19) [2]

2 DillerXX. Я уверен, что не забыл -я преднамеренно не положил карту в папку Maps. Просто как я не упаковывал в заветные <1Мб не втиснул -пришлось разбить на 2 архива. Так что карту для демки ищи рядом, она называется "Карта для Robots 3D -Demo 2".
Скачай не пожалеешь...


 
DillerXX ©   (2003-11-03 20:08) [3]

Как у меня все ГЛЮЧИТ!!!! Ты говоришь, это написано в OpenGl? Вроде у меня с дровами к нему всё Ок... Это DirectX вроде глючит... А в 3d max я в OpenGl работаю, иначе не работает. У меня при движении, экран то чёрным, то нормальным становится :(
А где танки, роботы и тд? А средняя Fps  гдето 20-30 У меня Athlon 700; 256Mb; 32Mb у моего GeForce 2MX.


 
miek ©   (2003-11-03 20:08) [4]

А какой сакральный смысл в "заветных" 1 МБ?


 
Unknown user ©   (2003-11-03 20:32) [5]

2 DillerXX. У тебя хоть ландшафт отрисовывается? Должно быть нечто похожее на скриншот -равнина с холмами по границе. Движение при помощи клавиш A,S,D,W происходит? Если нет -отключи режим Auto -клавиша F1. А насчет таких глюков - это для меня новость, программа запускалась на 3 компъютерах -проблем замечено не было, на всех компах как раз и стояли GeForce. Попробуй сделать следующее: зайди на закладку Экран-Параметры и выставь режим 800х600х32, затем Дополнительно и найди настройки производительности -там отключи синхронизацию кадров и анизотропную фильтрацию. А для того чтобы повысить FPS -зайди в папку где распакована демка найди файл Data\Models\Tank_Ma1\Hull\Model.ini и перед секцией [Trace] поставь символ #. Это отключит следы, которые оставляет танк. А насчет "где танки, роботы" -танк должен тебя преследовать, а внутри робота ты сидишь, и управляешь им. Свободная камера -F4, управление стрелками.
Попробуй и напиши, как лечится баг.


 
Unknown user ©   (2003-11-03 20:34) [6]

2 miek. В разделе "Кладовка" этого сайта ограничение по размеру выкладываемых файлов 1 мег. Потому, я так думаю, там так мало игрушек.


 
cyborg ©   (2003-11-05 00:45) [7]

На DelphiGFX лежит пример, тоже ездят танчики по ландшафту, помоему быстрее работают чем у тебя, твои танки у меня 16-26 FPS ездят.
AMD Duron 800 / 384 / RivaTNT2 32 / WinXP
Это медленно очень, у меня НидФорСпидПорше быстрее играет, чем у тебя землю показывает.


 
Asteroid ©   (2003-11-05 03:20) [8]

P3-800 / 384 / Matrox Millenium G400 32 / WinME
С танком и следами - 18-22, без танка - 26-46, в среднем где-то 30-34, без следов с танком - 22-26.
Танк дергается, камера тоже.


 
Micah'GF ©   (2003-11-05 08:28) [9]

2 Unknown user ©
дай угадаю - системные требования P4-3ГГц RAM4Гб GeForce4MX88880 1Гб с супермега-мультитекстурированием и не для всяких лохов с Riva TNT2

кроме сообщения "Мультитекстурирование не поддерживается" я ничего не увидел.


 
Unknown user ©   (2003-11-05 17:16) [10]

2 cyborg. На FPS влияют многие факторы и кроме качества самого движка FPS определяет и разрешение моделей, в этой демке используются модели с количеством полигонов 5000 и более (оптимизировал на скорую руку при помощи MultiRes в 3ds max -изначально они состояли из 20000-30000 полигонов), также используются громоздкие текстуры 512х512х24, также отсутствует поддержка уровней детализации(пока), ну и ни кто не говорит, что движок идеален, в нем присутствует еще немало багов, один из них - вызывает резкое падение FPS, при отрисовке следов.


 
Unknown user ©   (2003-11-05 17:18) [11]

2 Micah"GF.Насчет системных требований. Игра задумывалась для современных видеокарт. Планировалось делать "честные" модели объектов карты, а чтобы удерживать FPS -уменьшать их количество.
Например деревья, в большинстве игрушек они представлены 1-2 плоскостями с наложенными текстурами, при приближении это сразу бросается в глаза, поэтому я считаю лучше уже уменьшить разрешение модели дерева до появления угловатости(которую издалека не заметить) но сохранить 3Д, чем рисовать плоские деревья.  Затем мультитекстурирование. Это такая фишка, которая позволяет накладывать несколько текстур одновременно с использованием различных матриц текстуры, с помощью ее можно добится высокой четкости текстур, и за счет аппаратной поддержки, заметно не потеряв в быстродействии. Является расширением OpenGL и соответственно не обязательна поддержка 3Д акселераторами(современные видеокарты поддерживают все). Ну а с Riva TNT - играть в игры попроще.


 
Unknown user ©   (2003-11-05 17:20) [12]

Я пришел к выводу, что требуется небольшое опсание демки.
Итак, вы находитесь внутри шагающего робота(в игрушке это будет главная боевая единица). Робот перемещается по ландшафту в режиме Auto, чтобы перейти на ручное управление нажмите F1. Управление клавишами A,S,D,w -доступно 8 направлений движения(как в большинстве 3Д игр). Перейти в режим наблюдения со стороны(свободная камера) -F4. Управление камерой стрелками. В
этом режиме камера устанавливается в центре карты на высоте 100м и смотрит вертивально вниз. Найдите робота, перемещая камеру. Вы все еще можете управлять роботом: поворот клавишами Delete,Insert, взгляд вверх-вниз -Home,End, упр. движением описано выше. Также работает(криво пока) масштабирование -клавиши F2,F3.


 
Sapersky ©   (2003-11-06 15:57) [13]

не обязательна поддержка 3Д акселераторами (современные видеокарты поддерживают все). Ну а с Riva TNT - играть в игры попроще.

TNT как раз поддерживает мультитекстурирование, хотя и не может делать его одновременно с трилинейной фильтрацией. Voodoo2, Rage128 - тоже поддерживают. Так что не надо их отметать на этом основании (надо отметать не на этом :)). К тому же можно сделать двухпроходное наложение для имитации мультитекстурирования при его отсутствии.


 
Unknown user ©   (2003-11-06 19:34) [14]

2 Sapersky. Riva TNT первая в линейке поддерживает это расширение, но первая версия драйверов для нее(что встроена в Wimdows) всех аппаратных возможностей не поддерживала, отсюда проблемы.
Насчет двухпроходного наложения. Можно и весь OGL эмулировать программно, тогда и 3Д видеокарт ненадобно -берешь видюху на шину ISA и неспешна наслаждаешься...


 
Micah'GF ©   (2003-11-06 20:14) [15]

Угу... точно... поставил детонатор последний - заработала...
Хм.. ну что сказать: 12-15кадров - p3-560 128mb RivaTNT2

странный у тебя танк - заехал на гору на одной гусенице, сделал разворот в сторону края карты, выехал за пределы, наоставлял на пустом месте кучу следов, снова развернулся, заехал на карту, проехал сквозь гору. И во многих местах он как то странно подпрыгивает.
Камера робота слишком низко - в некоторых местах при подъеме на гору кабина проходит сквозь поверхность.

окно как то странно работает - постоянно мелькает часть панели задач, особенно кнопка программы. Иногда мелькают значки рабочего стола и мелькает винамп сквозь окно.


 
Unknown user ©   (2003-11-06 21:05) [16]

2 Micah"GF. Да, глюков хватает, с ними веселее. А насчет, выехал за пределы - этого не будет, просто еще нет границ мира. И подъемов на гору тоже не будет -горы по периметру -это декорации, граница мира пройдет перед ними. Ведь танки не берут подъем 70 градусов, не так ли?


 
Unknown user ©   (2003-11-06 21:10) [17]

Кстати, робот тоже оставляет следы. Кто нибудь это заметил?


 
MrAngel   (2003-11-07 02:21) [18]

AMD Duron 800, GeForce 4 FX 5200 128Mb, 256 DDR 300Mhz.

Тестировал с работающими программами:
1. Windows Media Player - MP3 player.
2. ICQ
3. OutPost Firewall
4. Internet Explorer

Общий фпс при показе всей карты и моделями - 23
Общий фпс на поверхности с моделями - 30
Общий фпс на поверхности без моделей - 37

Во время тестирования никаких багов (не показывало то, не показывало это) небыло.

Однако:
1. Довольно забавно наблюдать следы над поверхностью.
2. Полигоны поверхности и бокса просматриваются с двух сторон, это значительно уменьшает фпс.

А в остальном всё нормально.

Кстати на счёт количества полигонов. У меня есть модель на 50000 с лишним полигонов. Если их штук 8 посадить в 3Д максе то OGL рендерит это дело примерно в 15 фпс. Поэтому слабое место в программе твоей - рендеринг/прорисовка. Посылай полигончики через массив карте, а ещё лучше используй конкретные расширения для конкретного производителя карты.


 
ViK ©   (2003-11-07 03:32) [19]

Duron 1300, GeForce4 MX440 64 mb, 256 mb, Win XP,Detonator 45.23
Средний фпс с моделями - 30, без - 40

в течении 10 минутной погони за танком глюков с видео не было, а вот тан затаранить не удалось

Демка прикольная, только теряешся на незнакомой местности :-)


 
Unknown user ©   (2003-11-07 13:38) [20]

2 All. А как насчет рывков при смене движения(это надо посмотреть на робота со стороны (клав. F4), чтобы увидеть). Никто про них не написал, а я это считаю серъезным недостатком. Надо срочно вводить интерполяцию...


 
Unknown user ©   (2003-11-07 13:48) [21]

2 MrAngel. Спасибо за подробное тестирование. Да над следами конечно надо поработать, пора переходить на шейдеры, иначе красиво не получится. В 3d max"e активно используется динамическое изменения уровней детализации при рендеринге. Называется они это -адаптивная деградация. Также там используется отсечение невидимых поверхностей. А то что я не использую CULLFACE на то есть свои причины. Вышла небольшая лажа с направлением фейсовых нормалей у модели робота, которую я так и не смог исправить(эта лажа возникает при применении зеркального отображения объектов), поэтому если включать отсечение невидимых сторон отдельные части ног робота стают черными(неверное освещение).


 
Unknown user ©   (2003-11-07 13:53) [22]

2 ViK. Также спасибо за тестирование. Танк затаранить несложно - проверка на столкновения работает, да и бегает робот быстрее - это ведь шагающие танки будущего - подвижные с повышеной проходимостью и мощным вооружением. Кстати, я уже научил своего робота приседать и прыгать... Игра все больше становится похожей на Quake...


 
ViK ©   (2003-11-08 07:18) [23]

2 Unknown user
Когда догнал танк, то прошел сквозь него(кажется с левой стороны) примерно до серидины, может че сглючило

И очень не хватает положение камеры от третьего лица, а то и робатом и камерой одновременно тяжело управлять


 
Sapersky ©   (2003-11-08 14:38) [24]

А то что я не использую CULLFACE на то есть свои причины. Вышла небольшая лажа с направлением фейсовых нормалей у модели робота

Ну для робота ладно, а для всего остального почему бы не использовать? Его же можно переключать по ходу дела.

Довольно забавно наблюдать следы над поверхностью.
Да над следами конечно надо поработать, пора переходить на шейдеры, иначе красиво не получится

Чтобы сделать следы НА поверхности, шейдеры не нужны. Насколько я понимаю (сам не пробовал), можно задействовать пресловутое мультитекстурирование, или выводить вторым проходом кусочки (полигоны) ландшафта со следами. Надо посмотреть, как быстрее будет. Кстати, это понадобится и для нормальных (объёмных) взрывов.

это ведь шагающие танки будущего - подвижные с повышеной проходимостью и мощным вооружением

И раза в 2-3 выше, т.е. заметнее, т.е. уязвимее. Но это так, к слову.


 
dmk ©   (2003-11-08 15:38) [25]

P4 2.53GHz/ ASUS GF4 Ti4400 128Mb/ DDR333MHz/ DX9/ WinXP SP1
Открытое пространство ~85 fps
С танком ~75 fps
Глюков не наблюдал.


 
Unknown user ©   (2003-11-10 11:31) [26]

2 ViK. Проверка на столкновения производится с boundbox"ом объекта с использованием вектора перемещения того объекта для которого выполняется проверка. Это не лучший способ. Объекты не занимают все пространство соего бокса, поэтому боксы надо заменить на фигуры, упрощенно(10-20 полигонов) описывающие форму объекта. Над этим я еще не работал. Мне кажется для большинства игрушек это больное место  -взаимодействие(столкновение) объектов друг с другом и с миром...
А насчет положения камеры от третьего лица -это уже работает. Положения камер(положений может быть много) экспортируются из 3ds max в файл Cameras.pos, который считывается при загрузке модели. Правда нет переключения положения камеры. Но все еще будет.


 
Unknown user ©   (2003-11-10 11:32) [27]

2 Sapersky. Да я в курсе насчет возможности вкл./выкл. отсечение. Но хотелось довести до ума модель робота, а то где это видано, чтобы модель рисовалась с вывернутыми наизнанку поверхностями.
Ну и про следы. Думал я насчет мультитекстурирования, но как это реализовать? Координаты текстуры привязаны к вершинам. Надо хитрым способом изменять матрицу текстуры(как я даже не могу себе представить), чтобы расположить текстуру следа в нужном месте и с нужным разворотом. Затем эти матрицы положений следов надо запоминать(еще один массив). Затем появляются дополнительные задержки на переключение матриц. Да и старые видеокарты поддерживают только 2 слоя текстур -столько я уже использую.
Я решил использовать для расположения следов на поверхности свою функцию Surface.Height(Coord:TCoord)(та что заставляет танк дергаться :)), возвращающую высоту поверхности(коорд. Y) в точке X,Z.
И про взрывы. Я как раз сейчас над ними работаю. Вот думаю как лучше организовать фейерверк. Изучал модели Quake, там для взрыва выделяется отдельная модель, представляющая собой плоскость либо часть сферы(файл md3), и набор спрайтов -фазы взрыва. Плоскость модели взрыва в игре всегда перпендикулярна линии взгляда, однако когда эта плоскость персекает стены/пол стает заметно что взрыв плоский и к тому-же проявляются контуры треугольников поверхности в месте взрыва. Как же реализуют взрывы в современных играх?


 
Unknown user ©   (2003-11-10 11:32) [28]

Вопрос ко всем. Как сделать объемный взрыв. Хотелось бы устроить их как можно реалистичней.


 
Sapersky ©   (2003-11-11 11:40) [29]

Координаты текстуры привязаны к вершинам. Надо хитрым способом изменять матрицу текстуры (как я даже не могу себе представить), чтобы расположить текстуру следа в нужном месте и с нужным разворотом.

Ну, примерно так... определяем описывающий прямоугольник (по вершинам) на ландшафте, в который попадает след (если размер следа небольшой, это минимальный фрагмент из 4-х вершин, иначе может быть больше). Рассчитываем для него текстурные координаты следа, повороты, смещения - так же как обычные (но на плоскости, естественно). Не совсем понимаю, что такое матрица текстуры... Матрица, по которой OGL рассчитывает тестурные координаты? Лучше считать их самому, и запоминать в формате вершин. Тогда переключать ничего не надо будет. Чтобы след нарисовался один (а не паркетная плитка), нужно установить специальный режим адресации текстур... в D3D это есть, эначит, и в OGL должно быть. Хотя при диагональной ориентации возможны проблемы... Тогда оставить в текстуре поля вокруг следа размером в полтекстуры (увеличить её размер).
Полученный фрагменты ландшафта запихнуть в специальный буфер и выводить одним вызовом (желательно), установив соответствующий blending mode. В общем, всё примерно так же, как сейчас (хотя я не видел, но предполагаю :)), но полигоны со следами - не просто плоскости, а фрагменты ландшафта.

Объёмный взрыв - рисуется 2 штуки (одинаковые), одна обычный биллбоард, повёрнутый к зрителю, другая - точно так же, как след (на ландшафте).


 
Unknown user ©   (2003-11-11 17:48) [30]

2 dmk. Мощная машина. И FPS должен быть повыше, если в кадре отсутствует танк. 85 -это скорее всего установленная частота кадров монитора. Отключи вертикальную синхронизацию: Система-Экран-Дополнительно-Параметры OpenGL-Быстродействие -должно показать больший FPS.


 
Unknown user ©   (2003-11-11 17:49) [31]

2 Sapersky. Ну, хорошо смотри как мы попадаем, если применяем твой способ... Координаты текстуры следа мы привязываем к вершинам поверхности ландшафта - ведь мы хотим положить след на землю. Мы определяем координаты следа и его разворот в горизонтальной плоскости(относительно оси Y), чтобы затем выяснить какие вершины на поверхности ландшафта след(описывающий его прямоугольник) накрывает. Чтобы расположить текстуру следа нам нужны только 4 вершины ландшафта-отбираем крайние. Обрати внимание -это не будет прямоугольник-значит координаты текстуры надо рассчитывать относительно описывающего эти 4 вершины и нужным образом(по направлению следа) развернутым прямоугольника. К тому же надо следить, чтобы размер следа оставался постоянным. Ты себе представляешь как реализовать все пункты этого алгоритма, начиная от нахождения соответствующих вершин ландшафта? А ведь это еще должно быстро работать.
Гораздо проще использовать готовую модель следа, представляющую собой плоскость с натянутой текстурой и не просто располагать ее параллельно ландшафту в заданной точке, а подгонять координату Y(в мировой системе коорд.) вершин следа, так, чтобы  все вершины лежали на поверхности. И все больше ничего не надо. Функция определения высоты поверхности в заданной(произвольной) точке имеется.

А матрица текстуры -матрица на которую перемножаются текстурные координаты при наложении текстуры. По умолчанию используется единичная. А ведь обои можно клеить не только вертикально...

Чтобы не рисовалась "паркетная плитка" надо просто подкорректировать код. Сейчас след объект оставляет в месте соприкосновения его контактной точки с поверхностью. Ну а так как танк не летает и постоянно касается земли следы он оставляет при каждом Update(совпадает с FPS). Не учел, что называется. И получается у меня 2000 следов при установленном времени жизни следа 8 сек. Исправлю.

Вот про объемные взрывы не понял, объясни пожалуйста подробней. Если первая часть - плоскость, развернутая к зрителю, то что есть вторая часть взрыва?

И спасибо за столь подробные ответы.


 
dmk ©   (2003-11-11 19:57) [32]

Отключил верт. синхр. - получилось
около 110 fps.
Для сравнения: Quake3 Demo1 1024x768x32 ~ 250 fps =)


 
Legaaa   (2003-11-12 09:20) [33]

http://leg.mail333.com/
это (старая версия игры) была написана за один день.
движёк примерно за 10 дней.
вот результат...


 
Unknown user ©   (2003-11-13 10:31) [34]

2 dmk. Ну куда мне угнаться за Quake. В моей демке применяются "тяжеловесные" модели, художников того же Quake сразу бы уволили, если бы он принес модель бота, состоящую из 10000 полигонов(хотя нет не уволили бы -художники все близкие родственики Кармака :)) . В моей демке когда видны и робот и танк сцена состоит из 23000 полигонов(танк -10000, робот-5000, ландшафт-3900 и около 4000 -следы). Баг связанный с рисованием следов танка приводит к выводу огромного количества лишних текстурированных поверхностей(около 2000 с текстурой 64х64х32).Попробуй отключи следы танка(для этого в файле Data\Models\Tank_Ma1\Hull\Model.ini  перед секцией [Trace] поставь символ #) -это поднимет FPS минимум в 1.5 раза. Затем отключи мультитекстурирование для ландшафта(для этого в файле Data\Maps\Default\Surface\Model.ini в секции [Texture] перед ключом Detail поставь тот же #), и проверь задействовано ли Octree в том же файле секция [Octree] ключ Use должен быть установлен в 1.

Ну как догнали мы Quake? Сообщи, интересно как ведет себя моя демка на Ti 4400(эта видеокарта даже FX оставляет позади).


 
Unknown user ©   (2003-11-13 10:31) [35]

2 Legaaa. Ну что я могу сказать -красивые картинки... И все пожалуй. Движка я как-то не заметил. Физика столкновений имеется? Как определеешь высоту ландшафта в конкретной точке?


 
Unknown user ©   (2003-11-13 10:32) [36]

2 cyborg. Запоздалый вопрос: "танчики на DelphiGFX" это ? Тогда неудачное сравнение. Ладшафтом там называется плоскость а танчики состоят из 100 полигонов  и напоминают детские игрушки. Столкновение не отслеживается. Камера не перемещается. Все больше напоминает изометрический движок, чем реальный 3Д.  

Да. скачал еще с того же сайта Doom(не 3) и Wolf(3). "Прикольные" раньше были трехмерные игры, однако...


 
Sapersky ©   (2003-11-13 10:53) [37]

Чтобы расположить текстуру следа нам нужны только 4 вершины ландшафта-отбираем крайние.

Вообще-то нам нужно рассчитать текстурные координаты ВСЕХ вершин, попавших в прямоугольник. И выводить их все, чтобы получился именно след, лежащий на поверхности (поэтому при большом количестве следов возможно быстрее будет нарисовать ещё раз весь ландшафт).
Вот, только сейчас дошло - возможна проблема с искажениями при больших углах наклона ландшафта, ведь лепим текстуру мы строго сверху... В идеале нужно учитывать при расчёте текстурных координат углы наклона полигонов. Или надеяться, что танк на крутую гору не залезет :)

Обрати внимание -это не будет прямоугольник-значит координаты текстуры надо рассчитывать относительно описывающего эти 4 вершины и нужным образом(по направлению следа) развернутым прямоугольника

Не нужно разворачивать прямоугольник. Т.е. нужно, но только для того, чтобы определить, какие вершины используются для рисования данного следа. Поворот, сдвиг в пределах полигона, масштабирование следа делаются исключительно модификацией текстурных координат, которые вовсе не обязаны напрямую зависеть от физических. Сам же написал - "обои можно клеить не только вертикально".

Ты себе представляешь как реализовать все пункты этого алгоритма, начиная от нахождения соответствующих вершин ландшафта? А ведь это еще должно быстро работать.

Да в общем представляю, за исключением коррекции искажений на больших углах. Но и это в принципе возможно. Может, напишу простенькую демку (возможно, это следовало сделать ВМЕСТО написания данной телеги :)), на D3D, но не "прямо здесь и сейчас". Работа... :(

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

А если попадёт на ребро? Или если след по размеру больше одной ячейки ландшафта? Тут, как мне кажется, от эффекта "висящих" следов полностью не избавиться. Разве что движок "изометрический" и камера болтается исключительно сверху - тогда не заметно будет. Но это вроде не тот случай.

Чтобы не рисовалась "паркетная плитка" надо просто подкорректировать код.

Да нет, я имею в виду случай, когда надо нарисовать маленькую текстурку на большом полигоне, чтобы она не весь полигон покрыла, а только пропорциональную своему размеру и форме площадь. В D3D это называется "border color" texture address mode.

Вот про объемные взрывы не понял, объясни пожалуйста подробней. Если первая часть - плоскость, развернутая к зрителю, то что есть вторая часть взрыва?

Ещё раз: вторая - рисуется так же, как обсуждаемые здесь следы, т.е. на ландшафте. Конечно, это НЕ объёмный взрыв, это его имитация, вроде деревьев из двух плоскостей, но здесь эффект должен быть лучше за счёт того, что одна плоскость постоянно направлена к зрителю. Хотя вблизи (если взорвали игрока :)) это, скорее всего, будет выглядеть криво. Может, добавлять ещё плоскость...

Вообще же это упрощённый и применимый только к ландшафтам случай более продвинутого (хотя и довольно старого, т.е., не вполне оптимального для современных ускорителей) алгоритма, реализованного в демке nVidia (C++, D3D):

http://developer.nvidia.com/object/Volumetric_Explosion_Example.html

К этой демке есть и описание алгоритма (англоязычное), но в данном архиве оно почему-то отсутствует. Если надо, могу выслать (90 кб).


 
Unknown user ©   (2003-11-13 13:12) [38]

2 Sapersky. Да написание демки значительно бы упростило понимание изложенного. Но основную идею я понял, хотя и не представляю как пересчитать текстурные координаты -ведь нам надо применить все возможные преобразования -вращение,перенос и масштабирование. Хотя если подумать на трезвую голову :), то все возможно.
Твоя идея наверное и есть правильная, так мне думается, и поступают в современных играх. Однако всегда проще(не значит лучше) реализовать так как умеешь.
Моя функция нахождения высоты поверхности может возвращать и полигоны -находим те полигоны, которые лежат под 4 вершинами плоскости следа, находим вершины фигуры обазованной пересечением полигонов между собой и их текстурные координаты и все эти вершины рисуем после отрисовки ландшафта. Если применять такой способ(рисовать отдельную модель для каждого следа), во-первых сохраняется совместимость с уже написанным кодом, во-вторых при рисовании моделей можно применять проверку на попадание в область видимости.

Про объемный взрыв. Скачал пример с nVidia. Неплохо. Только спрайты, по моему не совсем удачные. Да и FPS несколько настораживает на GeForce2 400Mx 120, я ожидал больше, текстуры ведь там 32х32 и полигонов вроде немного, хотя еще ведь рисуется ландшафт...
Скинь, пожалуйста описание алгоритма на мой mail.

И еще(Offtop). Я хочу довести свою демку до уровня игры. Одному мне потребуется на это не один год(если не устану). Если хочешь присоединится - отпиши на mail. Условие -пишем на Pascal и OGL.
Если хочешь вышлю сценарий.


 
dmk ©   (2003-11-13 21:32) [39]

Unknown user ©   (13.11.03 10:31) [34]
К сожалению после данных правок
приложение стало выдавать ошибку.
А про Quake - это я просто, чтобы ты
стремился к лучшему ;) Предела
совершенству нет.
А еще Alpha Doom3 в разрешении 1024х768х32
выдавал около 40 fps.
Там вроде каждый монстр не менее 5000 полигонов.
а общее кол-во на сцену, иногда до 250.000 доходит.
Если верить Кармаку =)


 
Unknown user ©   (2003-11-13 22:50) [40]

2 dmk. А какую ошибку, если не секрет? Если на русском, значит я ее перехватываю.
А Doom3 это конечно круто, сразу видно, что игра создавалась с перспективой на появление новых мощных видеокарт. Мы ее тестировали на GeForce 440MX -8-10 FPS, играть невозможно и качеством графики особо не насладишься. Но это только демо версия для релиза, id, наверное, упростят сцену, чтобы сделать игру доступной не только обладателям GF4 и R9ххх.
Скажи как общее впечатление от демки. Может из нее получится что-либо играбельное? Задумка -аналог Quake , но на открытых пространствах и вместо людей -машины.


 
Unknown user ©   (2003-11-13 22:51) [41]

Вопрос ко всем.
Кому интересна игушка, напоминающая Quake 3 Arenа, но
бои в ней ведут не люди, а дистанционно управляемые роботы? Оружие: пулемет, пушка, ракеты, мины. Место сражений - открытые карты с деревьями и постройками, которые разрушаются.


 
NailMan ©   (2003-11-14 16:21) [42]

У меня в среднем 150-170 фпс. если спотреть на следы от танка, то около 105(если еще танк чуть виден). Если смотреть на пустой ландшафт, то порядка 250. С танком в кадре около 120.

тачка:
AXP3000+
512 ddr400
gf4 ti 4600

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

вобщем так.


 
zxc   (2003-11-14 17:15) [43]

>>Unknown user ©   (06.11.03 21:05) [16]
>>2 Micah"GF. Да, глюков хватает, с ними веселее.

ты случайно не из Microsft?????????????
уж больно девиз знакомый: "Да, глюков хватает, с ними веселее." =))


 
zxc   (2003-11-14 17:18) [44]

а насчёт игрухи молодец!


 
Unknown user ©   (2003-11-14 17:46) [45]

2 NailMan. Да с такой тачкой можно и в Doom3 при максимальном качестве графики играть. Но писать игрушки лучше все-таки на старых компах, тогда будет работать везде.
Баг с дерганием танка известен, причина выяснена -скоро будет исправлен. А вот второй глюк мне не понятен -ты уверен, что это не след исчезает. Дело в том , что робот тоже оставляет следы -может ты его след видел?  Ограниченое время жизни только у следов -они постепенно исчезают.
Вообщем, спасибо.


 
Unknown user ©   (2003-11-14 17:46) [46]

2 zxc. Да нет, ты что у Microsoft список багов -коммерческая тайна, бережно оберегаемая от глаз общественности. Они никогда не признают, что их продукты работают с ошибками...
И это еще не игруха -всего лишь демка. Как думаешь будет ли интересна подобная игра, кому-то? Спасибо за поддержку.


 
Unknown user ©   (2003-11-14 17:47) [47]

Как общее впечатление от демки(не учитывая багов)?


 
zxc   (2003-11-14 17:59) [48]

насчёт того будит ли комуто интерестно или нет, это дело вкуса например мне нравится >>> Quake ||| Arena <<<, другие её могут вообще не переваривать. а что каксается лично моего мнения, я уважаю любое творчество.


 
Unknown user ©   (2003-11-17 09:54) [49]

2 zxc. Ок. Спасибо за то что высказал свое мнение. Может кто-то еще выскажет? Интересно, много ли еще осталось фанов Quake3 Arena в стране?


 
NailMan ©   (2003-11-17 13:27) [50]

Да с такой тачкой можно и в Doom3 при максимальном качестве графики играть.
Эт верно, но D3 я не терплю как класс. Мне ближе Unreal-овские движки, а скорее всего Halo-вский.

Но писать игрушки лучше все-таки на старых компах, тогда будет работать везде.
Не согласен. Перед тем как начать написание игры ты должен был решить на какую категорию писюков ты рассчитываешь. Если для слабых, то реализуешь один набор графики чтоб летало везде, если средней мощности то некий общий, чтоб на быстрых летало с фпс >250, а на слабых(от 500мгц и до 1ггц) чтоб приемлемо притормаживало. При этом полноценно развернуться по спецэффектам невозможно ну никак.

Если ты уж хочешь сделать ох..ную по графике игрушку, даже сетевой шутер аля квака, надо рассчитывать на мощные компы.
Вот к примеру Halo - в ней реализованы все фичи DX8.1.
Там на любой поверхности ландшафта EMBM наложен, особенно эффектно выглядит ландшафт ночью когда идешь по каньенчику и светишь фонариком - чувстуется что все реально. Да и спец эффекты там тоже угугу.
Вобщем для комфортной игры моя тачка по мощи в самый раз (>100 фпс), лишь на одной сцене было <30, да и там было жутчайшее мясо.

Короче ты определись для какого контингента пишешь и под него и пиши, но про слабые тачки(500Mhz, TNT2 и т.д.) лучше сразу забыть
как класс - не сможешь сделать так как задумал и в итоге получится слабенький по возможностям клон кваки.

Даже исходя из того что у тебя некислый ландшафт и следы от всего, даи мультитекстурирование, уже контингент получаецца 1GHz, 256mb, gf2mx400 - это минимум для приемлемых тормозов.

Так что расситывай на мощные и средние тачки.

вот второй глюк мне не понятен -ты уверен, что это не след исчезает. Дело в том , что робот тоже оставляет следы -может ты его след видел?
Не на следы это ну никак не похоже. Глюк наблюдался когда танк полз по горке около края карты и я находился ниже него. Просто танк едет и в какой-то момент времени от него остается висеть какой-то кусок чего-то(мне показалось что это что-то от башни) и затухает, хотя может и не затухал. Вобщем я камеру с этого места уводил, а когда на него опять смотрел куска уже небыло.

Как общее впечатление от демки(не учитывая багов)?
В целом ничего. Надо конечно тебе работать с оптимизацией.
Обязательно надо задействовать расширения процессоров для математики(3DNow, SSE, SSE2). Я вон у себя пока что 3DNow реализовал.

Ну и для общего антуража неплохо бы иметь красивое реальное небо, раз уж решил делать на открытом пространстве. На gamedev.ru недавно кто-то выкладывал демку с офигенной моделью неба - типа закат можно было сделать, который выглядел как реальный. Правда из-за того что модель этого неба был со сложной физической моделью, то все не шибко шустро бегало. ВОбщем можно следать статическое небо с облаками и правильным эффектом солнца и этим усилить качество ладдшафта.

осталось фанов Quake3 Arena в стране?
Ну я остался. Папу каждый день рву 23:3 с обычным набором вооружения(q3dm6,q3dm6-pro) и 17:3 если я имею право убивать только дробовиком, а рокет использовать только для транспота(рокетджампы).


 
Unknown user ©   (2003-11-17 17:34) [51]

2 NailMan. Да, ты знаешь, недавно запустил свою демку на P3-800/GeForce2 200MX и обнаружил резкое падение FPS по сравнению с Atl XP1600/GeForce4 Ti4200 - в среднем в 7-8 раз. Начал выяснять, что вызвало такое поведение -оказалось мультитекстурирование. Так что действительно надо изначально определять минимальные системные требования и уже для них следить, чтобы FPS не падал ниже допустимого.

Насчет оптимизации. В моем движке нет необходимости( по крайней мере пока) выполнять математические рассчеты для массива значений, так что и 3DNow не нужен. Зато рендеринг организован неоптимально, все треугольники выводятся в цикле по одному, TRIANGLE_STRIP не используется -вот тут надо улучшать.

А вот реальное небо, иммитация ветра и вообще максимальная реалистичность -это то к чему я буду стремится. Неплохо было бы взять все лучшее из различных игрушек и поместить в свою. Например, мне нравятся солнечные блики, реализованные в GTA3.


 
Unknown user ©   (2003-11-17 17:34) [52]

Раскажите в каких игрушках вам нравятся эффекты внешней среды и/или взрывов. И где можно достать примеры реализации?


 
cyborg ©   (2003-11-17 17:42) [53]

Варкрафт 3 полно всяких эффектов, молнии, брызги, движения персонажей, магия прекрасная, вода красивая.


 
MrAngel   (2003-11-18 03:21) [54]

Вода в корсарах вторых - лучшее что я видел. Если кто видел лучше пусть укажут.


 
NailMan ©   (2003-11-18 09:58) [55]

Раскажите в каких игрушках вам нравятся эффекты внешней среды и/или взрывов. И где можно достать примеры реализации?
Halo - там красивое солнце(с отражениями) и есть объемный свет(не полупрозрачными объектами), да и вообще очень ладшафт здорово сделан. Также там здорово реализована вода(ПШ) и конечно же EMBM на ледяных озерцах. Последнее вообще ох..но выглядит как со стороны, так и вблизи.
Там же очень хорошо следано раскачивание деревьев и травы, выглядит реальней чем в 3дмарке.

Насчет оптимизации. В моем движке нет необходимости( по крайней мере пока) выполнять математические рассчеты для массива значений, так что и 3DNow не нужен.
Блин почему такое мнение о расширениях?

3DNow дан для ускорения математических вычислений. Я через 3DNow сделал быстрые вычисления:
arccos,
Sqrt,
Sin,
Cos,
dotProduct,
VecNormalize,
VectorLength,
и много чего еще полезного из математических функций.

Можно вплоть до реактивного копирования матрицы в матрицу(тоже что приравнивание, но в несколько раз быстрее) через аппаратный prefetch.

Вобщем с потоковой обработкой не путай.


 
Unknown user ©   (2003-11-18 10:44) [56]

2 NailMan. Я не видел Halo -что это такое и чье творение? И расшифруй ,пожалуйста, ЕМВМ. Насколько я понимаю это из DirectX. А деревья в этой игре трехмерные? Тогда какое количество полигонов выводится в сложной сцене, например в лесу? Меня всегда поражало, как умудряются достигать высоких FPS на сложных сценах. Может за счет расширений конкретных видеокарт? Но тогда надо использовать множество вариантов рендеринга под все известные расширения. Хотя, конечно DirectX в этом плане получше OGL, тебе только надо знать поддерживает ли видеокарта полностью функции версии N Direct"а и используй уже его возможности. Наверное все современные игры пишутся на DirectX.

Ну и насчет 3DNow. Это круто. Я знаю, что можно достичь прироста скорости вычислений с плавающей точкой в несколько раз, используя непосредственно инструкции математического процессора. Но. Если в движке не производятся громоздкие вычисления, скажем VectorNormalize для 5000 векторов, то и реального прироста в скорости рендеринга, даже полностью перейдя на 3DNow, ты не заметишь. А матриц у меня по одной на каждый объект(считая потомков) и на сцену их наберется 10-15 не более. Так, что пока необходимости переводить свои функции на 3DNow(и SSE -не забываем конкурентов) нет.


 
Unknown user ©   (2003-11-18 10:45) [57]

2 cyborg & MrAngel. А как насчет примеров реализации? Кто-то из вас делал свои эффекты?


 
NailMan ©   (2003-11-18 16:54) [58]

Это творенье делалось Bungie для XBox, а потом мелкомягкий портировал на писюки. Вобщем шутер рулезный.

Деревья кстате там все full-3D с шейдерными ветками. Сколько примитивов трудносказать, но моя тачка, учитывая что gf4ti4600 может 132 млн треугольников в секунду и замеряя фрапсом фпс-ы было где-то ~100 в среднем, получается 1.3 млн в сек было в кадре(это пик). Более реальной цифрой можно считать 600-800 тыс.
Так что вот так. И это на  вид очень похоже на правду.

EMBM - это environment bump mapping, тобишь по русски бампинг. Причем не DOT3, а реальный. Кажется с GF3 уже держится аппаратно.
В OGL обязательно такое есть, во только не знаю как там с совместимостью по расширениям для разных вендоров видюх.

Вобщем OGL хорошо, но все таки DX лучше благодяря своей стандартизации. В OGL надо заботиться о всяких разных расширениях для каждой карточки, а директ фичи предоставляет для всех единые, кто их умеет аппаратно. Это ты как раз  и упомянул.

Вот поэтому я и решил писать свой UT под директ.

Если в движке не производятся громоздкие вычисления, скажем VectorNormalize для 5000 векторов, то и реального прироста в скорости рендеринга, даже полностью перейдя на 3DNow, ты не заметишь.
Ага, если у тебя будут процедурные карты(скажем для неба и облаков), то запаришься на FPU их гонять. А делать надо сразу такую математику(через динамические DLL под разные разширения процов+ версия на стандартных функциях из pascal/delphi если проц не умеет).


 
Unknown user ©   (2003-11-23 18:02) [59]

2 NailMan. Да бампинг в OGL есть. И это неплохая вещь, ведь если иллюзию объемности заменять реальными полигонами(до достижения аналогичного качества) -то никакая видеокарта не потянет такую сцену.

Покажи демку своего UT. Интересно, чего добился.

И оцени сценарий моей игрушки http://www.delphimaster.ru/cgi-bin/download.pl?look=1&id=1067788632&n=1. Не слишком наивно?


 
Unknown user ©   (2003-11-23 18:03) [60]

Ко всем. Оцените сценарий этой игрушки http://www.delphimaster.ru/cgi-bin/download.pl?look=1&id=1067788632&n=1. Он выложен в том виде каком будет подаваться в игре. И подскажите, какие имеются аналогичные проекты, игры?


 
NailMan ©   (2003-11-24 09:57) [61]

Unknown user ©
Дело в том что сейчас как-то нет времени занматься UT(Universal Traveller) по причине послезавтрашнего выезда в отпуск(за пределы России) и по причине доделывания видеоплеера. С последним хочется расправиться побыстрей, так как он в основном и тормозит процесс написания UT, а в обывательской жизни просто необходим(фильмы смотрю только им).

Некоторые скриншоты(убогие правда) валяются у меня на сайте(http://www.cyborghome.ru/nailman). Там же валяется демка(консоль там чуть кривая  :-)) GUI-интерфейса.

Вот доделаю DVD в плеере и на этом завершу написание плееера на некоторое время.


 
MrAngel   (2003-11-24 10:42) [62]

Unknown user> Эффекты пока что свои не делал однако горю огромным желанием.

Сейчас я занят изучением скоростного вывода треугольников с использованием расширений. Как раз следующим займусь шейдерными программами.

Кстати никто Cg не использует? Может кто скажет как там чегче чем на чистом OGL писать?


 
Unknown user ©   (2003-11-24 18:21) [63]

2 NailMan. Ходил на твою страничку. Демку не скачал, но скриншоты посмотрел. Особенно понравилось окружающее пространство не хуже чем в лучших космических симуляторах. Ты действительно все это генеришь програмно? Чувствуется научный подход. А модель корабля сам создавал? В каком редакторе?  В общем, если судить по скриншотам -совсем неплохо. Посмотреть бы еще в движении. А GUI, мне кажется, надо делать в последнюю очередь, главное завершить движок. Так что не забрасывай, работай, идея мне нравится.


 
Unknown user ©   (2003-11-24 18:21) [64]

2 NailMan. Ходил на твою страничку. Демку не скачал, но скриншоты посмотрел. Особенно понравилось окружающее пространство не хуже чем в лучших космических симуляторах. Ты действительно все это генеришь програмно? Чувствуется научный подход. А модель корабля сам создавал? В каком редакторе?  В общем, если судить по скриншотам -совсем неплохо. Посмотреть бы еще в движении. А GUI, мне кажется, надо делать в последнюю очередь, главное завершить движок. Так что не забрасывай, работай, идея мне нравится.


 
Unknown user ©   (2003-11-24 18:22) [65]

2 MrAngel. Делфи программисту будет тяжело привыкнуть к синтаксису Cg. Он подобен обычному С. Писать на нем не легче нежели на OGL, но можно добится всевозможных эффектов какие не сделать на OGL. Так что полезная штука этот Cg. Но, к сожалению, полная поддержка только для продуктов nVidia(в отличии от OGL). Вот все что я знаю по этому поводу.

И насчет скоростного вывода треугольников. Большой прирост производительности при использовани расширений? По моим наблюдениям, простой вывод треугольников по одному в цикле между скобками glBegin и glEnd на современных видеокартах работает не хуже чем запись всего массива одним оператором. Разработчики видеокарт/драйверов все неплохо оптимизировали и специфичные аппаратные возможности устройства задействуются прозрачно для пользователя/программера, если возникает необходимость. Так что, я думаю, расширения OGL направленные на повышение производительности задействуются и при использовании стандартных команд.


 
NailMan ©   (2003-11-24 18:39) [66]

Unknown user ©
Демку не скачал, но скриншоты посмотрел. Особенно понравилось окружающее пространство не хуже чем в лучших космических симуляторах. Ты действительно все это генеришь програмно?
Текстуру небулы(скайбокса), а точнее 6 текстур взяты из IW2-EOC. В конечной программе таких небул(мест в Галактике) ограниченное число будет, остальное же будет генерироваться согласно положению на карте. Звезды(дальние) это простой генератор starfield по кубу, но его можно доделать до ума, сделав уплотнение в виде кольца(milky way) также в зависимости от положения в Галактике.
Ближние звезды все генерятся по положению. Проще говоря созвездия будут всегда отображаться реальные от звезды к звезде.

Чувствуется научный подход.
Его еще не было. Вот когда до генератора доберусь(после окончания написания видеоплеера), тогда будет наука, так как я хочу максимальной достоверности и масштабов. Я сейчас копаю разные формулы для планетарных процессов.

А модель корабля сам создавал? В каком редакторе?  В общем, если судить по скриншотам -совсем неплохо. Посмотреть бы еще в движении.
Все модели я делал сам(опыт большой) в LightWave 7. Дизайн тоже мой. То что на скриншотах - это так плевенький буксир. В основном у игрока будет многофункциональный корвет, вот там будет и дизайн и все что можно.
Текстуры правда из той же IW2-EOC, но переработанные. А в движении демку я выложу когда генератор сцены сделаю и прикручу простенькую физику.
Сейчас есть только технодемка, в которой мучу верчу, да и то глюков много.

А GUI, мне кажется, надо делать в последнюю очередь, главное завершить движок.
Дело в том что GUI мне было сделать легче так как я давно этим батутом занимаюсь. Я решил сделать сначала самое простое и отработать на этом деле подход быстрого рендера пользовательского интерфейса(есть же еще и HUD). Да и консоль необходима будет для отладки мозга(AI).
Так что моя тактика - самое простое вначале, а самое тяжелое на десерт.


 
MrAngel   (2003-11-25 18:57) [67]

Unknown user > прирост производительности - просто огромен. Особенно невероятных результатов можно добиться если держать данные вертексов в видеопамяти или АГП памяти.

На счёт Cg. Вроде бы на сайте нвидиа сказано, что программы могут идти как на их картах так и на  картах ATI. Но я точно не уверен - может не так перевёл.

Unknown user > помнится очень давно играл в какуюто космическую игру. Там тоже были различные боевые корабли (также и корветы). Были шахты на астероидах. Также была возможность заселения людей на другие планеты. Я думаю ты делаешь подобную игру ?


 
MrAngel   (2003-11-26 15:27) [68]

Unknown user > Вот данные для сравнения.
Рендер через 7938 треугольников, плюс 80768 полигонов.

Если через glBegin glEnd  - 25 fps - причём использовал glArrayElementEXT, а это будет чуть чуть быстрее.

Если через glDrawArraysEXT - 94 fps.

Ну если использовать AGP то там скорости будут ещё больше. если сделаю на АГП то скажу результат.


 
dmk ©   (2003-11-26 23:54) [69]

Вообще странно как то демка работает.
Я тут GF4 Ti4400 поменял на RADEON 9800 PRO.
Что за хрень. В 2003 3D Mark"e скорость увеличилась
раза в 2,5, а в твоем тесте всего на 10 fps =).
Значит было ~ 110 fps. Стало - 120 fps.
В Quake 3 Demo1 скорость увеличилась с ~250 fps
до 370 fps ^^. Процессор и память не менял.


 
Darthman ©   (2003-11-27 15:34) [70]

>> В 2003 3D Mark"e скорость увеличилась раза в 2,5
Конечно... он же считает не по кадрам, почитайте хелп к марку, там написано как результат получается. Ti4200 от 9600про по скорости не отличаются практически ни на копейку, а по маркам 2003-м в 2.5 раза.


 
Unknown user ©   (2003-11-27 19:59) [71]

2 MrAngel. Вообще-то, ты прав. Библиотеки OGL давно не обновлялись, так что о новых возможностях видеокарт они просто не знают (зато имеется возможность исп. расширения явно). Так что мое высказывание было бы справедливо на момент создания  последних версий OGL.

Расскажи, что-то уже сделал свое на Cg. Скажем, развевающийся на ветру флаг...

Космическая игрушка -это ты меня перепутал с NailMan -он такую пишет. Моя демка(вполне земная) лежит на . Скажи как сценарий?

Запустил SiSoft Sandr"у и в инфе по OGL увидел, что даже GF2 имеет несколько нестандартные(уже) расширений по работе с вершинами, что начинаются с GL_NV. Вот те, наверное, по-настоящему быстро работают и очевидно специализированы под чипы nVidia. Посмотри. Может еще ускоришь процесс.


 
Unknown user ©   (2003-11-27 19:59) [72]

2 MrAngel. Вообще-то, ты прав. Библиотеки OGL давно не обновлялись, так что о новых возможностях видеокарт они просто не знают (зато имеется возможность исп. расширения явно). Так что мое высказывание было бы справедливо на момент создания  последних версий OGL.

Расскажи, что-то уже сделал свое на Cg. Скажем, развевающийся на ветру флаг...

Космическая игрушка -это ты меня перепутал с NailMan -он такую пишет. Моя демка(вполне земная) лежит на . Скажи как сценарий?

Запустил SiSoft Sandr"у и в инфе по OGL увидел, что даже GF2 имеет несколько нестандартные(уже) расширений по работе с вершинами, что начинаются с GL_NV. Вот те, наверное, по-настоящему быстро работают и очевидно специализированы под чипы nVidia. Посмотри. Может еще ускоришь процесс.


 
Unknown user ©   (2003-11-27 20:00) [73]

2 NailMan. По моему, если делаешь игрушку сам(тем более 3Д)- не стоит глубоко копать. Лучше выпустить сырую, кое-как работающую версию, без всяких спецэффектов и наворотов -но выпустить! А не через пол-года год отправить в долгий ящик. А уже потом совершенствовать прогу. Одному ой как непросто быть и художником и дизайнером и придумывать концепт и программировать.


 
Unknown user ©   (2003-11-27 20:00) [74]

2 dmk. Это говорит о том, что большую часть FPS отбирает не рендеринг, а расчетная часть. У меня в кадре 2000 следов-объектов с ограниченым временем жизни и перед каждой отрисовкой в Update производится перебор их всех в TList и уничтожению отживших свое, создание новых... В общем методы Create Free здесь очень популярны -в итоге тормоза...

Баг уже исправлен. Кол-во следов в кадре не превышает 100 при 10 сек. цикле. И кстати, они уже не висят над землей как ранее -нашел способ приклеить их к поверхности.


 
dmk ©   (2003-11-27 22:06) [75]

2 Darthman ©
Так именно по кадрам и получается в 2,5 раза. =)
К примеру:
                    Ti4400      FX 5600 Ultra   R9800 Pro

Самолетики           96 fps      145 fps         230 fps
Battle of Proxicon   7 fps       22 fps          40-45 fps
Mother Nature        NA          17 fps          50 fps (тут аж в 7 раз =)
Троли                3-4 fps     22 fps          50 fps

Остальные не помню
(Все карты у меня стояли, R9800 - оставил себе)

2 Unknown User
IMHO VCL очень сильно тормозит твою App =(


 
MrAngel   (2003-11-27 22:33) [76]

Unknown user > про космос я обращался к NailMan, ошибка с моей стороны вышла.

На самом деле использование VertexArray, существует стандартный - тот который я сейчас использую - этот метод пойдёт на всех видео картах (и нвидиа, и АТИ).

Если использовать расширения, то там да.... GL_NV_ для нвидиа, GL_ATI_ - для АТИ карт. Вот тут то как раз и создаётся то самое неудобство при программировании на нескольких производителей.
На рассширения я пока что решил не переходить, надо бы с наложением текстур разобраться.

На Cg не программирую, пока что, так как не знаю, не уверен, стоит ли браться за изучение.


 
Unknown user ©   (2003-11-28 12:36) [77]

2 MrAngel. Ничего, бывает. Моя демка лежит на http://www.delphimaster.ru/cgi-bin/download.pl?look=1&id=1067788632&n=1. А Cg стоит выучить, если хочешь заниматься графикой серъезно.


 
MeF88 ©   (2003-11-28 15:23) [78]


> 2 Darthman ©
> Так именно по кадрам и получается в 2,5 раза. =)
> К примеру:
>                     Ti4400      FX 5600 Ultra   R9800 Pro

Ты ещё FX5900 измерь, хотя R9800Pro всё равно чуть-чуть круче. ATi Radeon 9800 Pro - вещь просто супер, самая крутая и дорогая, хотя если принять в расчет 512 Mb Wildcat...
> IMHO VCL очень сильно тормозит твою App =(

Поддеживаю. Игры через VCL тем более OGL вообще страх.


 
Unknown user ©   (2003-11-28 18:21) [79]

2 MeF88. VCL там нет. Разве, что TList. А OGL совсем не страх, если конечно уметь пользоваться. Ты когда нибудь слышал о проблемах использования OGL на разных конфигурациях? А с DirectX это постоянно происходит.


 
Unknown user ©   (2003-11-28 18:21) [80]

2 MeF88. VCL там нет. Разве, что TList. А OGL совсем не страх, если конечно уметь пользоваться. Ты когда нибудь слышал о проблемах использования OGL на разных конфигурациях? А с DirectX это постоянно происходит.


 
TButton ©   (2003-11-28 18:27) [81]

посмотрел
Duron 700
192 Ram
16Mb video
8-15fps
вообще - красиво... только облака на скайбоксе боком повернуты... и иногда робота изнутри видно...


 
dmk ©   (2003-11-28 22:29) [82]

>> ATi Radeon 9800 Pro - вещь просто супер, самая крутая и
>>дорогая, хотя если принять в расчет 512 Mb Wildcat...
Да кому нужны (кроме специалистов) профессиональные
3D ускорители с кучей собственных GL расширений?
Вон, 3D Labs уже версию 2.0 OpenGL написали.
http://www.3dlabs.com/support/developer/ogl2/index.htm
Делать им больше нечего что-ли? Денег не напасешся =)

А R9800 Pro не самая крутая(Хотя заплатил за нее 495$).
FX 5950 слегка побыстрее. Но "сейчас" выходит Radeon 9900 XT.
Посмотрим кто кого ;)

2 unknown user
А вот робота я что-то не приметил?!!? =)
Только танк один. Хотя следы от робота обнаружил.


 
MrAngel   (2003-11-29 22:13) [83]

Ги - убежал робот :-))))


 
dmk ©   (2003-11-30 15:20) [84]

Не, ну серьезно! Не видел я что-то никакого робота.
Танк видел, горы видел, следы видел и робота и танка,
а вот робота нету =(. И в ручном режиме покатался.
Не нашел.


 
MrAngel   (2003-12-02 04:00) [85]

Unknown user > Набрал информации по поводу скоростной графики.

Самый лучший вариант это использовать GL_ARB_vertex_buffer_object.

Вот список карт которые поддерживают это расширение http://www.delphi3d.net/hardware/extsupport.php?extension=GL_ARB_vertex_buffer_object

А здесь есть пример как это сделать на Дельфи http://www.delphi3d.net/forums/viewtopic.php?t=154

Свою версию я уже сделал, но мне не нравится рехультат (фпс) - надо ещё над этим работать.


 
Unknown user ©   (2003-12-05 12:05) [86]

2 TButton. Ok. Буду работать дальше. А с облаками вроде все нормально -запустил, посмотрел -все стыкуется. Это на верхней плоскости ты заметил баг?
А насчет того, что робота видать изнутри - этот баг известен. Положением камеры я еще не занимался - в будущем размещение камер будет экспортироваться из 3ds max, а пока просто подобрал координаты в тексте программы.
FPS конечно низкий - как выяснилось главный тормоз(кроме бага со следами) это мультитекстурирование, так как текстуры не маленькие и второй слой укладывается в несколько рядов(кол-во задается матрицей текстуры).


 
Unknown user ©   (2003-12-05 12:06) [87]

2 dmk. Вот когда катаешься в ручном режиме(управление клавишами ASDW) -тогда ты и находишся внутри робота и соответственно управляешь им. Чтобы переключить камеру в режим свободного полета нажми F4, обратно в робота -тоже F4. Кстати по задумке роботом(боевой машиной) ты управляешь дистанционно находясь от него за многие километры. Представь, сидишь ты у себя дома за своим компом и через спутниковый канал связи управляешь боевой единицей которая находится где-то в пустыне Гоби и сражается с такими же машинами. Войны будущего. Почитай сценарий рttp://www.delphimaster.ru/cgi-bin/download.pl?look=1&id=1067788632&n=1.


 
Unknown user ©   (2003-12-05 12:06) [88]

2 MrAngel. Да робот у меня шустрый. Но скоро построю границы мира и никто уже не скроется за скайбоксом.
Если не секрет, какое практическое применение твоего рендера? Он используется в каком-то движке, или просто бьешь рекорды?


 
MrAngel   (2003-12-06 17:20) [89]

Unknown user > Такой метод вывода геометрии используется во всех современных игровых движках, поэтому я думаю его лучше использовать, хотя и накладно по времени (много кода).

На счёт рекордов. Верно - но только для себя - хочу знать возможности своей карты.


 
Sapersky ©   (2003-12-09 01:40) [90]

Скачал-посмотрел (только сейчас :))
Celeron 500 / 256 Mb / Geforce2MX400
С FPS происходит нечто странное. Сначала было 16-17. Потом перенёс в другое место, запустил через некоторое время и получил 35-40 :) То ли вертикальная синхронизация отключилась (похоже, т.к. всё равно притормаживает, хотя и меньше), то ли аппаратный T&L включился, то ли какую-то фичу на диске он не нашёл и она вырубилась... то ли считает неправильно. Мультитекстурирование на месте, следы тоже (фирменным образом висят над поверхностью). Незадолго до того запускал "Ил-2" - тоже на OGL, но потом специально перезагрузился - всё равно 40 FPS :)
Тем не менее, повторюсь, некое подтормаживание имеется. Не надо списывать на медленную машину - демка D3D у меня выводит 46000 полигонов со скоростью 250 FPS (правда, без текстур и за один присест). Поэтому:
1) Вслед за MrAngel рекомендую использовать вертексные буферы (в D3D иначе уже и не рендерят). Может улучшить производительность сильнее, чем самые хитроумные оптимизации, т.к. полностью задействуется мощность 3D-ускорителя.
2) Выводить детальную текстуру не на весь ландшафт, а в области вокруг игрока (т.е. всё-таки вторым проходом - поскольку рисуется не весь ландшафт, это не так страшно; освободится проход мультитекстурирования для других полезных вещей). Ну или хотя бы использовать мипмэппинг (mip-mapping).
3) На фон можно смело ставить текстуры 256*256 или даже меньше. Всё равно они так размазаны jpeg"ом и в такой туманной дали, что разницы никто не заметит.

Относительно дизайна. Хорошее ощущение пространства, объёма что ли... задник хорошо сочетается с передником... в смысле, ландшафт с фоном :)
Хотя, признайся честно, это не твоя заслуга, а неведомого дизайнера, который всё это нарисовал (я уже видел в Сети такие картинки).
Модельки симпатичные. Правда, танку лучше бы стоять на месте (музейный экспонат, судя по времени действия), а не прыгать (буквально) по кочкам. Впрочем, по этому поводу здесь уже жаловались. Анимация робота не сильно впечатляет - вместо стрейфа какой-то танец маленького, гм, лебедя. Да и просто ходьба... если она сделана трансформациями, как вращение башни танка, то это зря, наверное. Робот в данном случае - скорее человек, чем танк, т.е. для него лучше покадровая анимация, как в Quake. Это, помнится, ещё в MechWarrior 3 было - когда твоя железяка хлопнется с копыт, она потом ме-едленно, с явным напрягом встаёт.
При средних и больших дистанциях просмотра модели начинают "рябить" - это, видимо, отсутствующий culling. Возможно также не хватает разрядности Z-буфера. Нужно вместе с параметрами камеры устанавливать переднюю/заднюю отсекающие плоскости, чтобы диапазон Z-буфера оставался (хотя бы примерно) тем же. Ну и лоды (которые вообще полезны).


 
Unknown user ©   (2003-12-09 19:28) [91]

2 MrAngel. О возможностях твоей карты польностью расскажут диагностические программы. Тут скорее, проверка своих возможностей, как программиста...


 
Unknown user ©   (2003-12-10 12:34) [92]

А я думал ты давно посмотрел. Судя по подробным комментам.
FPS считает правильно -тут негде ошибиться -разве что спихнуть на Винду, мол неверно возвращает значение фугкция GetTickCount :). Вертикальная синхронизация не может снижать FPS если он не превышает частоту кадров -так что она ни причем, скорее всего был запущен какой-то ресурсоемкий процесс, либо, что еще хуже, еще одна прога OGL(D3D). Другого объяснения я не нахожу. Хотя еще может быть была занята видеопамять и пришлось исп. системную...

Притормаживание конечно имеется и я уже объяснял причины. Баг со следами(2000 лишних текстурированных поверхности в кадре), и вывод TRIANGLE в цикле по-одному. Зато как будет приятно увидеть FPS после исправления этих недочетов :).

Насчет вывода сетки за один присест я все прекрасно понимаю - не доходят пока руки -занимаюсь внедрением спрайтов, взрывов(спасибо, кстати за документацию по Volumetric Explosion).

Текстуры 256х256 на фон -это малое разрешение. За счет того что скайбокс отстоит далеко от камеры, размеры его сторон большие и текстура прилично растягивается. Даже при 512х512 при ближнем рассмотрении(на краю ландшафта) заметна зернистость. Конечно можно добавить тумана побольше :).

Относительно дизайна. Картинки скайбокса я конечно сам не рисовал(надо поставить CopyRigth на небе над горой), а вот ландшафт моделил сам в максе. Текстура ландшафта тоже из сети, но это и заметно -тени которые имеются на ней не совпадают с реальной поверхностью. Не знаешь кстати где найти текстуры земной поверхности(вид сверху с высоты 80-100 метров)? Если можешь дай линки.

Танк там катается для демонстрации следования поверхности ездящими объектами (не очень удачной кстати), шагающие объекты(роботы) перемещаются по иным законам.

Анимацию я делал сам, так что звиняйте... Как умею так и делаю (я и 3д макс то всего 4 месяца знаю). А вот насчет покадровой анимации как в квейке - это ты зря. Робот такой же механизм как и танк. При перемещении его частей деформации сетки не происходит-значит выводить в каждом кадре новую сетку нет нужды (если ты это имел ввиду под покадровой анимацией). Для человека, то да действительно лучше сохранять отдельную сетку для каждого кадра-тогда он не будет похож на робота. Ну а робот должен быть роботом (извиняюсь за тавтологию). В мехвариор используется трансформация на кватерионах, а то что анимация изменялась в зависимости от степени повреждений в этом заслуга интерполяции -смешивались движения нормального перемещния и перемещения с максимальными повреждениями с нужными соотношениями. У меня трансформации задаются матрицами, что позволяет реализовать не только вращение но и перемещение, например камень, что скатывается с горы...

От "ряби" включение CULLFACE не спасает -очевидно все-таки Z-буфер. Какая там разрядность по умолчанию?


 
Unknown user ©   (2003-12-10 12:34) [93]

А я думал ты давно посмотрел. Судя по подробным комментам.
FPS считает правильно -тут негде ошибиться -разве что спихнуть на Винду, мол неверно возвращает значение фугкция GetTickCount :). Вертикальная синхронизация не может снижать FPS если он не превышает частоту кадров -так что она ни причем, скорее всего был запущен какой-то ресурсоемкий процесс, либо, что еще хуже, еще одна прога OGL(D3D). Другого объяснения я не нахожу. Хотя еще может быть была занята видеопамять и пришлось исп. системную...

Притормаживание конечно имеется и я уже объяснял причины. Баг со следами(2000 лишних текстурированных поверхности в кадре), и вывод TRIANGLE в цикле по-одному. Зато как будет приятно увидеть FPS после исправления этих недочетов :).

Насчет вывода сетки за один присест я все прекрасно понимаю - не доходят пока руки -занимаюсь внедрением спрайтов, взрывов(спасибо, кстати за документацию по Volumetric Explosion).

Текстуры 256х256 на фон -это малое разрешение. За счет того что скайбокс отстоит далеко от камеры, размеры его сторон большие и текстура прилично растягивается. Даже при 512х512 при ближнем рассмотрении(на краю ландшафта) заметна зернистость. Конечно можно добавить тумана побольше :).

Относительно дизайна. Картинки скайбокса я конечно сам не рисовал(надо поставить CopyRigth на небе над горой), а вот ландшафт моделил сам в максе. Текстура ландшафта тоже из сети, но это и заметно -тени которые имеются на ней не совпадают с реальной поверхностью. Не знаешь кстати где найти текстуры земной поверхности(вид сверху с высоты 80-100 метров)? Если можешь дай линки.

Танк там катается для демонстрации следования поверхности ездящими объектами (не очень удачной кстати), шагающие объекты(роботы) перемещаются по иным законам.

Анимацию я делал сам, так что звиняйте... Как умею так и делаю (я и 3д макс то всего 4 месяца знаю). А вот насчет покадровой анимации как в квейке - это ты зря. Робот такой же механизм как и танк. При перемещении его частей деформации сетки не происходит-значит выводить в каждом кадре новую сетку нет нужды (если ты это имел ввиду под покадровой анимацией). Для человека, то да действительно лучше сохранять отдельную сетку для каждого кадра-тогда он не будет похож на робота. Ну а робот должен быть роботом (извиняюсь за тавтологию). В мехвариор используется трансформация на кватерионах, а то что анимация изменялась в зависимости от степени повреждений в этом заслуга интерполяции -смешивались движения нормального перемещния и перемещения с максимальными повреждениями с нужными соотношениями. У меня трансформации задаются матрицами, что позволяет реализовать не только вращение но и перемещение, например камень, что скатывается с горы...

От "ряби" включение CULLFACE не спасает -очевидно все-таки Z-буфер. Какая там разрядность по умолчанию?


 
MrAngel   (2003-12-11 01:07) [94]


> Анимацию я делал сам, так что звиняйте... Как умею так и
> делаю (я и 3д макс то всего 4 месяца знаю).

Есть интересная программа, предназначенная специально для аниматоров - Poser v5.0

Анимация там только костная, хотя может она и тебе подойдет для разработки.


 
Unknown user ©   (2003-12-11 13:34) [95]

2 MrAngel. Утилита экспорта в формат моделей моего движка создавалась для 3д макс на его скриптовом языке. И макс меня вполне устраивает, там тоже можно использовать скелетную анимацию, плюс еще всевозможные плагины от сторонних разработчиков. Вообщем, универсальный редактор. А сделать анимацию получше - для этого надо время и терпение (ни того не другого никогда не бывает много). И делать надо отдельную аннимацию для каждого направления движения, не так как в демке, где по диагонали робот движется так же как по прямой. Надо искать художника... Где они вообще водятся?


 
Sapersky ©   (2003-12-13 22:19) [96]

Относительно сценария.
Это оказалось лучше, чем я предполагал (казалось бы, ну чего можно придумать про роботов, кроме ещё одной BattleTech), но придраться всё равно есть к чему. Сама идея "ограниченной войны по правилам" сомнительна. Идея не новая, но почему-то до сих пор ничего подобного в реальности не используется (сценарий ведь должен быть реалистичным, или хотя бы правдоподобным?). То ли дело в том, что всегда найдутся отморозки, которые плюнут на правила и нечестно, но эффективно всех замочат. То ли просто трудно объяснить какой-нибудь мусульманской стране третьего мира, что она должна тратить чудовищные средства на разработку и постройку роботов (или чего там ещё), притом, что США ей всё равно не догнать. Куда как проще подготовить шахида... или предполагается, что подобные страны к тому времени уже вымрут?
Да и рыцарственности в войнах чем дальше (если взять 20-21 века), тем меньше. Хотя - не используют же сейчас ОВ, ядерное, бактериологическое оружие... грозятся  периодически, но не используют. Значит, всё-таки ограничения реальны?
К тому же сюжет можно построить как раз на нарушении правил. Многие в этом мире вовсе не хотят, чтобы их судьба зависела от какого-то геймера - и пытаются взять ситуацию под свой контроль. Планомерным атакам подвергаются как технические системы - сами роботы, каналы связи, компьютерные системы; так и человеческий фактор - виртуальные бойцы и их команды. Сначала странные отказы боевых систем в самый неподходящий момент, кратковременные потери управления, неожиданные проигрыши и подозрительные перемены настроений в стане коллег-бойцов. Потом взрывы подбитых роботов с характерным грибком, приводящие в негодность и арену, и соперников; роботы, выходящие на охоту за пределы арены, ведомые кем угодно, только не официальными хозяевами; бесследные исчезновения виртуальных бойцов даже из правительственных бункеров. И - по нарастающей, так что турнир, который некогда задумывался как бескровная альтернатива войнам, сам становится общемировой "горячей точкой". Сталкиваются интересы спецслужб, корпораций, мафии и бог знает кого ещё; а достаётся, само собой, в первую очередь виртуальным бойцам. Да, очень весело и здорово сидеть за компьютером и решать судьбы наций, но понравятся ли вам также читерство соперников, сделки с Большим Братом и совестью, потеря друзей и внезапное ощущение собственной физической уязвимости?
Как решать эти проблемы - особого выбора нет, поскольку игра action... Будем умиротворять навечно. Но пригодится и умение распознавать потенциальных союзников, возможно, даже помогать и спасать без сиюминутной выгоды - лишь с надеждой, что окупится. Ведь виртуальные бойцы в основной массе не испытывают друг к другу злобы, они скорее спортсмены, и им всем одинаково не нравится, что их спорт превращается в чёрт знает что. Перед лицом общей угрозы вполне реально забыть личные обиды и образовать союз... Да, они всего лишь геймеры, кун-фу их слаб, а "агенты смиты" вот-вот появятся на пороге с самыми скверными намерениями. Но сохранились ещё некоторые каналы связи, есть персоналки со шлемами виртуальной реальности; и - роботы, пусть немного, но, как уже говорилось, это самые совершенные боевые машины...
Конечно, всё вышенаписанное - чистой воды (хех, не очень чистой) фантастика. Движок для этого должен быть не менее чем уровня Doom3, и профессиональная команда, и бюджет с многими нолями, и издатель на западе. Будем считать это попыткой показать, что любой сюжет можно при желании наворотить так, что мало не покажется :)

По техническим вопросам (ответ на предыдущее сообщение) - потом.


 
Unknown user ©   (2003-12-15 17:58) [97]

2 Sapersky. Да, разошелся ты. Дополнение оказалось объемней самого сценария. Спасибо, что поддержал. Я знал, что идея любителям игрушек понравится -ведь как приятно осознать, что ты не занимаешься ерундой дни напролет, а готовишь себя к виртуальным сражениям за свободу нации. Идея насчет правил конечно слабовата, но как ты и говорил никто же не говорит, что правила будут соблюдаться. Немало в человеческой истории фактов нарушения правил (последний случай -нападение США на Ирак, вопреки ООН). А с таким дополнением в игру проникает интрига, причем развить ее можно до невообразимых размеров -вплоть до 4 мировой войны, после которой человечество уже не выжывет. Не пробовал подрабатывать сценаристом?


 
Sapersky ©   (2003-12-26 00:13) [98]

Кажется, "потом" несколько раcтянулось :( Но раз уж обещал - отвечу, хотя, ИМХО, на этом дискуссию следует приостановить (до следующей версии "роботов"?), т.к. она уже давно превратилась в диалог, а мне надо работать :(

Вертикальная синхронизация не может снижать FPS если он не превышает частоту кадров

Немного всё-таки снижает, т.к. FPS округляется в меньшую сторону до значения, кратного частоте обновления монитора. Ну и некоторое ухудшение плавности (тестировал на своих программах) чувствуется. Лечится тройной буферизацией (2 задних буфера) - во всяком случае, в DX SDK так написано.

Относительно дизайна. Картинки скайбокса я конечно сам не рисовал(надо поставить CopyRigth на небе над горой)

:) Ну извиняй, зря я конечно брюзжание устроил. Сам постоянно пользуюсь чужими ресурсами. Но вот начал ковыряться в программе-моделлере и стало доходить, какое же это удовольствие наверное - сделать игру ПОЛНОСТЬЮ собственной, не говоря уже о возможности её продавать :)
Опять же, ландшафтные движки тем и хороши для одинокого программиста, что там многое (по сравнению с indoor) можно сгенерировать программно - сам ландшафт, полигональное небо с закатами/рассветами, как NailMan говорил; текстуры в какой-то степени тоже - допустим, брать несколько базовых, и смешивать их заранее или по ходу дела для получения плавных переходов. Конечно, это будет сложнее, чем намертво зафиксированный мир - но и интересности прибавит.

От "ряби" включение CULLFACE не спасает -очевидно все-таки Z-буфер. Какая там разрядность по умолчанию?

Вообще я имел в виду переднюю/заднюю отсекающие плоскости. Но разрядность (16/32 бит на пиксель, то есть "глубсель" :)) тоже имеет значение, и многие проблемы можно решить, просто поставив 32 бита (на Operation Flashpoint, например, разница хорошо заметна).
А упомянутые плоскости - это, фактически, расстояние, на которое эти биты распределяются. Причём распределяются неравномерно - т.е. чем ближе к камере, тем точность Z-буфера выше, а с удалением она уменьшается то ли в квадрате, то ли ещё как... в общем, сильно уменьшается, так что и 32-битный буфер может не помочь. Поэтому расстояние между отсекающими плоскостями желательно ставить минимально возможным (glFrustum или что-то в этом роде).
Ещё есть разновидность Z-буфера - W-буфер, там всё распределяется равномерно. Можно попробовать (в OGL это скорее всего расширение).
Ну и грамотная оптимизация моделей играет большую роль. Т.е. выкидывание близко расположенных плоскостей, например, внутренних поверхностей, которые могут быть в hi-poly моделях. Использование уровней детализации моделей - чем меньше полигонов, тем больше (должно быть) расстояние между ними.



Страницы: 1 2 3 вся ветка

Форум: "Игры";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.88 MB
Время: 0.044 c
8-1077179147
AlexV
2004-02-19 11:25
2004.05.16
Повернуть изображение в TImage на 90 градусов


3-1082704510
huyone
2004-04-23 11:15
2004.05.16
Индексировать файл Foxpro DBASE III из программы?


7-1081145534
Clawhammer
2004-04-05 10:12
2004.05.16
Установка Time Zone...


14-1082652750
Кот-трахкун
2004-04-22 20:52
2004.05.16
Задачка


14-1083150908
Undert
2004-04-28 15:15
2004.05.16
Где можно в цифровом виде





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский