Shader это специальная программа для визуальной идентификации поверхности определённого объекта. Это могут быть параметры текстурирования, освещения, постобработки и тому подобное. Shader появились из работ Кука и Перлина. Сейчас наиболее популярны RenderMan Shading Language. Программируемые shader были впервые показаны в RenderMan фирме Pixar, там были классифицированы несколько типов shader: surface shaders, displacement shaders, volume shaders light source shaders, imager shaders. Эти shader компилируются специально-подготовленными процессорами и не имеют достаточной аппаратной конфигурации.
В будущем, многие известные исследователи говорили о похожих на RenderMan языках, но они уже были нужны для аппаратного ускорения. Peercy партнёры сделали технику для того, чтобы специальные программы с циклами и условиями выполняли на традиционных аппаратных конструкциях при помощи нескольких заданных операций рендеринга. Shader RenderMan преимущественно делились на несколько заданных операций, которые комбинировались во framebufer. Чуть позже были разработаны языки, которые мы наблюдаем аппаратно ускоренными в OpenGL и DirectX. Так shader смогли адаптироваться для графических приложений разного типа, даже их применение нашлось в приложениях реального времени.
Специальные video-chip раннего времени не программировались, а осуществляли только заранее заданные действия, к примеру, алгоритм параметров освещения был зафиксирован во внутреннем содержании компьютера, и нельзя было ничего менять. Затем, фирмы, которые делали данные video-chip, со временем ввели в свои чипы фрагменты программируемости, сначала там наблюдались слабые возможности, которые так и не имели программной поддержки в Microsoft, но некоторые возможности постоянно расширялись. Следующее развитие было за NV20 и NV2A которые имели первые чипы с аппаратной поддержкой shader DirectX.
Версия данных чипов, образовавшаяся в DirectX 8, была мало-функциональная, каждый shader имел малую длину и сочетал в себе ограниченный набор специальных команд. В будущем, SM1 был улучшен pixel shader новой версии 1.4, которые давали гибкость, но также были очень сильно ограничены. Shader тогда писались на специальном языке под названием — asl, который имеет непосредственное отношение к ассемблеру, который предназначался для универсальных компьютерных технологий. Низкий уровень языка доставлял определенные проблемы для понимания этого кода программирования, в данном случае, когда код программы был очень большой, его было невозможным изучить и понять.
Новая версия shader -SM2, появилась в DirectX 9 и серьезно расширила возможности данных shader в режиме реального времени, предложив длинные и конструктивные shader, а также заметно расширив целый список команд. Была добавлена специальная возможность универсальных расчетов с плывущей запятой в pixel shader, что также модернизировало данную область и качественно улучшило. DirectX 9, также создал совершенный язык для shader, который и назвал — HLS, стоит заметить, что он очень похож по стилю с языком C++.
