Показать сообщение отдельно
Старый 24.07.2008, 00:15   #5
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,743
Написано 5,461 полезных сообщений
(для 15,676 пользователей)
Ответ: Что быстрее LoadMesh vs LoadAnimMesh?

Dstorton111
1. Что быстрее LoadMesh vs LoadAnimMesh?
Одинаково при загрузке.
Разница в обработке.
У тебя как и верно сказал ХолиДел уровень состоит из кучи объектов.
Один объект - один батч при рендере.
10 000 объектов - 10 000 батчей.
Это здорово тормозит игру
А Блитз особенно критичен к количеству Ентити
(т.к. когда ты грузишь Аниммешем то каждый объект из макса - это энтити)
Когда ты грузишь LoadMesh - все объекты объединяются в один , ентити получается один и тормозов в разы(!) меньше.
Решение:
№0. Юзать LoadMesh
№1. Если приспичило LoadAnimMesh то тогда объедини все объекты в один в редакторе графики (3ds max например) и уже в таком виде экспортируй в Блитз. Не объединяй только то, что тебе действительно нужно и из-за чего нельзя юзать LoadMesh
Если ты не знаешь подобных случаев - не заморачивайся (это отдельная песня зачем и почему иногда нельзя использовать LoadMesh а нужно именно LoadAnimMesh как-нибудь долгими зимними вечерами расскажу), юзай решение №0

Правило хорошего Блитзера № 113 - всегда минимизируй кол-во энтити

2.
а что когда мой проект разрастётся скажем до 500 тыс.полигонов?
При юзанье комманды HideEntity я так догнал что свобода настаёт только рендеру но не как не ОЗУ моей видеокарты?
Угу, освобождается только рендер.
Это удобно когда нужно часто скрывать/показывать некоторые объекты
Потому что если ты выкинул из памяти что-то то если тебе потом приспичит это показать, то придётся грузить с винта а это жжжуткий тормоз.

Правило хорошего блитзера №238 - никогда не грузи ничего с винчестера во время игры.

Далее.
Не хватит ОЗУ - полезет в файл подкачки - только и всего
Правда этот самый файл подкачки находится на винте, а это... (см. выше)
Но я не думаю что тебе удастся заср*ть 1 Гб ОЗУ (средний сегодняшний компьютер). Так что спи спокойно.

Кстати! Для экономии памяти стоит удалять уже заюзанные текстуры!
Например так:
Tex = LoadTexture("texture.dds")
ball = CreateSphere(16)
EntityTexture ball,tex
FreeTexture tex

Правило хорошего блитзера №96 - всегда удаляй текстуры после их использования!


Надеюсь, развёрнуто и понятно всмё объяснил. Удачи!
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием