Текущий архив: 2004.05.16;
Скачать: CL | DM;
ВнизОцените возможности 3D OpenGL движка. Найти похожие ветки
← →
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;
Скачать: CL | DM;
Память: 0.68 MB
Время: 0.047 c