2012-05-07 2 views
2

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

Perlin Noise

Однако все Я получаю то, что просто кажется случайным:

Ant war

Я использую код симплекс из here и я использовать его как это:

def generate(self): 
    columns = [] 
    for x in range(0, self.width): 
     rows = [] 
     for y in range(0, self.height): 
      val = simplex.scaled_raw_noise_2d(0, 254, x, y) 
      rows.append(val) 
     columns.append(rows) 
    return columns 

Довольно простой, но кажется, что я чего-то не хватает. Понятия не имею, что хотя

ответ

0

Я думаю, вы должны просто написать код, как

def generate(self): 
    return simplex.scaled_raw_noise_2d(0, 254, range(0, self.width), 
             range(0, self.width)) 
0

Это своего рода старый вопрос, но это не должно остаться без ответа! Разумеется, для посетителей, даже если вы сами это поняли.

Я не слишком опытен с python, но, похоже, проблема в том, что частота слишком высока, 1.0, если быть точным. Или, другими словами, шум слишком сильно уменьшен, что приводит к тому, что шум будет сглажен.

Для «увеличения» частота должна быть уменьшена. Что бы выглядело примерно так, если предположить, что в вашей библиотеке нет другого способа сделать это.

def generate(self): 
    columns = [] 
    frequency = 1/10 # zoom in 10 times 
    for x in range(0, self.width): 
     rows = [] 
     for y in range(0, self.height): 
      val = simplex.scaled_raw_noise_2d(0, 254, x * frequency, y * frequency) 
      rows.append(val) 
     columns.append(rows) 
    return columns 

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

+0

Ahaa, interesting. Я не могу вспомнить, зачем мне это нужно, но я попробую. – dutt

 Смежные вопросы

  • Нет связанных вопросов^_^