Как я могу создать шейдер, который «прорезает» всю геометрию, только отрисовывая очищающий фон в Unity? Пример:
Это призма в огромной белой комнате в форме коробки. Поверхность призмы просто отображает скайбокс (звездное небо). Я использовал несколько камер, что довольно неэффективно ... Должен быть способ только с шейдерами.
Как я могу это сделать?
Несколько вариантов, чтобы получить желаемый эффект, но они стоят денег:
или
Я подозреваю, что должен быть способ сделать это, используя / злоупотребляя z-буфером, но вы, вероятно, захотите провести z-тестирование «дырочных многоугольников» с использованием их реального Z, а затем написать другой Z. Возможно, вы могли бы использовать несколько проходов и трафаретный буфер - рисование дыры 3 раза с настройкой рендеринга, как это может работать:
Вам все равно нужно рисовать в определенном порядке - сначала окружение, затем дыры и, наконец, скайбокс, хотя и последний.
источник