Так что ты надеешься услышать? Без условия очевидно не обойтись.
Ну хочешь - нагенерь мини-текстур в один цвет, засунь их на место диффузок, сравни как быстрее. Проиндексируй эти цвета, чёб не дублировать эти 16-пиксельные текстуры с одинаковым цветом.
Дядя Миша надеялся услышать что-то типа "эээ, не делай через условия, это убьет перформанс, делай через минитекстуры, это будет быстро и универсально". Ну или наоборот
Дядя Миша писал: Если декаль нанести на край стены, то она будет висеть в воздухе.
Ну это можно каким-нибудь образом поправить. Например, не накладывать декаль на край, а сдвигать её подальше, чтобы она полностью была на стене. Не очень изящно, зато не будет резать глаза. Кстати, вчера научил декали ходить через чейнджлевел. Сейв/рестор им я давно уже сделал, писал выше. В общем, осталось красиво причесать код, и он будет вполне юзабелен.
Не будет лениво - сделаю апдейт для самого Инвазиона, с фиксом декалей и мп3 плеера. Надо хоть когда-нибудь выложить свою работу на моддб. Заодно будет масштабная тестовая площадка. Инвазион - немаленький мод.
мини-текстурки тормозить точно не будут. А убьют ли условия перфоманс зависит от поколения железа. Да и условия-то разные бывают. Я код не видел, почём я знаю.
Цитата:
Ku2zoff писал: Ну это можно каким-нибудь образом поправить
ну так известно каким - обрезать полигон декали по краю. Для этого не нужны какие-то хитрые функции из движка. Ты же всё равно их через три апи рисуешь - этого вполне достаточно. А обрезалка - это виндинг.
Ну посмотри как в параное сделано чтоли.
Есть ли способ определить на сервере, стоит игра на паузе или нет? На клиенте есть ref_params_s->paused. На сервере в глобалсах ничего подобного нет. Пока что мне не пришло в голову ничего умнее, чем нагородить дурацкий огород:
Пришлось раскидать вызовы паузы по разным функциям, потому что фмод включает паузу где-то через полсекунды после постановки на паузу игры (на клиенте так же). Поэтому получается не пауза, а бесконечное заикание, потому что пауза с музыки сразу же снимается.
Дядя Миша ну дык собираюсь. Уже неплохо оптимизировал саму структуру spritedecal_s, чтобы как можно меньше параметров писать в клиентский сейв, вынул функции работы с декалями из gHUD.m_Particules в отдельный класс CDecalManager, избавился от нагромождения iIndex, iIndexNew, oldindex и кучи лишних циклов, перебирающих несколько раз декали по этим индексам... По сути, уже всё довольно неплохо: сохраняются, загружаются, переходят через уровни. Осталось сделать статик-декали, которые накладывает маппер. Ну и обрезку на краях брашей.
Добавлено 27-04-2020 в 13:54:
Правда, насчёт статик-декалей не всё так однозначно. Для них надо ещё как-то нарисовать спрайты.
Кстати говоря, то что фмод делает паузу с лагом в полсекунды, обусловлено размером его выходного буффера, хотя это и не совсем корректно.
Ну вообщем посмотри, там где-то этот буффер будет задан как 500-600 милисекунд. Меньше ста ставить не рекомендую.