Comments 2

Из другой оперы, но контекст напомнил о трехмерном графическом движке CANVAS от Sega, который имитирует анимированные акварельные рисунки:


youtube

Очень странное решение с двухпроходным рендером и стенсилом. Т.е. у них на каждое пятно очистка стенсила, отрисовка пятна только в стенсил и отрисовка квада с чтением стенсила и все ради того, чтобы пятно не "самопересекалось". У них на 300 пятен будет 900 вызовов отрисовки, из которых 300 — полная очистка стенсила и никакой физической возможности это забатчить. Выглядит мега-криворуко.


Сейчас думаю, как это можно было бы сделать красивее, пока мысль в том, чтобы при отрисовке писать в ZBuffer и использовать ZTest NotEqual. В этом случае плоское пятно не будет пересекать само себя. Конечно, придется следить за порядком отрисовки (и есть подозрение, что сделать батчинг все равно не получится). Надо проверять.


Вообще, надеюсь, тут найдется кто-то еще, кто предложит еще парочку вариантов, более адекватных, чем предложенный в статье.

Only those users with full accounts are able to leave comments. Log in, please.