Решение, которое я придумал, основано на процедурной генерации SDF, как предложено @Felipe, в сочетании с улучшенным альфа-тестированием увеличения для векторных текстур и спецэффектов .
В основномЯ рисую фигуры в текстуры, используя чистый красный, зеленый и синий. Затем я рендерил сцену, используя эти текстуры, и генерирую SDF на лету за второй проход рендеринга. Генерация SDF использует алгоритм Грина с небольшим разбросом для повышения производительности. Затем SDF передается на последний проход рендеринга, который порогов и сглаживает SDF для подхода Грина, используя fwidth
, чтобы поддерживать постоянный вес линии независимо от расстояния объекта до камеры.
Так как оригиналвопрос был только для подхода / концепции, я не публикую пример в данный момент. Но я посмотрю, смогу ли я в ближайшее время собрать шадерту.