glTexImage3D(GL_TEXTURE_3D. 0. GL_RGBA. noise3DTexSize.
noise3DTexSize. noise3DTexSize. 0. GL_RGBA. GL_UMSIGMED_BYTE. noise3DTexPtr):
}

Этот способ хорош, если в окончательном изображении не будет повторений или если они будут не очень заметны. Один из способов избежать повто-ений - проследить, чтобы каждое значение текстуры было прочитано только дин раз. Например, если текстура имеет размеры 128 х 128 х 128, а входными начениями для функции шума являются координаты объекта, то повторений е будет при условии, что поверхность объекта полностью покрывается дан-ой текстурой.

.3. Выбор метода создания шума осле того как графические ускорители станут поддерживать встроенную функ-ию noi se и позволять разработчикам добавлять собственные функции, будут до-упны три метода создания шума в шейдере и придется выбирать, какой именно етод использовать в приложении. Очень многое зависит от реализации OpenGL, о если нужно вычислять шум без использования текстур, то лучше всего подой-ет встроенная функция noi se языка шейдеров OpenGL. Далее перечислены пре-мущества ее использования. Не расходуется текстурная память (к примеру, текстурная карта в RGBA с 8 битами на компонент занимает 8 Мбайт текстурной памяти).

Не расходуется текстурный модуль (это может быть важно для разработчиков в случае, если графический ускоритель предоставляет только 2 или 4 текстурных модуля).

Функция noise непрерывная, а не дискретная, поэтому при любом масштабе на изображении с шумом не будет пикселизации1.

Пикселизация - появление па растровом изображении нежелательного регулярного геометрического узора, например, в виде маленьких квадратиков. - Примеч. перев.

Шум

□ Эта функция не периодическая и не повторяющаяся, особенно для двухмерного и трехмерного шума (но это зависит от реализации).

□ Шейдеры, использующие встроенную функцию noi se, не зависят от приложения (как это было бы в случае использования текстурного метода). Преимущества метода текстурных карт таковы:

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


⇐ Предыдущая| |Следующая ⇒