SlideShare a Scribd company logo
1 of 16
UNITY3D로 3D 게임
만들기
딥 다크 던전 그래픽 작업기
더 이쁘게 해
보자
그냥 3D 모델 불러와서
배치하는 걸로는 약간 모자라
REALTIME
VS
BAKED
텍스트
REALTIME VS BAKED
텍스트
GI : GLOBAL ILLUMINATION
▸물체에서 반사된 빛이 다른 물체를 밝힘을 묘사하는 것.
▸고급진 그래픽 표현의 기본
텍스트
BAKED LIGHT MAP
▸ 미리 명암을 계산해서 텍스쳐로 만들
었다 런타임에 불러와서 쓰는 방식
▸ GI 해상도 무제한 (미리 계산하니까!)
▸ 모델의 UV가 팔레트에 접혀있는 문
제는 Generate Lightmap UV 체크로
해결
▸ 근데 움직이는 오브젝트의 그림자 표
현이 불가능
텍스트
REALTIME SHADING
▸ 실시간 그림자 표현!
▸ GI 표현 불가능
: 던전을 매번 생성하므로
Precomputed Realtime GI를 사용할
수 없음
텍스트
그래서 뭘 골랐나요?
▸GI는 매우 매력적인 광원 표현.
특히 폐쇄된 공간에서 더더욱 매력적
▸그런데 절차적 맵 생성을 하므로 실시간 GI가 불가능
▸광원이 횃불 등으로 한정된 던전 환경에서는
실시간 그림자가 GI보다 더 중요하다고 판단
▸추후 더 밝은 환경의 던전을 추가할 땐 Baked 방식을 고려할
것
FORWARD
VS
DEFERRED
텍스트
FORWARD
RENDERING
▸ 광원 A에 대한 오브젝트1을 그림
▸ 광원 B에 대한 오브젝트1을 그림
▸ 광원 A에 대한 오브젝트2를 그림
▸ 광원 B에 대한 오브젝트2를 그림
▸ …
▸ 이렇게 여러 빛에 대해 오브젝트를
겹쳐 그리는 방식
완성된 이미지
텍스트
FORWARD를 써봤더니…
▸ 영향을 받는 라이트 갯수가 늘어나면
무한정 연산량이 증가함
▸ Unity3D에서는 일정 갯수 이상 라이
트가 늘어나면 Vertex lit 방식으로 전
환하는 방법으로 성능 저하를 억제
▸ 그러나 Vertex lit 방식은 오른쪽과 같
이 매우 보기에 안 좋음
텍스트
DEFERRED
RENDERING
▸ 일단 오브젝트를 전부 다 그리면서
픽셀의 깊이와 방향을 기록
▸ 이후 후처리 단계에서 명암을 표현
텍스트
DEFERRED를 써봤더니…
▸ 이미 화면이 나온 상태에서 후처리로 명
암을 처리하므로 광원이 늘어나도 큰 성
능 저하가 없음
▸ 추가적인 후처리를 적용해도 성능 저하
가 적다
▸ 다만, 광원 여럿에 영향받는 화면상 면적
이 늘어나면 마찬가지로 성능을 먹는다
▸ 기본적으로 별 거 안 해도 후처리 단계가
필요하기 때문에 일정수준 이상의 성능
을 요구함
▸ Vertex lit을 전혀 사용하지 않는다는 점도
최저사양 상승에 기여
▸ 결과적으로 최저옵과 최상옵의 격차가
줄더라
텍스트
결론은 DEFERRED RENDERING
▸무제한 광원효과라니 넘나 매력적
▸성능을 아끼려면 초대형 광원은 자제하는 쪽으로
▸저사양에서 좀 힘들어지는 게 문제지만
일단 내 맥북에선 잘 돌아감
▸MSAA가 불가능 -> FXAA를 쓰면 됨
▸디퍼드 지원 안하는 매터리얼들은? -> 유니티가 알아서 포워
드로 돌림
▸하옵에선 포워드로 내보내는 것도 괜찮을 듯
끝

More Related Content

Viewers also liked

IEnumerator란 무엇인가?
IEnumerator란 무엇인가?IEnumerator란 무엇인가?
IEnumerator란 무엇인가?Jungsoo Park
 
딥 다크 던전 그린라이트 도전기
딥 다크 던전 그린라이트 도전기딥 다크 던전 그린라이트 도전기
딥 다크 던전 그린라이트 도전기Jungsoo Park
 
48시간, 복셀로 표현하기
48시간, 복셀로 표현하기48시간, 복셀로 표현하기
48시간, 복셀로 표현하기Jungsoo Park
 
유니티3D에서 2D 이미지 다루기
유니티3D에서 2D 이미지 다루기유니티3D에서 2D 이미지 다루기
유니티3D에서 2D 이미지 다루기Jungsoo Park
 
셰이더가 뭐에요?
셰이더가 뭐에요?셰이더가 뭐에요?
셰이더가 뭐에요?Jungsoo Park
 
LINQ란 무엇인가
LINQ란 무엇인가LINQ란 무엇인가
LINQ란 무엇인가Jungsoo Park
 
