도구스개발

펄린 노이즈 계산기

켄 펄린의 개선된 노이즈(Improved Noise, 2002) 알고리즘으로 좌표마다 결정적인 그래디언트 노이즈 값을 계산합니다. 좌표 하나의 보간 과정을 단계별로 보여주고, 옥타브를 겹친 노이즈 필드를 격자로 시각화합니다.

노이즈(3.5, 1.2)

0.329728

격자 칸 (3, 1) 안, 칸 안 위치 (0.5, 0.2)

fade(칸 안 x) — 가로 보간 가중치0.5
fade(칸 안 y) — 세로 보간 가중치0.05792
꼭짓점 (0,0) — 그래디언트 해시 40.5
꼭짓점 (1,0) — 그래디언트 해시 80.2
꼭짓점 (0,1) — 그래디언트 해시 60.5
꼭짓점 (1,1) — 그래디언트 해시 4-0.5
펄린 노이즈란. 좌표가 속한 정수 격자 칸의 네 꼭짓점마다 정해진 그래디언트 벡터와 좌표까지의 변위를 내적해 기여값을 구하고, fade 곡선(6t⁵-15t⁴+10t³)으로 네 기여값을 부드럽게 보간한 것입니다. 직선 보간보다 이음매가 덜 보여 «개선된 노이즈»(2002)라 불립니다.
정수 좌표는 왜 항상 0일까요. 정수 좌표는 격자 꼭짓점 그 자신이라 자기 자신까지의 변위가 (0,0)입니다. 그래디언트가 무엇이든 (0,0)과의 내적은 0이고, fade(0)=0·fade(1)=1이라 보간도 그 값을 그대로 통과시켜 순열표 내용과 무관하게 항상 정확히 0이 됩니다.

사용 방법

  1. 1"점 계산" 모드에 좌표 x, y를 넣어 그 점의 노이즈 값과 보간 과정을 봅니다.
  2. 2정수 좌표(예: 3, 7)를 넣어 값이 항상 정확히 0이 되는지 확인해 봅니다.
  3. 3"필드 보기" 모드에서 스케일과 옥타브 수를 바꿔 가며 지형처럼 보이는 무늬가 어떻게 달라지는지 봅니다.
  4. 4옥타브를 1로 두면 부드러운 구름 무늬, 여러 개로 늘리면 산맥처럼 거친 무늬가 되는 것을 비교합니다.

자주 묻는 질문

좌표마다 매끄럽게 이어지는 유사난수 값을 만드는 방법입니다. 켄 펄린이 1983년 영화 «트론»의 절차적 텍스처를 위해 만들었고, 2002년에 «개선된 노이즈»로 다듬은 버전이 지금도 표준으로 쓰입니다. 이 계산기는 그 2002년 버전(fade 곡선 6t⁵-15t⁴+10t³)을 그대로 구현했습니다.

정수 좌표는 노이즈가 정의된 격자의 꼭짓점 자신이기 때문입니다. 그 점에서 자기 자신까지의 변위가 (0,0)이라 그래디언트가 무엇이든 내적이 0이 되고, fade 곡선의 성질(fade(0)=0, fade(1)=1) 때문에 보간도 그 값을 그대로 통과시킵니다. 그래서 순열표 내용과 무관하게 언제나 0입니다 — 구현이 맞았는지 바로 확인할 수 있는 성질입니다.

일반 난수는 이웃한 값끼리 아무 관계가 없어 지형이나 구름처럼 매끄럽게 변하는 것을 흉내 낼 수 없습니다. 펄린 노이즈는 이웃 좌표의 값이 서로 가까워 자연스럽게 이어지면서도, 같은 좌표에 같은 시드로는 항상 같은 값을 내는(결정적인) 유사난수입니다.

주파수를 올리고 진폭을 낮춘 노이즈를 여러 겹 더하는 기법입니다(fractal Brownian motion). 옥타브 1개는 부드러운 큰 무늬만 있지만, 옥타브를 늘릴수록 큰 무늬 위에 작고 세밀한 굴곡이 겹쳐져 산맥이나 구름처럼 거친 질감이 생깁니다.

이론상 -2에서 2 사이지만(네 꼭짓점 기여값의 볼록결합이라 각 기여값의 절댓값 합을 못 넘습니다), 이 계산기가 쓰는 그래디언트 표에서 실제로 나오는 값은 대체로 -1에서 1 사이입니다.

켄 펄린이 «개선된 노이즈» 참조 구현(ImprovedNoise.java)에서 공개한 256개 표 그대로입니다. 이 표를 쓰면 다른 구현으로 계산해도 같은 좌표에서 같은 값이 나옵니다.

전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 2차원(z=0으로 고정한 3차원 알고리즘)만 지원합니다.
  • "필드 보기"는 격자 최대 200×150칸, 옥타브 최대 8개까지만 지원합니다.
  • 색은 그 칸의 노이즈 값을 최소~최댓값 구간에서 상대적으로 나눠 칠한 것으로, 절대적인 밝기 기준이 아닙니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.