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.
1. Apodaca A. A., Gritz L. Advanced RenderMan: Creating CGI for Motion Pictures. San Francisco: Morgan Kaufmann Publishers, 1999 (http://www.bmrt.org/arman/ materiaLs.html).
2. Texturing and Modeling: A Procedural Approach. 3rd ed./D. S. Ebert, J. Hart, B. Mark, at al. San Francisco: Morgan Kaufmann Publishers, 2002 (http:// www.texturingandmodeLing.com).
3. Hart J. С. Perlin Noise Pixel Shaders//ACM SIGGRAPH/Eurographics Workshop on Graphics Hardware. 2001. August. P. 87-94 (http://graphics.cs.uiuc.edu/~jch/ papers/pixelnoise.pdf).
4. Perlin K. An Image Synthesizer//Computer Graphics (Proc. SIGGRAPH-85). 1985. July. P. 287-296.
5. Perlin K. Improving Noise//Computer Graphics (Proc. SIGGRAPH-2002). 2002. July. P. 681-682 (http://mrl.nyu.edu/perlin/paper445.pdf).
6. Perlin К. Личный веб-сайт (http://www.noisemachine.com).
7. Perlin К. Личный веб-сайт (http://mrl.nyu.edu/~perlin).