LINUX.ORG.RU

История изменений

Исправление monobogdan1337, (текущая версия) :

Мамин иксперт в теме?)

Нет ничего плохого, во первых в кейсе этой конкретной игры используется альфатест, никакого альфаблендинга нет и быть не может(софтрендер же). Альфатест сортировать не нужно, это тупо дискард фрагментов по альфе, это раз.

Во вторых что тебе мешает сделать DrawMeshQueued, который будет аккумулировать дроуколлы, а затем сортировать/батчить/загружать инстансы в инстансбуффер/рассчитывать положение света в условном EndPass. Если ты вдруг не знал, в юнити Graphics.DrawMesh например так и работает(в свою очередь DrawMeshNow действует точно таким же образом, как DrawMesh в этой игре).

Я тоже раньше придерживался концепции того, что объект должен только лишь задавать параметры отрисовки объекту, а рисовалка сущности, как часть компонентной системы, сама должна решать, где что и в каком пассе нарисовать - но поскольку я пишу игры маленькие, постоянно лепить сценграф с нуля тупо задалбывает, а такая концепция вполне себе способна на жизнь.

Исправление monobogdan1337, :

Мамин иксперт в теме?)

Нет ничего плохого, во первых в кейсе этой конкретной игры используется альфатест, никакого альфаблендинга нет и быть не может(софтрендер же). Альфатест сортировать не нужно, это тупо дискард фрагментов по альфе, это раз.

Во вторых что тебе мешает сделать DrawMeshQueued, который будет аккумулировать дроуколлы, а затем сортировать/батчить/загружать инстансы в инстансбуффер/рассчитывать положение света в условном EndPass. Если ты вдруг не знал, в юнити Graphics.DrawMesh например так и работает(в свою очередь DrawMeshNow действует точно таким же образом, как DrawMesh в этой игре).

Я тоже раньше придерживался концепции того, что объект должен только лишь задавать параметры отрисовки объекту, а рисовалка сущности, как часть компонентной системы, сама должна решать, где что и в каком пассе нарисовать - но поскольку я пишу игры маленькие, постоянно лепить сценграф с нуля тупо задалбывает.

Исходная версия monobogdan1337, :

Мамин иксперт в теме?)

Нет ничего плохого, во первых в кейсе этой конкретной игры используется альфатест, никакого альфаблендинга нет и быть не может(софтрендер же). Альфатест сортировать не нужно, это тупо дискард фрагментов по альфе, это раз.

Во вторых что тебе мешает сделать DrawMeshQueued, который будет аккумулировать дроуколлы, а затем сортировать/батчить/рассчитывать положение света в условном EndPass. Если ты вдруг не знал, в юнити Graphics.DrawMesh например так и работает(в свою очередь DrawMeshNow действует точно таким же образом, как DrawMesh в этой игре).

Я тоже раньше придерживался концепции того, что объект должен только лишь задавать параметры отрисовки объекту, а рисовалка сущности, как часть компонентной системы, сама должна решать, где что и в каком пассе нарисовать - но поскольку я пишу игры маленькие, постоянно лепить сценграф с нуля тупо задалбывает.