Автор | Сообщение | |
gammaker бывалый Группа: Участники Сообщений: 49 |
Добавлено: 11-11-2009 21:48 | |
У меня накопилось очень много вопросов, поэтому я решил изложить их в одной. Вот целый список: 1. А как так получается, что если поместить функцию ViewerRender() не в Step, а в Alarm, fps увеличивается? 2. Ещё я заметил, что в примерах иногда увеличивается fps в 1,5 раза, но не сразу, а примерно через 10-20 секунд. Например, в примере "csm.gm6" (немного переделанном: я поменял событие Step на Alarm0, сделал вид размером 1280х1024 и во весь экран, поставил fps в настройках комнаты на 2000 и добавил текст на экран, который показывает fps) fps вначале было около 800, а через некоторое время становится 1400. Один раз даже дошло до 1750 кадров в секунду. Но иногда fps не увеличивается и примерно равно 800. Кстати, я заметил, что когда fps возрастает, компьютер немного гудит. 3. При создании объекта Trail у меня вылетает из игры. Почему? Я делаю всё, как написано в справке. 4. Xteme3D поддерживает многоядерные процессоры? 5. Я собираюсь делать уровень из примитивов в собственном редакторе карт. Можно ли сделать качественное освещение и тени, чтобы это не сильно повлияло на fps? Например, чтобы Xtreme3D сам генерировал карту освещения и потом не тратил время на освещение. Как в примере "csm.gm6": загружается уровень с качественным освещением и fps 1500 кадров в секунду. Кстати, в справке не написано, что Freeform поддерживает формат .csm. 6. Можно ли определить, по какому материалу игрок ходит? Я в своей игре хочу сделать разную скорость игрока и разные звуки для хождения по траве, земле, дереве и т.д. 7. У меня нет почему-то функций DCE и ландшафтов. Та ли у меня версия Xtreme3D? |
||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 12-11-2009 10:12 | |
1. Для себя я решил, что это происходит из-за снижения нагрузки на CPU и GPU. Событие Step обычно вызывается с огромной частотой - GPU может быть просто не в состоянии так быстро перерисовывать экран (особенно в сложных сценах, где приходится много раз обращаться к памяти или вычислять что-то на CPU). Если рисовать не каждый шаг, а через один или два, у системы высвобождается несколько миллисекунд, в течение которых можно "отдохнуть" от рендеринга. 2. Система обычно сама определяет, сколько fps сейчас можно рендерить. Это, скорее всего, происходит на аппаратном уровне. 3. В справке не все может быть правильно, посмотри этот пример, там есть trail и он должен работать. 4. Посмотрим на это с такой стороны: Xtreme3D основан на спецификации OpenGL 1.3. Встроенной поддержки многопоточности там, вероятнее всего, нет. Да и вычисления почти все производятся на GPU, а ты, похоже, имел в виду многоядерные CPU. Теоретически, наверное, можно распараллеливать неграфические вычисления (Water, Octree, Raycasting, загрузку ресурсов и т.д.), но уж точно не на гейм мейкере, и потом я в этом не шарю. 5. Для примитивов сгенерировать карту освещения невозможно. Для внешних форматов (obj, 3ds) - можно, но в X3D автоматической генерации нет, придется либо писать ее самостоятельно с нуля, либо использовать сторонние программы (например, Lightmap Maker). А про *.csm спасибо, запамятовал. 6. Интересный вопрос! Стандартной функции для определения материала объектов в X3D нет, но зато есть ObjectSetName и ObjectGetName. В это имя можно записать любую информацию, например - материал. Или номер звука, который должен воспроизводиться. А вот узнать, по какому объекту игрок ходит - это уже сложнее. Тут могут быть разные алгоритмы, долго объяснять, а ты, я вижу, начинающий, поэтому мой тебе совет - вернись к этому попозже. 7. Не та. DCE и ландшафты в версии 2.0.2.0. Посмотри на сайте, разделы Xtreme3D V2 Full и Xtreme3D V2 Lite. |
||
gammaker бывалый Группа: Участники Сообщений: 49 |
Добавлено: 12-11-2009 17:26 | |
Спасибо за ответы. Кстати, я проверил многоядерность. Я запустил пример и диспетчер задач. Диспетчер задач показывал, что используются все 4 ядра: один почти на всю, остальные где-то на треть. Общая загрузка ЦП была 50% (когда пример не запущен загрузка ЦП 0%.). А будут ли новые версии Xtreme3D? то хорошо бы, чтобы можно было генерировать карту освещения. Ещё один вопрос: Можно ли сделать детальное освещение примитивов без разбиения на несколько? Я раньше использовал Ultimate3D, и от разбиения сильно падало fps, а по пиксельное освещение работает только для моделей и действует только для 3-х источников освещения, а в своём редакторе я могу их сделать сколько угодно. Из-за этого я и разочаровался в U3D (и ещё после того, как увидел в примере Xtreme3D гигантский fps). |
||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 12-11-2009 21:29 | |
Может, и будут. Официально разработка Xtreme3D давно заброшена ее автором, но я работаю над созданием собственной версии библиотеки.
Можно. В X3D попиксельное освещение (BumpShader) отлично работает и с моделями, и с примитивами, и поддерживает до 8 источников света (но на практике я больше 5 никогда не ставил, так как железо не слишком мощное). |
Offtop.ru © 2003 |