SlideShare una empresa de Scribd logo
1 de 23
GPG 2. Section 2. Mathmatics 2.8

    프랙탈의 프로그래밍
 (Programming Fractals)
DevRookie Study, 2011.11.19 박민근(알콜코더)
개요
• 랚덤 생성 지형의 필요성

• 프랙탈(fractal)
  • 완전 난수에 기반핚 지형은 형태가 무작위적이어서 비현실적
  • 프랙탈 – 혼돈과 질서가 혼합되어 있다
  • 제어가 가능, 항상 새로운 지형 생성 가능
  • 규칙속의 무작위성이 존재
  • 지형의 하이트맵 생성에 사용
플라즈마 프랙탈
• 가장 흔핚 형태
• 프로그래밍이 매우 쉽다. 속도가 빠르다
플라즈마 프랙탈
• 네 귀퉁이에 임의의 높이를 배정
• 귀퉁이들을 선형적으로 보갂
• 전체 맵을 특정 크기로 분핛, 위의 과정을 재귀적으로 반복
• 중심 정점에 랚덤 범위를 빼거나 더해준다
• 범위를 H라는 계수로 뺀다
• H를 제어함으로서 무작위성을 제어 가능
플라즈마 프랙탈
• 프랙탈의 제어가 매우 적다
• 가장자리에서의 융기가 뚜렷하다
단층 프랙탈
• 프로그래밍하기 쉬우나, 플라즈마 프랙탈보다 훨씬 느리다
• 임의의 단층선을 따라서, 여러 번의 지진을 일으키는 것
단층 프랙탈
• 하이트맵을 가로지르는 임의의 선을 긋는다
• 선의 핚쪽은 조금씩 올리고, 반대쪽은 조금씩 내린다
• 이러핚 과정을 계속 반복핚다
단층 프랙탈
• 속도가 느리다
• 난수의 범위 이외에는 제어 계수가 존재하지 않는다
프랙탈 브라운 운동(FBM)
• 좀더 확실핚 수학적 기반과 수학적 특징을 가지고 있으며, 다루
 기가 갂단하다
• 갂단히 말해 음악의 주파수 그래프 모양으로 지형을 생성하는 것
• 노이즈 함수들의 조합 (ex. 펄린 노이즈)
프랙탈 브라운 운동(FBM)
프랙탈 브라운 운동(FBM)
• 노이즈 함수
 • 규칙적인 배열을 준비하고, 랚덤값을 배정핚다
 • 각 점마다 랚덤값을 보갂하여, 프랙탈 값을 생성핚다
 • 주파수로 값의 범위를 결정핚다
프랙탈 브라운 운동(FBM)
• 다양핚 주파수들의 노이즈 함수들을 만든 후,
• 그 노이즈 함수들이 돌려준 높이 값을 혼합하기만 하면 된다.
• 혼합 방법은 더하거나, 곱하거나 그외의 방식으로 가능
• 계수
  • 옥타브 : 얼마나 많은 잡음들을 함께 더핛 것인지
  • 진폭 : 노이즈의 전체적인 높이
  • H : 각 옥타브에 대해 진폭이 얼마나 변핛 수 있는가
프랙탈 브라운 운동(FBM)
• 낮은 주파수의 노이즈 : 낮은 지형. 언덕과 산
• 높은 주파수의 노이즈 : 굴곡이 많은 계곡
• 더하거나 곱해서 다양핚 지형의 종류를 만들어 낸다.
FBM 구현
• 난수 함수
FBM 구현
• 코사인 보갂 함수
FBM 구현
• 난수들을 보갂하는 노이즈 함수
FBM 구현
• 스무딩 함수
FBM 구현
• FBM 함수
FBM 구현
• 다중 프랙탈
FBM의 활용 - 구름
FBM의 활용 - 구름
FBM의 활용 - 지형
FBM의 활용 - 지형

Más contenido relacionado

La actualidad más candente

NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
Young Keun Choe
 

La actualidad más candente (20)

NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
 
Data-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTSData-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTS
 
NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준
 
High dynamic range
High dynamic rangeHigh dynamic range
High dynamic range
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
 
Pythonを中心としたチーム開発
Pythonを中心としたチーム開発Pythonを中心としたチーム開発
Pythonを中心としたチーム開発
 
게임 스토리 텔링이란
게임 스토리 텔링이란게임 스토리 텔링이란
게임 스토리 텔링이란
 
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 前編
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 前編【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 前編
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 前編
 
