Как создать фрактальный куб? - PullRequest
5 голосов
/ 15 июля 2009

Я хотел бы визуализировать объемные облака в OpenGL. Я нашел интересную статью, в которой описана простая техника визуализации объемных облаков. (http://www.inframez.com/events_volclouds_slide18.htm) Однако я не знаю, как создать их «фрактальный куб» (или куб с перлин-шумом).

Мой вопрос: как создать 6 мозаичных фрактальных текстур куба?

Редактировать : моя цель - сделать объект объемного облака, а не облачный скайбокс.

Ответы [ 4 ]

3 голосов
/ 18 июля 2009

Хорошее введение в шум Перлина, написанное самим Кеном Перлином, это здесь . Он рассказывает о генерации одно- или двухмерной шумовой функции в некоторых деталях, а затем обобщает ее, чтобы показать, как она будет работать в 3D, чтобы создать сплошной куб шума, как вы хотите.

0 голосов
/ 17 июля 2009

Я думаю, что текстура фрактального куба, на которую они ссылаются, является фракталом FBM (Fractal Brownian Motion), сгенерированным из нескольких октав перлинского шума. В этой главе Gems по программированию игр обсуждается, как они формируются. Основная идея состоит в том, чтобы объединить несколько «октав» шума Перлина, причем каждая октава имеет примерно вдвое большую частоту предыдущей октавы. Вы можете сделать это плавно, изменив функцию шума. Облачный фильтр в Photoshop, по сути, представляет собой шум FBM, и он бесшовен, поэтому вы можете просто использовать его, если у вас есть доступ к Photoshop.

0 голосов
/ 17 июля 2009

Если вы действительно заинтересованы в хорошем рендеринге облака, то алгоритм Марка Харриса довольно неплох, хотя и сложен: http://www.markmark.net/clouds/

0 голосов
/ 17 июля 2009

При использовании двумерной текстуры облака с биллбордом вы создаете двухмерную текстуру с альфа-смешиванием, прозрачность которой выглядит как облако. То, что они просят вас сделать, это почти то же самое, только текстура плавно оборачивается вокруг куба (как скайбокс). Фильтр перлин-шума выглядит как алгоритм, чтобы сделать что-то похожее на облако.

Мой быстрый подход к этому заключался бы в использовании облачного фильтра Photoshop для создания вашей текстуры. Следуйте основной концепции этого урока для альфа-смешивания, но не делайте круговой градиент. Разрежьте его на бесшовную сетку в виде скайбокса (то есть так, чтобы он имел 6 сторон и правильно складывался вокруг куба).

...