Можете ли вы иметь несколько пиксельных (фрагментных) шейдеров в одной программе? - PullRequest
20 голосов
/ 26 февраля 2010

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

Ответы [ 2 ]

20 голосов
/ 27 февраля 2010

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

main() {
    callToShaderObject1()
    callToShaderObject2()
}

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

4 голосов
/ 26 февраля 2010

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

...