Archived

This topic is now archived and is closed to further replies.

Young Flyer

Сценарий Тормозит.

9 posts in this topic

Начал ставить трехмерные объекты (EOD) в сценарий, начал с ограждения - металлические трубы и бетонные плиты. Сначала сделал трубы круглыми - сценарий стал дико тормозить, 1 кадр в 2-4 секунды. После этого переделал трубы - сделал их квадратными - стало лучше, но FPS все равно стал заметно меньше. А ведь это только начало - сценарий практически пустой. А что же будет, когда здания начну ставить? Подскажите кто-нить, как с этим бороться.

post-4-1075719042_thumb.jpg

0

Share this post


Link to post
Share on other sites

Вопрос "номер один": сколько полигонов в объекте сценария?

 

Вопрос "номер один с половиной": каковы размеры текстур объекта?

 

Вопрос "номер два": сколько объектов поставлено?

 

Вопрос "номер два с половиной": код оптимизировали?

 

Неоднократно обсуждались пути повышения ФПС. Это: минимизация размеров сценарных объектов, минимизация размеров текстур объектов, оптимизация кода сценария.

 

Если быть кратким, то если сделать "лесоразработку" с пеньками по 700 полигонов в каждом и текстурой 1024 на 1024 - 32 бита, то любая сцена станет медленной и печальной как слайд-шоу.

0

Share this post


Link to post
Share on other sites
Вопрос "номер один": сколько полигонов в объекте сценария?

 

Вопрос "номер один с половиной": каковы размеры текстур объекта?

 

Вопрос "номер два": сколько объектов поставлено?

 

Вопрос "номер два с половиной": код оптимизировали?

1. Полигонов штук 15, все АФКАДовские.

1.5. Полигоны сделаны в АФКАДовских дефолтных текстурах, размер не знаю.

Объект обтянут текстурой, размер которой 256 х 256. Пока сценарий содержал только объекты AFCADа, никаких тормозов не было.

2.Объектов типа "кусок забора" поставлено около 500, получилось ограждение длиной ок.3000 м.... да, многовато получается... А как же быть?

2.5. Один большой вопрос - что такое код и как его оптимизировать? Честно говоря, абсолютно не имею представления, о чем идет речь.

0

Share this post


Link to post
Share on other sites

забор (от угла до угла) одним полигоном с повторяющейся текстурой. при прямоугльном заборе получим 4 полигона вместо 500

0

Share this post


Link to post
Share on other sites
забор (от угла до угла) одним полигоном с повторяющейся текстурой. при прямоугльном заборе получим 4 полигона вместо 500

Если я Вас правильно понял, необходимо создать забор с длиной 3000 м (длина одной стороны ограждения), и текстура должна быть одна, несмотря на то, что забор состоит из двух перемежающихся деталей?

0

Share this post


Link to post
Share on other sites
2.Объектов типа "кусок забора" поставлено около 500, получилось ограждение длиной ок.3000 м.... да, многовато получается... А как же быть?

2.5. Один большой вопрос - что такое код и как его оптимизировать? Честно говоря, абсолютно не имею представления, о чем идет речь.

Полигоны имел в виду не AFCAD'овские, а полигоны (т.е. грани) объектов сценария. AFCAD'овские объекты практически не требуют ресурсов.

 

>> 500 объектов типа "кусок забора"

 

Тут-то и "порылась собака" - 500 объектов требуют 500 раз по 64 килобайта памяти. Плюс 500 раз была загружена текстура забора - еще по 64 килобайта памяти по самым скромным оценкам.

 

Как быть? Внимательно посмотреть, как сделан макрос "куска забора". Это текстовый файл, откройте его Notepad'ом. Все, что начитается с Poly, TexturedPoly, ShadedPoly и т.п. - и есть те полигоны, о которых я спрашивал. Посчитайте их, посмотрите сколько раз вызывается команда Bitmap или LoadBitmap - столько раз вы загружаете текстуру.

 

Вот этот код и надо оптимизировать. Поищите здесь в файлах статью Михаила Самохина - я ее выкладывал с разрешения автора. Там все подробно изложено.

0

Share this post


Link to post
Share on other sites

Да и столб и плиту рисуем (удобнее половинку столба-плиту-половинку столба)

потом накладываем ее с повторением.

Толщина при такой длинне все равно не заметна. Как говорится "если мы моделим Матхеттен, нет смысла моделить дверные ручки"

0

Share this post


Link to post
Share on other sites
Да и столб и плиту рисуем (удобнее половинку столба-плиту-половинку столба)

потом накладываем ее с повторением.

Толщина при такой длинне все равно не заметна. Как говорится "если мы моделим Матхеттен, нет смысла моделить дверные ручки"

Вот тут я подошел к вопросам, которые достойны FAQ:

1.Как создаются текстуры?

2.От чего зависит размер текстур?

3.Почему файлы тестур имеют разное расширение (bmp, r8), в чем разница?

4.Как обтянуть полигон текcтурой, чтобы она повторялась, а не растягивалась по всей длине полигона?

5.Возможно ли сделать это в EOD ?

0

Share this post


Link to post
Share on other sites

Текстура делается в любом графредакторе. Можно рекомендовать использовать в сценариях текстуры размером не более 256 х 256 пикселей, глубина цвета 8 бит (256 цветов).

 

Допустимо применение кратных по размеру текстур (256 х 256, 128 х 128, 64 х 64 и т.д.). Размер текстуры определяется самим разработчиком, только чем больше тектура, тем больше ресурсов компьютера она "отъедает".

 

Текстуры могут быть как классическим ВМР, так и RAW-формата (*.R8). R8-файлы использовались в МСФС98 и более ранних версиях, в МСФС2002 они остались сугубо исторически и в отдельных макросах.

 

Растянуть текстуру по полигону можно, но это придется делать штучно руками, редактируя SCASM-код макроса. Видимо, это можно сделать для BGLC-объекта, но это - не ко мне. ;)

 

Что касается инструментария, то по БОЛЬШОМУ счету все равно, кто будет генерировать исходный SCASM-код - EOD, FSDS или какой-либо другой редактор. Вопрос в подходе к разработке объекта и к последующему "ручному" редактированию.

0

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.