Перейти к содержимому


Фотография
- - - - -

ОПТИМИЗАЦИЯ; FSDS и работа в нём(+Дайджест)


Тема находится в архиве. Это значит, что в нее нельзя ответить.
Для разархивирования этой темы отправьте сообщение с указанием URL топика
Сообщений в теме: 63

#1 Zem-Zem

Zem-Zem

    Дока

  • Members
  • PipPipPipPipPip
  • 575 сообщений
    Reputation: -6

Отправлено 07 May 2003 - 16:33

Предлагаю В данный топ выкладывать интересные решения проблем по оптимизации сцен,
Интересных способов и методов работы с FSDS

Прикрепленные изображения

  • fsds1.gif


#2 Zem-Zem

Zem-Zem

    Дока

  • Members
  • PipPipPipPipPip
  • 575 сообщений
    Reputation: -6

Отправлено 07 May 2003 - 16:36

...че такого в этом слиянии объектов, ... лучше использовать больше вершин (например у модели кленового листа), чем на 4х угольный полигон класть текстуру с Альфой Если пораскинуть мозгами, то не согласиться сложно, Смотри,... На счёт листа, ... машине проще обсчитать 5-15 лишних точек модели для плоскости с текстурой весом 100Кб, чем ворочать четырёхвершинную плоскость с текстурой весом 500Кб
Смотри, берём Ту 154, а у него файл текстуры фюзеляжа в BMP c Альфой 32Bit
Соответственно 4 Мб (1024х1024) (то же, что и с моделями зданий), в DXT3 с Альфой такая текстура занимает 1,33Мб, а в индексе 8bit - 1Мб.

Берём куб, в него вливается другой, если посмотреть на это дело, то я тоже недопираю, почему... тормозит Но погоняв по этой теме, делаю вывод, зачем машине "прогонять" вершины и плоскости с текстурами, невидимыми никому. Это одно, Ещё в туториалах пишут, и с этим нельзя не согласиться, "...две плоскости, занимающие одно пространство..." эффект мерцания полигона на земле, когда не выставляешь приоритеты видел сам постоянно сменяется подгрузка изображения толь..? тоже - хорошего мало, примыкающие плоскости другое дело... Мне вот пришлось лепить терминал, такой , что если смотреть с фасада, Для хорошей прорисовки приходится делать большую 1024х1024 текстуру, где много лишнего пустого будет просто болтаться в памяти без толку, его занимаем остальной мелочевкой, но прописовывать текстуры на эту мелочь становиться ювелирно сложно, ФСДС в этом окне не даёт увеличения, а цифры угадывать, и 25 раз запускать Сим, для деталього просмотра..., справа в окне толком не увидишь... Я этот "длинный" терминал поделил на 3 меньших кубика, в итоге, главное чтоб соприкасающиеся боковые плоскости соприкасались, а не заходили друг за друга так, что две части фасада с соседних "кубов" не накладывались друг на друга.
Саша Белов дело говорит насчёт удаления невидимых элементов (вершин и плоскостей) С этой стороны и хорош FSDS, он позволяет делать именно то что необходимо, и ничего лишнего, главное "просечь" метод. Я вот тоже, походу терминал Минводский буду переделывать, хотя он у меня на фоне Ту154 выдаёт 26 FPS (кадров в секунду)(без трафика) на 30 FPS установленных, сделан далеко не идеально.
Например, есть там на крыше такой "герб", его крыша выше основного здания и боковины .... короче приходиться две вершины и 4 плоскости (зад, боковины и низ) вливать в здание), думаю сделать так: трансформировать из любого примитива эту надстройку, чтоб не было в ней этой общей области.
Потом, надо сделать так, чтоб задняя часть здания, в смысле текстура на неё была отдельным файлом, и не грузила машину, когда её не видно, Так же хорошо повторное использование текстур на несколько плоскостей. Ну и разрешение текстур, 1024х1024 - крайний метод, для перронов.
Сдаётся мне что ещё можно убирать градиентные промежуточные цвета, не пробовал, но думаю, размер файла ещё уменьшиться, а вот мипмапинг делать для зданий важных, типа терминала ни к чему - красивого мало.
Ну и ещё - устанавливать дистанцию видимости для всех объектов, а можно ещё и угол обзора. Всё это дело предстоит ещё оттачивать, пробовать, убеждаться в чём-то, или в чём-то обратном, а что-то отвергать...

#3 Alexander Belov

Alexander Belov

    Дока

  • VIPvip
  • PipPipPipPipPipPip
  • 4122 сообщений
    Reputation: 856

Отправлено 07 May 2003 - 17:23

Коллега,

Использование текстур столь больших размеров, ИМХО, не оправдано. Два - три таких полигона и ресурсы любой машины будут исчерпаны. Существуют методы, позволяющие делать перроны много менее ресурсоемкие.

Когда-то Денис Белан публиковал на своей страничке методику ручного написания кода для перронов и ВПП повторением текстурированных полигонов, при этом "сверхбольшие" текстуры не использовались. Я думаю, что имело бы смысл автору поместить здесь ссылку, если страничка еще цела.

Конечно, писание кода руками требует хорошего знания SCASM или BGLC, но если вы хотите сделать эффективный код сценария, придется учить эти языки.

#4 Zem-Zem

Zem-Zem

    Дока

  • Members
  • PipPipPipPipPip
  • 575 сообщений
    Reputation: -6

Отправлено 08 May 2003 - 14:29

это повторение текстур хорошо для рулёжек, ВПП,
и для перронов, но если делать на перрон ночную текстуру,
дабы не ползло туманом ночное освещение, а было красиво, то тут не обойтись без такой текстуры, пусть только ночной, но ночью акромя неё ...
FPS позволяет...вроде
короче тут методы... , опять же, кто чего хочет,
те кто летают в онлайн, приверженци сцен с высоким ФПС,
для меня (я в онлайн не летаю) предел терпимости - 10 ФПС,
....опять же сильно сажает трафик...
Александр, а не поделитесь методикой объединения одинаковых макросов в Area (кажется)...
,...а можно линк на страничку Дениса...

#5 Alexander Belov

Alexander Belov

    Дока

  • VIPvip
  • PipPipPipPipPipPip
  • 4122 сообщений
    Reputation: 856

Отправлено 08 May 2003 - 15:02

Когда-то Дмитрий Колесник делал сценарии с ночным освещением перрона, вместе с Михаилом "Gapmaker" Самохиным. Так вот они не использовали текстур с разрешением более 256 х 256 - 8 бит. Существуют методы, позволяющие обойтись минимальными ресурсами. Этот метод был позаимствован для использования в старом сценарии USPP.

Правда, тут лучше рассказал бы сам автор методики - уважаемый Михаил Самохин.

А что до "минимизации", то была такая шутка: "Зачем делать маленький приемник, когда можно пришить большой карман?" - сказал один гражданин запихивая в объемистый карманище целую ламповую радиолу.

Вопрос стиля, ИМХО. Я тоже он-лайн не летаю, но ФПС повыше никому еще не мешали.

#6 Alexander Belov

Alexander Belov

    Дока

  • VIPvip
  • PipPipPipPipPipPip
  • 4122 сообщений
    Reputation: 856

Отправлено 08 May 2003 - 16:27

О! Денис, ссылочку на твою статью по построению полос дай, а? А то тут полигоны текстурами по 1024 х 1024 кроют...

Са-а-авсэм от рук отбылись.... Вах!

#7 Alexander Belov

Alexander Belov

    Дока

  • VIPvip
  • PipPipPipPipPipPip
  • 4122 сообщений
    Reputation: 856

Отправлено 08 May 2003 - 17:08

Так... :) Что же теперь, пусть мОлодежь дичает? Или мне перенабрать статью? Долг, но за праздники управлюсь... :)

#8 Zem-Zem

Zem-Zem

    Дока

  • Members
  • PipPipPipPipPip
  • 575 сообщений
    Reputation: -6

Отправлено 08 May 2003 - 17:59

Огромная благодарность за будущую статью!
...Да, дико, но красиво 1024х1024 бабахнуть ночной перрон!
другое дело текстуры максимально оптимизировать
Наиболее подходящий формат ...индекс, ...af?
на многовершинный полигон...?
Кстати, в USPP для краёв ВПП применена прозрачность?

#9 Zem-Zem

Zem-Zem

    Дока

  • Members
  • PipPipPipPipPip
  • 575 сообщений
    Reputation: -6

Отправлено 08 May 2003 - 18:09

ОТВЕТ НА ПРОСЬБУ
Забудьте или не смотрите на ФПС, но для создания чего либо другого, или если нужно такое дерево в сцене в количестве
1-2шт.
включаешь кнопки, в следующих местах, как на картинке, к примеру, выставляешь контрольные точки во всех проекциях, далее жмешь TEMPLATE , и там выбираешь EXTRUDE, задаешь размеры приблизительно, вот у тебя готова плоскость,

далее жмешь самую левую кнопку для выбора (объектов),
и кнопку для изменения размеров, если необходимо,
блокируешь X, Y или Z что нужно.,

далее щелкаешь по окну которое должно быть активным и
с зажатой левой кнопкой мыши "влево-вправо" устанавливаешь необходимый размер.

Далее щелкаешь по треугольнику, и клавишей "Р" выбираешь плоскость, плоскости по рёбрам типа слева, справа и снизу, сверху удаляешь - "DEL", потом опять щелкаешь "выбор"

Далее по объекту щёлкаешь правой кнопкой и назначаешь текстуру ( ...какая там у тебя...)(чтоб прозрачность не перекрывала объекты - не могу сказать - не знаю)
прозрачность назначается в кнопке Files пункт Mace transparant texture, действуешь следующим образом,

Сначала там перетащи бегунок вправо до упора и щёлкни
set all это ты назначил цвета кот. будет видно,
далее бегунок влево до упора и по картинке слева мышью щелкни по тому цвету, который не должен быть виден, обычно для деревьев это какой нибудь зелёный, далее файл сохраняется с заменой, эта процедура наз. - прописывание альфа-канала, и ее необходимо делать до назначения текстур
на объект, рабочие текстуры я храню в папке вместе с готовыми API, потом в FSSC понятнее, что за макрос.А текстуры эти потом копируешь в папку текстур твоей сцены

Далее,
Назначаешь текстуры, в данном случае это FRONT и BACK

