Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

MOONSUN

[그래픽스] Procedural Noise의 이해 : Noise → FBM → Domain Warping 본문

D3D

[그래픽스] Procedural Noise의 이해 : Noise → FBM → Domain Warping

MoonSun_v 2025. 12. 18. 11:34

 

자연스러운 구름, 연기, 물결 같은 패턴은
사진을 찍어서 만드는 것이 아니라 수학적 규칙으로 생성할 수 있다.


이런 방식을 Procedural Texture라고 부른다.

 

그 핵심 흐름은 단 하나다.

Noise → FBM → Domain Warping

 

 

 

1. Noise란 무엇인가?

Noise = “연속성을 가진 랜덤”

 

Noise는 단순한 난수가 아니라, 이웃한 위치끼리는 비슷한 값을 갖는 랜덤이다.

 

  • 랜덤(Random):
    • 각 위치마다 완전히 다른 값
    • 점처럼 튀고 끊김
  • 노이즈(Noise):
    • 근처 위치는 비슷한 값
    • 부드럽게 이어짐

 

시각적인 느낌으로, Random은 TV 화면의 지글지글한 점이고, Noise는 구름이나 물결 같은 부드러운 변화의 느낌이다. 

 

Noise는 자연스러운 변화의 최소 단위다.

 

 

1-1. Noise는 어떻게 만들어지는가?

Noise의 핵심 아이디어는 간단하다.

  1. 공간을 격자로 나눈다
  2. 각 격자에 랜덤 값을 하나씩 둔다
  3. 격자 사이를 부드럽게 이어 붙인다

이 “부드럽게 이어 붙이는 과정” 덕분에, Noise는 끊기지 않고 흐르는 형태를 가진다.

 

결과적으로, 경계가 보이지 않고, 밝음 → 어두움 → 밝음을 자연스럽게 연결할 수 있게 된다.

하지만 여기까지는 아직 부족하다.. 

 

 

1-2. Noise의 한계

단일 Noise는 부드럽고, 자연스러운 큰 형태를 가지지만,

디테일이 부족하고, 패턴이 단조로운 한계가 있다. 

 

그래서 등장하는 것이 FBM

 

 

 

 

2. FBM (Fractal Brownian Motion)

FBM = Noise를 여러 번 겹쳐서 더한 것

 

Noise 하나로는 단순하기 때문에, 

크기가 다른 Noise를 → 여러 층으로 → 조금씩 섞는다

 

비유하자면, 

 

  • 큰 붓으로 한 번 칠함 → 큰 형태
  • 중간 붓으로 덧칠 → 중간 디테일
  • 아주 작은 붓으로 톡톡 → 미세 디테일

 

 

즉, 이걸 전부 합친 것이 FBM이다.

 

 

2-1. FBM의 핵심 규칙

FBM은 보통 이런 규칙을 따른다.

 

반복할수록

  • Noise는 더 촘촘해지고 (주파수 증가)
  • 영향력은 줄어든다 (진폭 감소)

큰 구조가 가장 중요하며, 작은 디테일은 살짝만 기여하는 느낌.

 

결과적으로, 자연에서 흔히 보이는 프랙탈 구조의 

구름, 연기, 산, 파도 같은 형태를 나름 자연스럽게 구현한다. 

 

 

2-2. FBM의 한계

FBM도 좋아보이지만, 

 

  • 패턴이 전체적으로 균일하며
  • 어딘가 “정돈된” 느낌으로 살짝 인공적인 인상 을 준다

 

원인은

Noise는 여전히 정적인 좌표 위에서 계산되고 있기 때문

 

자연물을 구현하기에는 너무 얌전하다.

 

 

3. Domain Warping : 좌표 뒤틀기 

Domain Warping의 핵심 아이디어는

값을 바꾸지 말고, 좌표를 흔들자

 

일반적인 Noise:

value = fbm(uv)
Domain Warping:
warp  = fbm(uv) 
value = fbm(uv + warp)

 

즉, Noise로 또 다른 Noise의 입력 위치 자체를 왜곡한다
 

 

 

3-1. Domain Warping의 효과

Domain Warping의 한 줄 변화로 아래 같은 일이 생긴다.

  • 경계가 휘어진다
  • 패턴이 찢어지고 뒤틀린다
  • 흐름과 난류가 생긴다
  • 반복 구조가 사라진다

시각적으로, 연기처럼 소용돌이 치고 물이 흐르고 뒤엉키는 느낌을 줄 수 있다. 

 

즉, 이 순간부터 패턴은 그럴듯한 자연 현상이 된다. 

 

 

3-2. Domain Warping의 자연 현상 구현  

자연의 핵심 특징은 이것이다.

형태 자체가 흐름에 의해 왜곡된다

  • 연기: 공기의 흐름에 따라 휘어짐
  • 구름: 바람과 난류에 뒤틀림
  • 불꽃: 상승하면서 요동침

Domain Warping은 이 “흐름에 의한 왜곡”을 가장 간단하게 흉내 낸 방법이다.

 

 

 

4. 요약 정리 

Procedural Texture는 복잡한 수학이 아니라 생각의 흐름이다.

1. 자연은 끊기지 않는다 → Noise
2. 자연은 여러 크기의 구조를 가진다 → FBM
3. 자연은 흐름에 의해 뒤틀린다 → Domain Warping

 

이 세 가지만 이해하면,
구름·연기·불·물결 셰이더를 구현할 수 있다.