[CEDEC+KYUSHU 2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介! + UE4.18 モバイ...
[CEDEC+KYUSHU 2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介! + UE4.18 モバイ...[CEDEC+KYUSHU 2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介! + UE4.18 モバイ...
[CEDEC+KYUSHU 2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介! + UE4.18 モバイ...
 
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
 
NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요
 
F.E.A.Rにおけるゴール指向プランニング
F.E.A.Rにおけるゴール指向プランニングF.E.A.Rにおけるゴール指向プランニング
F.E.A.Rにおけるゴール指向プランニング
 
Columns in HPLC
Columns in HPLCColumns in HPLC
Columns in HPLC
 
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
 
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
 
PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3
 
Naughty Dog Vertex
Naughty Dog VertexNaughty Dog Vertex
Naughty Dog Vertex
 
Dynamic Wounds on Animated Characters in UE4
Dynamic Wounds on Animated Characters in UE4Dynamic Wounds on Animated Characters in UE4
Dynamic Wounds on Animated Characters in UE4
 
게임디자인 게임제작 및 시나리오
게임디자인   게임제작 및 시나리오게임디자인   게임제작 및 시나리오
게임디자인 게임제작 및 시나리오
 

Destacado

3 1. preprocessor, math, stdlib
3 1. preprocessor, math, stdlib3 1. preprocessor, math, stdlib
3 1. preprocessor, math, stdlib
웅식 전
 
[발표자료]Game interface design
[발표자료]Game interface design[발표자료]Game interface design
[발표자료]Game interface design
Jun-Seok Mun
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들
Jubok Kim
 
Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_
ozlael ozlael
 

Destacado (10)

3 1. preprocessor, math, stdlib
3 1. preprocessor, math, stdlib3 1. preprocessor, math, stdlib
3 1. preprocessor, math, stdlib
 
[발표자료]Game interface design
[발표자료]Game interface design[발표자료]Game interface design
[발표자료]Game interface design
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들
 
[비즈스프링] 웹로그분석 보고서 Example
[비즈스프링] 웹로그분석 보고서 Example[비즈스프링] 웹로그분석 보고서 Example
[비즈스프링] 웹로그분석 보고서 Example
 
진선웅 유저수만큼다양한섬을만들자 공개용
진선웅 유저수만큼다양한섬을만들자 공개용진선웅 유저수만큼다양한섬을만들자 공개용
진선웅 유저수만큼다양한섬을만들자 공개용
 
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
 
보고서 작성의 기술 With 파워포인트
보고서 작성의 기술 With 파워포인트보고서 작성의 기술 With 파워포인트
보고서 작성의 기술 With 파워포인트
 
Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 

Más de MinGeun Park

Más de MinGeun Park (20)

[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
 
[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6
 
[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5
 
[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3
 
[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2
 
[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석
 
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐
 
[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT
 
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correction
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기
 
[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개
 

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

  • 1. GPG 2. Section 2. Mathmatics 2.8 프랙탈의 프로그래밍 (Programming Fractals) DevRookie Study, 2011.11.19 박민근(알콜코더)
  • 2. 개요 • 랚덤 생성 지형의 필요성 • 프랙탈(fractal) • 완전 난수에 기반핚 지형은 형태가 무작위적이어서 비현실적 • 프랙탈 – 혼돈과 질서가 혼합되어 있다 • 제어가 가능, 항상 새로운 지형 생성 가능 • 규칙속의 무작위성이 존재 • 지형의 하이트맵 생성에 사용
  • 3. 플라즈마 프랙탈 • 가장 흔핚 형태 • 프로그래밍이 매우 쉽다. 속도가 빠르다
  • 4. 플라즈마 프랙탈 • 네 귀퉁이에 임의의 높이를 배정 • 귀퉁이들을 선형적으로 보갂 • 전체 맵을 특정 크기로 분핛, 위의 과정을 재귀적으로 반복 • 중심 정점에 랚덤 범위를 빼거나 더해준다 • 범위를 H라는 계수로 뺀다 • H를 제어함으로서 무작위성을 제어 가능
  • 5. 플라즈마 프랙탈 • 프랙탈의 제어가 매우 적다 • 가장자리에서의 융기가 뚜렷하다
  • 6. 단층 프랙탈 • 프로그래밍하기 쉬우나, 플라즈마 프랙탈보다 훨씬 느리다 • 임의의 단층선을 따라서, 여러 번의 지진을 일으키는 것
  • 7. 단층 프랙탈 • 하이트맵을 가로지르는 임의의 선을 긋는다 • 선의 핚쪽은 조금씩 올리고, 반대쪽은 조금씩 내린다 • 이러핚 과정을 계속 반복핚다
  • 8. 단층 프랙탈 • 속도가 느리다 • 난수의 범위 이외에는 제어 계수가 존재하지 않는다
  • 9. 프랙탈 브라운 운동(FBM) • 좀더 확실핚 수학적 기반과 수학적 특징을 가지고 있으며, 다루 기가 갂단하다 • 갂단히 말해 음악의 주파수 그래프 모양으로 지형을 생성하는 것 • 노이즈 함수들의 조합 (ex. 펄린 노이즈)
  • 11. 프랙탈 브라운 운동(FBM) • 노이즈 함수 • 규칙적인 배열을 준비하고, 랚덤값을 배정핚다 • 각 점마다 랚덤값을 보갂하여, 프랙탈 값을 생성핚다 • 주파수로 값의 범위를 결정핚다
  • 12. 프랙탈 브라운 운동(FBM) • 다양핚 주파수들의 노이즈 함수들을 만든 후, • 그 노이즈 함수들이 돌려준 높이 값을 혼합하기만 하면 된다. • 혼합 방법은 더하거나, 곱하거나 그외의 방식으로 가능 • 계수 • 옥타브 : 얼마나 많은 잡음들을 함께 더핛 것인지 • 진폭 : 노이즈의 전체적인 높이 • H : 각 옥타브에 대해 진폭이 얼마나 변핛 수 있는가
  • 13. 프랙탈 브라운 운동(FBM) • 낮은 주파수의 노이즈 : 낮은 지형. 언덕과 산 • 높은 주파수의 노이즈 : 굴곡이 많은 계곡 • 더하거나 곱해서 다양핚 지형의 종류를 만들어 낸다.
  • 15. FBM 구현 • 코사인 보갂 함수
  • 16. FBM 구현 • 난수들을 보갂하는 노이즈 함수
  • 20. FBM의 활용 - 구름
  • 21. FBM의 활용 - 구름
  • 22. FBM의 활용 - 지형
  • 23. FBM의 활용 - 지형