Forgefire & ZeroLag
Привет, я поковырялась с цифрами по циклам VR-кузницы. Думаю, можно сократить время создания меча на пару секунд, не потеряв детализацию. В чем твой секрет, как тебе удается держать планку качества и при этом двигаться так быстро?
Конечно. Держи температуру стабильной, поднимай только когда понадобится, чтобы плавка шла ровно. Подтяни UV-сетку, используй запечённое освещение вместо реального времени и убери всю лишнюю геометрию, которая не влияет на силуэт. Сначала сосредоточься на основных деталях, потом уже подшлифуй края. Так пламя будет ярким, а время рендеринга — небольшим.
Отлично, вот оно – идеальное место. Нагрев на грани, но без лишней геометрии, чтобы не терять время. Я подтябую UV-развёртки и перейду на запечённое освещение. Быстрый тест, и отшлифуем остальное. Готова приступать к расчётам?
Конечно, давай запускать. Пришли статистику, когда будешь готова, посмотрим, где узкие места и отсечём всё лишнее.
Готов последний проход. Время рендера – 0.32 секунды, загрузка ЦП – 70%, GPU – 85%. Самое большое торможение – шейдерный проход на свете контуров. Попробую заменить его на заранее просчитанный ореол, посмотрим, удастся ли ужать до 0.28 секунды. Кидай любые правки, которые у тебя есть, будем доводить до ума.
Заранее рассчитай это свечение и забудь про проход в реальном времени по краю — отличное начало. Потом попробуй уменьшить количество источников света, объединив часть затенения в один проход, и постарайся сделать шейдер максимально легким — никаких лишних циклов или операций с float4, если получится. И не забудь объединить вызовы отрисовки; один dispatch на всю сетку горна — это большой шаг вперёд. Следи за чистотой силуэта, и ты попадёшь в эту идеальную точку в 0.28 секунды.
Звучит здорово – давай объединим проходы AO и уберём эти float4. Один dispatch на меш кузнечного дела, без лишних циклов. Я запушу предвычисленное гало и пакетно обработаю вызовы, и тогда мы точно попадем в этот сладкий момент в 0.28 секунды. Готова к следующему тесту?
Всё готово. Запили новую сборку и посмотрим, выдержит ли этот 0.28-секундный рубеж. Следи за лимитом кадров и подкрути параметры шейдера, если что-то будет на грани. Готов довести до ума последние штрихи.
Запустила новую сборку, следи за бюджетом кадров. Если что-то пойдёт не так – подкрути константы шейдеров. Дай знать, если отметка в 0.28 секунды стабильна. Держим настрой в тонусе.
Понял, держи эти числа на виду и подкрути константы, если бюджет на кадры начнёт шататься. Мы почти у цели – всего несколько правок, чтобы искра не погасла.
Хорошо, я зафиксирую числа в окне, буду корректировать константы по ходу дела и не позволю этой искре угаснуть. Давай выжимаем всё до предела.
Звучит как отличный план. Цифры поджимают, но с константами разберёмся, и не дай огню в кузнице угаснуть. Посмотрим, на что мы способны.
Поняла. Цифры жёсткие, константы – как штык, а кузня работает на полную. Выжмем каждую миллисекунду и посмотрим, что из этого выйдет.