유니티로 2D게임개발
유니티로 2D게임개발유니티로 2D게임개발
유니티로 2D게임개발GukHwan Ji
 
gv005_1 ver0.1
gv005_1 ver0.1gv005_1 ver0.1
gv005_1 ver0.1Glenn Chae
 
P4.맵 에디터 제작하기(2)
P4.맵 에디터 제작하기(2)P4.맵 에디터 제작하기(2)
P4.맵 에디터 제작하기(2)Unitylearningcenter
 
5시간동안 웨딩런 만들기 워크샵(유나이트2015)
5시간동안 웨딩런 만들기 워크샵(유나이트2015)5시간동안 웨딩런 만들기 워크샵(유나이트2015)
5시간동안 웨딩런 만들기 워크샵(유나이트2015)GukHwan Ji
 
위험한 음식 시리즈2 - 1등급 한우의 비밀
위험한 음식 시리즈2 - 1등급 한우의 비밀위험한 음식 시리즈2 - 1등급 한우의 비밀
위험한 음식 시리즈2 - 1등급 한우의 비밀Hwan-Kyu Roh
 
[1214] unity 2 d 살펴보기
[1214] unity 2 d 살펴보기[1214] unity 2 d 살펴보기
[1214] unity 2 d 살펴보기MinGeun Park
 
유니티 C# 기초 튜토리얼
유니티 C# 기초 튜토리얼유니티 C# 기초 튜토리얼
유니티 C# 기초 튜토리얼Jemin Lee
 
[NDC 14] '미쿠미쿠하게 해줄게' - MMD MV 제작 사례와 매력적인 캐릭터 애니메이션
[NDC 14] '미쿠미쿠하게 해줄게' - MMD MV 제작 사례와 매력적인 캐릭터 애니메이션[NDC 14] '미쿠미쿠하게 해줄게' - MMD MV 제작 사례와 매력적인 캐릭터 애니메이션
[NDC 14] '미쿠미쿠하게 해줄게' - MMD MV 제작 사례와 매력적인 캐릭터 애니메이션Nexon Korea
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기changehee lee
 
모바일 엔진 개발기
모바일 엔진 개발기모바일 엔진 개발기
모바일 엔진 개발기changehee lee
 
유니티에서 MMD 사용해보기
유니티에서 MMD 사용해보기유니티에서 MMD 사용해보기
유니티에서 MMD 사용해보기flashscope
 
내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오KwangSam Kim
 
05_벡터와 매트릭스
05_벡터와 매트릭스05_벡터와 매트릭스
05_벡터와 매트릭스noerror
 

Viewers also liked (20)

IEnumerator란 무엇인가?
IEnumerator란 무엇인가?IEnumerator란 무엇인가?
IEnumerator란 무엇인가?
 
딥 다크 던전 그린라이트 도전기
딥 다크 던전 그린라이트 도전기딥 다크 던전 그린라이트 도전기
딥 다크 던전 그린라이트 도전기
 
48시간, 복셀로 표현하기
48시간, 복셀로 표현하기48시간, 복셀로 표현하기
48시간, 복셀로 표현하기
 
유니티3D에서 2D 이미지 다루기
유니티3D에서 2D 이미지 다루기유니티3D에서 2D 이미지 다루기
유니티3D에서 2D 이미지 다루기
 
셰이더가 뭐에요?
셰이더가 뭐에요?셰이더가 뭐에요?
셰이더가 뭐에요?
 
LINQ란 무엇인가
LINQ란 무엇인가LINQ란 무엇인가
LINQ란 무엇인가
 
유니티로 2D게임개발
유니티로 2D게임개발유니티로 2D게임개발
유니티로 2D게임개발
 
gv005_1 ver0.1
gv005_1 ver0.1gv005_1 ver0.1
gv005_1 ver0.1
 
보안메일서비스 제언
보안메일서비스 제언보안메일서비스 제언
보안메일서비스 제언
 
P4.맵 에디터 제작하기(2)
P4.맵 에디터 제작하기(2)P4.맵 에디터 제작하기(2)
P4.맵 에디터 제작하기(2)
 
5시간동안 웨딩런 만들기 워크샵(유나이트2015)
5시간동안 웨딩런 만들기 워크샵(유나이트2015)5시간동안 웨딩런 만들기 워크샵(유나이트2015)
5시간동안 웨딩런 만들기 워크샵(유나이트2015)
 
위험한 음식 시리즈2 - 1등급 한우의 비밀
위험한 음식 시리즈2 - 1등급 한우의 비밀위험한 음식 시리즈2 - 1등급 한우의 비밀
위험한 음식 시리즈2 - 1등급 한우의 비밀
 
[1214] unity 2 d 살펴보기
[1214] unity 2 d 살펴보기[1214] unity 2 d 살펴보기
[1214] unity 2 d 살펴보기
 
유니티 C# 기초 튜토리얼
유니티 C# 기초 튜토리얼유니티 C# 기초 튜토리얼
유니티 C# 기초 튜토리얼
 
