Подтвердить что ты не робот

Можете ли вы иметь несколько пиксельных (фрагментных) шейдеров в одной и той же программе?

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

4b9b3361

Ответ 1

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

main() {
    callToShaderObject1()
    callToShaderObject2()
}

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

Ответ 2

Они не могут работать одновременно, но вы можете использовать разные шейдеры для разных геометрий или визуализировать в несколько проходов с использованием разных шейдеров.