Среда, 20 Ноября 2024, 06:42

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Irrlicht engine. AnimatedMesh и падение fps. С++
IHTIДата: Понедельник, 18 Июня 2012, 11:24 | Сообщение # 1
участник
Сейчас нет на сайте
Сейчас изучаю движок и язык С++, делая учебный проект. Знаю, что выбрал путь не из лёгких, но такая вот ситуация и времени нет особо.
Как известно многим, кто использовал движок irrlicht, анимированные меши очень сильно загружают процессор. По видимому, это из-за постоянного просчёта кадров анимации меша заново. Необходимо отрисовать фреймы анимированного меша и сохранить их кудато, после при надобности не отрисовывать их заного, а доставать информацию о них из места куда мы сохраняли. Чтобы каждый цикл не прорисовывались фреймы заново и не падало из-за этого фпс. Т.к. я полный нубяра в программировании, то решил написать сюда, вероятно найдётся тот, кто сумел решить эту проблему и поделится опытом.


Ищу наставника по С++ и Irrlicht Engine.
НохчиДата: Понедельник, 18 Июня 2012, 11:27 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Странный и непонятный вопрос. Анимация обычно создается в 3D редакторе, все фреймы сохраняются в файл(иногда вместе с самим мешем, иногда отдельно, зависит от формата в который экспортируешь). Далее модель загружается и последовательно проигрываеются фремы. ФПС никуда не падает.
Покажи весь код, которым ты грузишь и анимируешь модель.


Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Понедельник, 18 Июня 2012, 11:28
IHTIДата: Понедельник, 18 Июня 2012, 11:48 | Сообщение # 3
участник
Сейчас нет на сайте
менял все анимированные меши на IMeshSceneNode, т.е.убирал анимацию и фпс увеличивался раз в 30. При том, что на сцене находится 10 врагов, 1 маленькая анимированная лампа и меш главного героя. Больше анимированных мешев нету. Т.е. это почти ничего... Большинство людей, кто использовал irrlicht сталкивался с этой проблемой. Но я не нашёл, чтобы кто-то писал о её решениях...

Вот код: http://rghost.ru/38729892


Ищу наставника по С++ и Irrlicht Engine.

Сообщение отредактировал IHTI - Понедельник, 18 Июня 2012, 11:52
НохчиДата: Понедельник, 18 Июня 2012, 11:54 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Здесь код читать невозможно, но скажу, что если у тебя что-то и тормозит, то не из-за анимации. Попробуй закомментить проигрывание анимации и напиши разницу ФПС.

Многие вопросы по Windows отпадут, если посмотреть тут
IHTIДата: Понедельник, 18 Июня 2012, 12:04 | Сообщение # 5
участник
Сейчас нет на сайте
Я ж говорю, на моей очень мощной машине с этими анимациями fps=76, без них fps более 1000. Такие дела.
Я вместо анимированных ставил простые меши и тестил это. Таким макаром и узнал что проблема в анимациях. Потом погуглил и узнал что не я один с такой проблемой.


Ищу наставника по С++ и Irrlicht Engine.

Сообщение отредактировал IHTI - Понедельник, 18 Июня 2012, 12:07
The_WitcherДата: Понедельник, 18 Июня 2012, 12:20 | Сообщение # 6
The Witcher
Сейчас нет на сайте
Quote (IHTI)
Я ж говорю, на моей очень мощной машине с этими анимациями fps=76, без них fps более 1000. Такие дела.

Цифра в 1к фпс ничего не говорит, всё правильно. Пока фпс на уровне 60 - не беспокойся.
Про то, что анимация якобы приводит к падению фпс - всё бред, не знаю откуда у тебя возникли такие мысли.
Если хочется большей производительности (но лишь когда у тебя реально много мешей с анимацией), ищи на англоязычном форуме Hardware Skinning. Даст около 50 фпс в большой загруженной сцене, а на одном-двух мешах фпс даже упадет.
Работаю с иррлихтом больше года, если что.
IHTIДата: Понедельник, 18 Июня 2012, 12:28 | Сообщение # 7
участник
Сейчас нет на сайте
30 мешей с анимациями это много? Я просто не в курсе сколько это, много мешей, для иррлихта. У меня с 15-ю врагами уже подлагивает и фпс меньше 30 падает.

Code
Цифра в 1к фпс ничего не говорит, всё правильно. Пока фпс на уровне 60 - не беспокойся.

Я не для себя игру делаю.
Quote
Про то, что анимация якобы приводит к падению фпс - всё бред, не знаю откуда у тебя возникли такие мысли.

Quote
менял все анимированные меши на IMeshSceneNode, т.е.убирал анимацию и фпс увеличивался раз в 30


Попробуйте реально поискать проблему если хотите помочь, а не рассказывать о своих убеждениях. Иначе это пустая трата времени, которого у меня к сожалению нет. =(


Ищу наставника по С++ и Irrlicht Engine.
The_WitcherДата: Понедельник, 18 Июня 2012, 12:43 | Сообщение # 8
The Witcher
Сейчас нет на сайте
В коде я увидел кучу стандартной ерундени, которую люди делают шейдерами.
Плюс зачем всё сделано в main функции? Неужели трудно разбить код на классы, в крайнем случае просто функции, придумать что-то вроде конфига объектов в xml и грузить их всего одной функцией с циклом, вместо того чтоб захламлять код этой ерундой.
Плюс ты используешь жутко глючную стандартную физику.
Фпс падает, потому что тут 0 работы для видеокарты и дофига бесполезной работы доля проца, анимация тут не при чем.
IHTIДата: Среда, 20 Июня 2012, 00:24 | Сообщение # 9
участник
Сейчас нет на сайте
ещё нашёл интересную статью по этому поводу http://www.irrlicht.ru/index.php?vm=15.view.12
The_Witcher, это то, что я сумел сделать по стандартным туториалам иррлихта. Я только недавно начал изучать движок и сам язык.
А что со стандартной физикой не так? Просто сделал что-то своё на основе туториалов.

Сегодня научился и написал свой первый класс. И вот компилятор жалуется такой ошибкой:
C:\IRRDEV\Platform\Pisanina.cpp|276|error: multiple types in one declaration|
Что означает "слишком много типов в одной декларации"? surprised

Нашёл проблему. В предидущем классе не поставлена после конечной } точки с запятой, отсюда странная ошибка.


Ищу наставника по С++ и Irrlicht Engine.

Сообщение отредактировал IHTI - Среда, 20 Июня 2012, 02:22
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг