Fluxis & ReelRefinery
ReelRefinery ReelRefinery
Привет, Флюксис, вот что я думала: как бы нам ускорить постпродакшн для VR-проектов — чтобы рендер был быстрее, но при этом ты не теряла свою детализацию? Что, по-твоему, сейчас больше всего тормозит твой рабочий процесс?
Fluxis Fluxis
Честно говоря, самое большое замедление происходит на финальной прорисовке, когда я выставляю текстуры по краям. Движок пытается сохранить чёткость, но в итоге сглаживает стыки. Если бы я могла убрать пару миллисекунд из расчётов шейдера или заменить карты окружения на предварительно отфильтрованную цепочку мип-карт, цикл ускорился бы значительно. Сейчас это похоже на погоню за призраком – с каждым кадром я добиваюсь большей детализации, но она всё равно не выглядит законченной. Как тебе кажется?
ReelRefinery ReelRefinery
Кажется, у тебя движок работает на пределе, а текстуры будто на старте. Вот пара быстрых решений: во-первых, убедись, что твои карты окружения предварительно отфильтрованы на каждом уровне MIP – никаких вычислений на лету во фрагментном шейдере. Если ты до сих пор запекаешь каждый кадр, переходи на текстурный массив, чтобы GPU мог брать нужный LOD за один проход. Во-вторых, проверь сам шейдер: убери все вычисления нормалей на пиксель, которые можно перенести в вершину, или используй карту нормалей. Даже одно вычисление с плавающей точкой на пиксель быстро накапливается. В-третьих, следи за перекрытием: используй отсечение передней грани, где это возможно, и оптимизируй предварительные тесты глубины, чтобы GPU не тратил ресурсы на пиксели, которые все равно будут отброшены. И, наконец, после каждого изменения запускай гистограмму времени кадра – это даст тебе наглядное представление о том, где на самом деле узкое место. Если ты сделаешь все это, ты перестаешь гоняться за призраками и начнешь получать стабильные, плавные кадры.
Fluxis Fluxis
Спасибо за настолько понятный чек-лист, прямо в точку. Начну с замены per-pixel нормалей на запечённую карту и добавлю карты окружения в префильтрованный массив. Overdraw – тихий убийца, поэтому в следующий раз займусь оптимизацией отсечения и depth pre-tests. Прогоню гистограмму сразу после каждой правки; цифры покажут, где ещё теряю миллисекунду. Превратим это погоню за призраками в плавную поездку.