2011-12-26 5 views
0

Perlin Noise 튜토리얼은 자바 나 2D에서는 그리 쉽지 않습니다. 나는 this 튜토리얼을 따라 갔지만 2D 노이즈는 전혀 설명하지 못했다. 나는 당신이 숫자의 배열을 생성 한 다음, 그것들과 모든 것을 삽입해야한다는 것을 안다. 내 문제는 주파수의 결과에 영향을주기 위해 주파수, 지속성 또는 진폭을 구현하는 방법을 모른다는 것입니다. 누구든지 나에게 몇 가지 기본적인 Perlin Noise 함수 또는 Java 또는 유사한 언어로 된 2D Perlin Noise 튜토리얼에 대한 링크를 제공 할 수 있습니까? 감사!Java : 2D Perlin Noise Creation

EDIT : 누군가가 프로세스를 최소한 간단하게 설명하거나 세대에 영향을 미치는 빈도, 진폭 및 지속성을 구현하는 방법을 간단히 설명 할 수 있습니까? 제발 :

+0

귀하의 궁금한 점은 무엇입니까? 지속성을 포함하여 perlin을 처리하는 방법을 보여주는 연결된 페이지에 (의사) 코드가 있습니다. 원하는 언어로 직접 번역 할 수 있습니다. – Howard

+0

예 알아요.하지만 완전히 이해하는 데 문제가 있습니다. 나는 그것을 자바로 완전히 번역했지만 수학적으로 어떻게 작동하는지 정확히 이해하는 데 문제가 있습니다. 프로세스가 어떻게 작동하는지에 대한 명확한 설명이 필요합니다. – MrDrProfessorTyler

답변

2

진폭주파수은 Perlin Noise 세대에서 자유 변수가 아닙니다. 대신 그들은 지속성이라는 매개 변수에 의해 매개 변수화됩니다.

잡음 함수는 다음 몇 가지 기본 함수에 대한 합계입니다.

n(x) = sum(n_i(x*f_i) * a_i, i=0..N-1) 

각 기능 옥타브 호출하므로 인덱스 i으로 넘버링된다. 값 f_i은 주파수를 나타내며 a_i은 진폭을 나타냅니다. 그들이 완전히 지속성p 의해 매개 변수화 인덱스 i 자체에 의해 결정되기 전에 바와 같이

f_i = 2^i 
a_i = p^i 

각 노이즈 함수 n_i(x) 주파수 1 진폭 1 정규화이지만, 전체적인 기간 n_i(x*f_i) * a_i 이제 주파수를 가지며 진폭은 위의 식에 의해 주어진다.

말하면 노이즈 함수 n(x)는 첫 번째 한 주파수 2 진폭 p을 가지며, 주파수 11 진폭을 갖는 옥타브의 합은 제 등등 주파수 4 진폭 p^2 등을 갖는다.

+0

감사합니다. Howard에게 많은 도움이되었습니다. 나는 지금 1 차원 Perlin Noise로 축소하고 이것을 시도해 보았고 멋지게 작동하는 것으로 보인다. 다시 한 번 감사드립니다! – MrDrProfessorTyler

+0

또한, 기사에서 노이즈를 추가해야한다고 말하면 Perlin Noise가 발생합니다. 평균 노이즈가 함께 나타 납니까? – MrDrProfessorTyler

+0

간단히 말하면, 답안에서'n (x)'의 표현식을보십시오. – Howard