Пустинен фрактал OpenGL

ние се опитваме да генерираме 3d свят, използвайки 2d perlin шум (с recorsive/fractal техника). Генерирахме планини и долини доста добре, но сега имаме проблеми с пустиня и дюни, защото работихме само върху постоянство и октави и не можем да направим класическата форма на дюната. Някой вече изпитвал ли е това? Някакво решение, евентуално все още използващо perlin noise или други алгоритми, които ви позволяват да направите това?


person Kroj    schedule 07.07.2014    source източник


Отговори (3)


Бихте могли да опитате мултифрактала с ръбове на Musgrave. Той дава хубави ръбести структури и можете да използвате вашите съществуващи шумови алгоритми за него.

Референтната реализация на C за него е тук

person Dawnkeeper    schedule 07.07.2014

Дюните са лобирани: .='\ напречно сечение... може да искате да използвате първоначална форма от този вид

Правилни са, като вълни в морето. не напълно шум

те са удължени към вятъра

Не използвах първото условие, но направих страхотни дюни чрез умножаване на 2 1d perin шума заедно или дори 2 sin/parabol функции, където и двете са подредени на една ос. т.е. Z, и те имат малък нискочестотен Sin или шум, който ги клати по оста X, така че не са подравнени.

Опитайте тази:

dunes = sin ( X + 1dperlin(Z) *.2 ) * sin ( X + 1dperlin(Z+432) *.2 );

otherwise to test it:

dunes = sin ( X + sin(Z) *.2 ) (plus or times or devided by) sin ( X + sin(Z+432) *.2 );

0,2 прави дюните 10 пъти по-дълги от широките и това е като когато две прави водни вълни се срещнат под почти еднакъв ъгъл, плюс променлива на несигурност, използваща шум за ъгъла.

person DeltaEnfieldWaid    schedule 23.08.2014

Може би турбуленцията все още е достатъчна за това, от което се нуждаете... Опитайте се да играете с турбуленцията, като използвате абсолютната стойност на върнатите стойности на октавите вместо нормалните стойности. Можете също така да оцените поотделно и да комбинирате вашия шум и вашата турбуленция, за да смесите и двата ефекта в някои области.

person Community    schedule 17.08.2014