История изменений
      
        Исправление
      monobogdan1337,
      
        (текущая версия)
      :
    
Мамин иксперт в теме?)
Нет ничего плохого, во первых в кейсе этой конкретной игры используется альфатест, никакого альфаблендинга нет и быть не может(софтрендер же). Альфатест сортировать не нужно, это тупо дискард фрагментов по альфе, это раз.
Во вторых что тебе мешает сделать DrawMeshQueued, который будет аккумулировать дроуколлы, а затем сортировать/батчить/загружать инстансы в инстансбуффер/рассчитывать положение света в условном EndPass. Если ты вдруг не знал, в юнити Graphics.DrawMesh например так и работает(в свою очередь DrawMeshNow действует точно таким же образом, как DrawMesh в этой игре).
Я тоже раньше придерживался концепции того, что объект должен только лишь задавать параметры отрисовки объекту, а рисовалка сущности, как часть компонентной системы, сама должна решать, где что и в каком пассе нарисовать - но поскольку я пишу игры маленькие, постоянно лепить сценграф с нуля тупо задалбывает, а такая концепция вполне себе способна на жизнь.
      
        Исправление
      monobogdan1337,
      :
    
Мамин иксперт в теме?)
Нет ничего плохого, во первых в кейсе этой конкретной игры используется альфатест, никакого альфаблендинга нет и быть не может(софтрендер же). Альфатест сортировать не нужно, это тупо дискард фрагментов по альфе, это раз.
Во вторых что тебе мешает сделать DrawMeshQueued, который будет аккумулировать дроуколлы, а затем сортировать/батчить/загружать инстансы в инстансбуффер/рассчитывать положение света в условном EndPass. Если ты вдруг не знал, в юнити Graphics.DrawMesh например так и работает(в свою очередь DrawMeshNow действует точно таким же образом, как DrawMesh в этой игре).
Я тоже раньше придерживался концепции того, что объект должен только лишь задавать параметры отрисовки объекту, а рисовалка сущности, как часть компонентной системы, сама должна решать, где что и в каком пассе нарисовать - но поскольку я пишу игры маленькие, постоянно лепить сценграф с нуля тупо задалбывает.
      
        Исходная версия
      monobogdan1337,
      :
    
Мамин иксперт в теме?)
Нет ничего плохого, во первых в кейсе этой конкретной игры используется альфатест, никакого альфаблендинга нет и быть не может(софтрендер же). Альфатест сортировать не нужно, это тупо дискард фрагментов по альфе, это раз.
Во вторых что тебе мешает сделать DrawMeshQueued, который будет аккумулировать дроуколлы, а затем сортировать/батчить/рассчитывать положение света в условном EndPass. Если ты вдруг не знал, в юнити Graphics.DrawMesh например так и работает(в свою очередь DrawMeshNow действует точно таким же образом, как DrawMesh в этой игре).
Я тоже раньше придерживался концепции того, что объект должен только лишь задавать параметры отрисовки объекту, а рисовалка сущности, как часть компонентной системы, сама должна решать, где что и в каком пассе нарисовать - но поскольку я пишу игры маленькие, постоянно лепить сценграф с нуля тупо задалбывает.