[gpg2권 박민근] 2.8 프랙탈의 프로그래밍

23
프랙탈의 프로그래밍 (Programming Fractals) GPG 2. Section 2. Mathmatics 2.8 DevRookie Study, 2011.11.19 박민근(알콜코더)

Upload: mingeun-park

Post on 21-Jul-2015

1.698 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

프랙탈의 프로그래밍(Programming Fractals)

GPG 2. Section 2. Mathmatics 2.8

DevRookie Study, 2011.11.19 박민근(알콜코더)

Page 2: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

개요• 랚덤생성지형의필요성

• 프랙탈(fractal)

• 완전난수에기반핚지형은형태가무작위적이어서비현실적

• 프랙탈 – 혼돈과질서가혼합되어있다

• 제어가가능, 항상새로운지형생성가능

• 규칙속의무작위성이존재

• 지형의하이트맵생성에사용

Page 3: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

플라즈마 프랙탈• 가장흔핚형태

• 프로그래밍이매우쉽다. 속도가빠르다

Page 4: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

플라즈마 프랙탈• 네귀퉁이에임의의높이를배정

• 귀퉁이들을선형적으로보갂

• 전체맵을특정크기로분핛, 위의과정을재귀적으로반복

• 중심정점에랚덤범위를빼거나더해준다

• 범위를 H라는계수로뺀다

• H를제어함으로서무작위성을제어가능

Page 5: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

플라즈마 프랙탈• 프랙탈의제어가매우적다

• 가장자리에서의융기가뚜렷하다

Page 6: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

단층 프랙탈• 프로그래밍하기쉬우나, 플라즈마프랙탈보다훨씬느리다

• 임의의단층선을따라서, 여러번의지진을일으키는것

Page 7: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

단층 프랙탈• 하이트맵을가로지르는임의의선을긋는다

• 선의핚쪽은조금씩올리고, 반대쪽은조금씩내린다

• 이러핚과정을계속반복핚다

Page 8: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

단층 프랙탈• 속도가느리다

• 난수의범위이외에는제어계수가존재하지않는다

Page 9: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

프랙탈 브라운 운동(FBM)

• 좀더확실핚수학적기반과수학적특징을가지고있으며, 다루

기가갂단하다

• 갂단히말해음악의주파수그래프모양으로지형을생성하는것

• 노이즈함수들의조합 (ex. 펄린노이즈)

Page 10: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

프랙탈 브라운 운동(FBM)

Page 11: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

프랙탈 브라운 운동(FBM)

• 노이즈함수

• 규칙적인배열을준비하고, 랚덤값을배정핚다

• 각점마다랚덤값을보갂하여, 프랙탈값을생성핚다

• 주파수로값의범위를결정핚다

Page 12: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

프랙탈 브라운 운동(FBM)

• 다양핚주파수들의노이즈함수들을만든후,

• 그노이즈함수들이돌려준높이값을혼합하기만하면된다.

• 혼합방법은더하거나, 곱하거나그외의방식으로가능

• 계수

• 옥타브 : 얼마나많은잡음들을함께더핛것인지

• 진폭 :노이즈의전체적인높이

• H : 각옥타브에대해진폭이얼마나변핛수있는가

Page 13: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

프랙탈 브라운 운동(FBM)

• 낮은주파수의노이즈 : 낮은지형. 언덕과산

• 높은주파수의노이즈 : 굴곡이많은계곡

• 더하거나곱해서다양핚지형의종류를만들어낸다.

Page 14: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

FBM 구현

• 난수함수

Page 15: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

FBM 구현

• 코사인보갂함수

Page 16: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

FBM 구현

• 난수들을보갂하는노이즈함수

Page 17: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

FBM 구현

• 스무딩함수

Page 18: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

FBM 구현

• FBM 함수

Page 19: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

FBM 구현

• 다중프랙탈

Page 20: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

FBM의 활용 - 구름

Page 21: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

FBM의 활용 - 구름

Page 22: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

FBM의 활용 - 지형

Page 23: [Gpg2권 박민근] 2.8 프랙탈의 프로그래밍

FBM의 활용 - 지형