Далее,
CTRL+C СTRL+V и у тебя вторая такая же плоскость, которую нужно повернуть на 90`
Делаем это подобно трансформации,
нажимаем стрелочку для вращения, и в активном окне с зажатой левой кнопкой на мышЕ "таскаемся"влево-вправо
для вращения
Далее подобным образом вставляем хоть 25 таких плоскостей
и супердерево готово...
только дерево такое хорошо в сценариях для 5-6 FPS
Деревья лучше делать в ЕОД, и на плоскость в параметрах назначать "вращение к наблюдателю лицом"

Прикрепленные изображения

  • fsds2.gif


#10 Zem-Zem

Zem-Zem

    Дока

  • Members
  • PipPipPipPipPip
  • 575 сообщений
    Reputation: -6

Отправлено 08 May 2003 - 18:29

Благодарю!!!

#11 Alexander Belov

Alexander Belov

    Дока

  • VIPvip
  • PipPipPipPipPipPip
  • 4122 сообщений
    Reputation: 856

Отправлено 08 May 2003 - 18:33

ИМХО, есть разные уровни оптимизации. Идеальный - описан выше. Но прилично съэкономить можно даже самыми простыми, "домашними" средствами. Коллеги, не пренебрегайте ими!

Попробую за праздники управиться avsimнописными работами. Но, коллеги, как смогу...:)

#12 greben

greben

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 3011 сообщений
    Reputation: 334

Отправлено 09 May 2003 - 02:26

Сын - полный даун, отец - академик химических наук.
- Папа, а почему, когда я откусываю яблочко, то оно через
время темнеет?
- Понимаешь, сынок, яблочко содержит в себе всю таблицу
Менделеева...............
И тут идет полуторачасовая лекция про "устройство" яблока,
с метанием папы с угла в угол комнаты.
Потом папа завелся на тему, из чего состоит воздух...:) .
Ну а когда папа начал объяснять, как кислород взаимодействует с железом, которое находится в составе
яблока, то сын схватил его за рукав и спросил:
- Папа, а с кем это ты сейчас разговаривал?
:)

Мужики, покажите какие кнопки жать :)
Мне обычное безглючное дерево нужно сделать,
МСФС-овское! Четырех-полигонное!

#13 Zem-Zem

Zem-Zem

    Дока

  • Members
  • PipPipPipPipPip
  • 575 сообщений
    Reputation: -6

Отправлено 09 May 2003 - 03:37

На счет 4 полигонов я не врубился, о чё и куда жать, более чем понятно, ты читай, смотри картинку, и пробуй на запущенном FSDS...
...я вот хелп с переводчиком читал, получается,
просто такое дерево будет жрать немного более FPS
а когда ты такими лес утыкаешь, тебе эти "тормоза"
самому мало понравяться,
пару у вокзала поставить можно!
а лесополоса из четырёхполигонных "машину повесит"
Если есть еще вопросы, спрашивай поконкретнее, что не получается...!

#14 greben

greben

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 3011 сообщений
    Reputation: 334

Отправлено 10 May 2003 - 00:15

Есть задача, все конкретно описано, научи и все, если умеешь.
деРево мне нужно! обычное бЭзглючное дерево!
Такое себе МыСыФыС-овское, обычное!!!!!!!!!

FSDS изначально мне предлагает залить текстурой аж 7
полигонов, молодец, слов нема...., а как быть, если у меня
148 полигонов, что, хЭлр читать?

"Я женщину ищу такую, с которой я сойду с ума":D !

Эт от брата моего, Сереги Есенина, ищите, и обрящите:) .

ОСТРОВА Я ДЕЛЯТЬ НАУЧИЛСЯ! Научите делать нормальные,
МыСыФыСовские деревья!:D

#15 Zem-Zem

Zem-Zem

    Дока

  • Members
  • PipPipPipPipPip
  • 575 сообщений
    Reputation: -6

Отправлено 10 May 2003 - 00:39

Объясни, в чём глюк того дерева, которое ты делал, в том что его прозрачные область дают глючный эффект на другие текстуры?,
попробуй выставить приоритеты Z-Bias, может даст эффект

#16 Zem-Zem

Zem-Zem

    Дока

  • Members
  • PipPipPipPipPip
  • 575 сообщений
    Reputation: -6

Отправлено 10 May 2003 - 00:46

Александр, В пре-процессах подобным же образом как и отрисовка огней задаются зимние текстуры, но в итоге пропадают все, и летние тоже...
Что не так мог я зделать?

#17 greben

greben

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 3011 сообщений
    Reputation: 334

Отправлено 10 May 2003 - 08:22

Пробовал, все так и осталось:) .
Картина следующая: один полигон дерева рисуется
нормально, а второй, перпендикулярный, оставляет за
собой альфа-канал, который закрывает собой текстуру
предыдущего, при этом не трогая текстуры других
объектов.
Такая себе дыра получается.

#18 Alexander Belov

Alexander Belov

    Дока

  • VIPvip
  • PipPipPipPipPipPip
  • 4122 сообщений
    Reputation: 856

Отправлено 10 May 2003 - 09:46

Коллеги,

Я же уже много тут писал: читайте документацию на SCASM. Вот путь решения проблемы:

- ищем переменную, отвечающую за время суток.

- ищем способ проверить значение этой переменной (например - командой IfVarRange).

- пишем код: если переменная дает день - не рисуем, если же нет (то есть вечер, ночь или утро) - рисуем светящийся объект. Это же так просто! Советую поэкспериментировать на чем-нибудь простеньком.

- полученный код вставляем в макрос в нужном месте.

Все! Гарантирую огроиное удовлетворение от сознания собственного могущества и выполненной работы.

#19 Zem-Zem

Zem-Zem

    Дока

  • Members
  • PipPipPipPipPip
  • 575 сообщений
    Reputation: -6

Отправлено 10 May 2003 - 12:09

...

#20 Гость_Stolpyansky_*

Гость_Stolpyansky_*
  • Guests
    Reputation:

Отправлено 17 May 2003 - 21:25

Насчет ФПС ИМХО нужно чтоб над торцом ВПП было не меньше 18-20 а при рулении и 8-10 достаточно. Кстати я тут уже настроился сцену USPP дорабатывать и макрос ВПП сделать полноценный, который будет ложиться на поверхность с любой кривизной. А пока что рисую город в Coast Line Maker.
Кстати, интересно, никто не знает как вынуть объект (например дерево используемые автогеном) из стандартных библиотек сима и вставить его в сцену?