[NDC 14] '미쿠미쿠하게 해줄게' - MMD MV 제작 사례와 매력적인 캐릭터 애니메이션
[NDC 14] '미쿠미쿠하게 해줄게' - MMD MV 제작 사례와 매력적인 캐릭터 애니메이션[NDC 14] '미쿠미쿠하게 해줄게' - MMD MV 제작 사례와 매력적인 캐릭터 애니메이션
[NDC 14] '미쿠미쿠하게 해줄게' - MMD MV 제작 사례와 매력적인 캐릭터 애니메이션
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기
 
모바일 엔진 개발기
모바일 엔진 개발기모바일 엔진 개발기
모바일 엔진 개발기
 
유니티에서 MMD 사용해보기
유니티에서 MMD 사용해보기유니티에서 MMD 사용해보기
유니티에서 MMD 사용해보기
 
내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오
 
05_벡터와 매트릭스
05_벡터와 매트릭스05_벡터와 매트릭스
05_벡터와 매트릭스
 

딥 다크 던전 그래픽 작업기

  • 1. UNITY3D로 3D 게임 만들기 딥 다크 던전 그래픽 작업기
  • 2. 더 이쁘게 해 보자 그냥 3D 모델 불러와서 배치하는 걸로는 약간 모자라
  • 5. 텍스트 GI : GLOBAL ILLUMINATION ▸물체에서 반사된 빛이 다른 물체를 밝힘을 묘사하는 것. ▸고급진 그래픽 표현의 기본
  • 6. 텍스트 BAKED LIGHT MAP ▸ 미리 명암을 계산해서 텍스쳐로 만들 었다 런타임에 불러와서 쓰는 방식 ▸ GI 해상도 무제한 (미리 계산하니까!) ▸ 모델의 UV가 팔레트에 접혀있는 문 제는 Generate Lightmap UV 체크로 해결 ▸ 근데 움직이는 오브젝트의 그림자 표 현이 불가능
  • 7. 텍스트 REALTIME SHADING ▸ 실시간 그림자 표현! ▸ GI 표현 불가능 : 던전을 매번 생성하므로 Precomputed Realtime GI를 사용할 수 없음
  • 8. 텍스트 그래서 뭘 골랐나요? ▸GI는 매우 매력적인 광원 표현. 특히 폐쇄된 공간에서 더더욱 매력적 ▸그런데 절차적 맵 생성을 하므로 실시간 GI가 불가능 ▸광원이 횃불 등으로 한정된 던전 환경에서는 실시간 그림자가 GI보다 더 중요하다고 판단 ▸추후 더 밝은 환경의 던전을 추가할 땐 Baked 방식을 고려할 것
  • 10. 텍스트 FORWARD RENDERING ▸ 광원 A에 대한 오브젝트1을 그림 ▸ 광원 B에 대한 오브젝트1을 그림 ▸ 광원 A에 대한 오브젝트2를 그림 ▸ 광원 B에 대한 오브젝트2를 그림 ▸ … ▸ 이렇게 여러 빛에 대해 오브젝트를 겹쳐 그리는 방식 완성된 이미지
  • 11. 텍스트 FORWARD를 써봤더니… ▸ 영향을 받는 라이트 갯수가 늘어나면 무한정 연산량이 증가함 ▸ Unity3D에서는 일정 갯수 이상 라이 트가 늘어나면 Vertex lit 방식으로 전 환하는 방법으로 성능 저하를 억제 ▸ 그러나 Vertex lit 방식은 오른쪽과 같 이 매우 보기에 안 좋음
  • 12. 텍스트 DEFERRED RENDERING ▸ 일단 오브젝트를 전부 다 그리면서 픽셀의 깊이와 방향을 기록 ▸ 이후 후처리 단계에서 명암을 표현
  • 13. 텍스트 DEFERRED를 써봤더니… ▸ 이미 화면이 나온 상태에서 후처리로 명 암을 처리하므로 광원이 늘어나도 큰 성 능 저하가 없음 ▸ 추가적인 후처리를 적용해도 성능 저하 가 적다 ▸ 다만, 광원 여럿에 영향받는 화면상 면적 이 늘어나면 마찬가지로 성능을 먹는다 ▸ 기본적으로 별 거 안 해도 후처리 단계가 필요하기 때문에 일정수준 이상의 성능 을 요구함 ▸ Vertex lit을 전혀 사용하지 않는다는 점도 최저사양 상승에 기여 ▸ 결과적으로 최저옵과 최상옵의 격차가 줄더라
  • 14. 텍스트 결론은 DEFERRED RENDERING ▸무제한 광원효과라니 넘나 매력적 ▸성능을 아끼려면 초대형 광원은 자제하는 쪽으로 ▸저사양에서 좀 힘들어지는 게 문제지만 일단 내 맥북에선 잘 돌아감 ▸MSAA가 불가능 -> FXAA를 쓰면 됨 ▸디퍼드 지원 안하는 매터리얼들은? -> 유니티가 알아서 포워 드로 돌림 ▸하옵에선 포워드로 내보내는 것도 괜찮을 듯
  • 15.
  • 16.