Главная страница
    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 , но на открытых пространствах и вместо людей -машины.



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

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

Наверх





Память: 0.62 MB
Время: 0.036 c
11-1069715731
APXi
2003-11-25 02:15
2004.05.16
Подскажите почему не работает? Applet.OnMessage


7-1081159262
Azazzello
2004-04-05 14:01
2004.05.16
Как узнать работает определенная программа или нет


6-1080540889
NorthMan
2004-03-29 10:14
2004.05.16
пытаюсь определить IP-адрес подключенного клиента


14-1082971109
Igorek
2004-04-26 13:18
2004.05.16
А давайте поговорим,


14-1082720498
Андрей Сенченко
2004-04-23 15:41
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский