В ранних программах рендеринта шейдерами назывались те части программы, которые отвечали за закраску (shading) поверхностей. Юзер мог менять некоторые параметры (цвет, блик, шероховатость и т.п.), а все остальное делали эти самые шейдеры, встроенные в сам рендерер. То есть, если надо было описать какую-то нестандартную поверхность, приходилось переписывать и перекомпилировать весь рендерер. Позже, при разработке первых вариантов алгоритма REYES, на котором основан prman, было решено вынести их в отдельные подпрограммы, написанные на особом языке шейдеров, интерпретируемые во время рендеринга. Причем придумали использовать их не только для поверхностей, но и для описания светильников, внутренних объемов объектов, неровностей поверхностей и др. Это дает совершенно неограниченные возможности описания практически всех свойств объектов, вплоть до их трансформаций в _процедурном_, а не параметрическом виде.
Вот, вкратце, что такое шейдеры. Если интересуешься подробнее - крайне рекомендую почитать что-нибудь типа The RenderMan Companion.