Можно поразвлечься и посмотреть, в результате чего изображение меняется. Возможно, есть простой способ добиться лучшего эффекта.
Шум
После того как цвет вычислен, остается умножить его на интерполированный коэффициент диффузного освещения и добавить значение прозрачности 1,0, чтобы получить окончательный цвет фрагмента. Результаты применения данного шейдера к трем различным объектам показаны на цветном рис. 22.
12.8. Итоги В этой главе описаны основные разновидности шума - невероятно полезной функции для добавления неоднородностей к изображению в процедурных шей-дерах. После краткого описания математического определения функции шума приводятся шейдеры, воспроизводящие облака, завихрения, мрамор, гранит и дерево. Функция шума является встроенной функцией языка шейдеров OpenGL. Разработчики также могут создавать собственные функции шума или работать с текстурами. Однако, как бы ни был реализован шум, он применяется для достижения большей реалистичности изображения или создания мультипликации с помощью добавления к изображениям дефектов, отклонений и видимых нере-гулярностей.
12.9. Ссылки Кен Перлин рассказывает историю создания функции шума, представляет учебное пособие но ее применению, а также последнюю реализацию функции на языке Java на своем веб-сайте (http://www.noisemachine.com). Множество интересной информации доступно на его домашней страничке NYU (http://mrL.nyu.edu/~perLin). Его доклад [4] был прочитан на SIGGRAPH в 1985 г., а об улучшениях первичного алгоритма говорилось в докладе [5] на SIGGRAPH-2002.
Книга [2] содержит несколько замечательных описаний функции шума, а на веб-сайте этой книги, http://www.texturingandmodeLing.com, молено найти исходный код множества функций шума на языке С, в том числе и первую функцию шума. Кен Перлин написал для этой книги главу, в которой его алгоритм шума описан в подробностях, а Кен Масгрейв рассматривает потрясающе красивые, созданные математически с помощью функций шума, миры. (Программы для создания изображений различных планет, использующие эти идеи, можно найти на веб-сайте компании Pandromeda, http://www.pandromeda.com.) В главе 2 этой книги Дарвин Пичи приводит множество функций шума, а в главе 7 Дэвид Эберт описывает метод, похожий на метод трехмерного текстурирования. Книга [1] также содержит описание шума и представляет несколько замечательных шейдеров шума на языке RenderMan.