SlideShare ist ein Scribd-Unternehmen logo
1 von 28
MIP-MAP
22.02.26
조광민
데브루키 스터디
밉맵이라는 건 어디에 쓸까?
● 어디에 쓰지?
○ 렌더링 할 때 쓴다!
밉맵은 왜 쓸까?
● 왜 쓰지?
○ 렌더링 속도를 향상시키기 위해서 쓴다!
○ 즉, 빨리 그리려고 쓴다!
밉맵은 왜 쓸까?
● 뭘 빨리 그리는거지?
밉맵이 뭐지..?
● 밉..????????
● 맵..?.... 구글 맵 할 때 그 맵…?
밉
● 밉을 검색해보았다..!
○ 밉상짓 하는 구글맵..?
밉
● 밉을 검색해보았다..!
○ 밉상짓 하는 구글맵..?
MIP-MAP이란
● Mip Maps의 정의
○ 원본 텍스처와 해당 텍스처를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이
미지의 집합
이미지 출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jidon333&logNo=220494454259
원본 텍스처
MIP-MAP이란
● Mip Maps
○ Mip : Multum in parvo : “적은 공간에 더 많이” 라는 뜻의 라틴어
○ Maps : (Bit-)Maps
○ 밉맵을 저장하는데 필요한 용량은 원래 텍스처 용량의 ¼+1/16+1/256+...=⅓ 이다.
밉맵은 왜 쓸까?
● 렌더링 속도를 향상 시키기 위해서 쓴다!
밉맵은 어떻게 렌더링 속도를 향상시킬까?
● 먼 거리도 고품질의 텍스처를 써야하나? => 아니다
○ 가까울수록 고품질의 텍스처
○ 먼 거리일수록 저품질의 텍스처
○ 즉, 텍스처의 LOD 이다.
가까운 곳 먼 곳
밉맵 레벨
● 밉맵 레벨
○ 텍스쳐 생성 시 밉맵의 단계(레벨)을 정할 수 있다.
밉맵은 어떻게 렌더링 속도를 향상시킬까?
● 카메라에서부터 가까운 거리일수록 고품질, 먼 거리일수록 저품질로 렌더링
이미지 출처 : https://drehzr.tistory.com/666
밉맵은 어떻게 렌더링 속도를 향상시킬까? (피드백추가)
● 아래와 같은 밉맵이 있을 때, 먼 거리 가까운 거리에 따라 UV를 프로그래머가
바꿔주지 않는데, 이유는 밉맵은 하드웨어에서 제공하기 때문에 하드웨어가
UV좌표를 바꿔준다.
<- 피라미드식 한 장의 이미지이다.
밉맵을 사용하지 않으면 어떻게 될까?
● 먼 거리에서 너무 고품질 텍스처를 사용하게 되면 지글거리는 현상이 일어남
○ 적은 픽셀에 꾸역꾸역 집어넣어서 노이즈가 발생
이미지 출처 : http://www.tomshardware.com/reviews/ati,819-2.html
밉맵을 사용하지 않으면 어떻게 될까?
0 1
텍셀
픽셀
● 픽셀 < 텍셀(텍스처픽셀)
밉맵을 사용하지 않으면 어떻게 될까?
0 1
텍셀
픽셀
● 텍셀(텍스처픽셀) < 픽셀
밉맵을 사용하면 왜 빨라질까? (피드백추가)
● 텍셀 사이즈와 픽셀 사이즈가 차이가 많이 날수록 텍셀와 픽셀 개수를 맞춰주
는 보간에 시간이 더 든다.
밉맵
● 렌더링 속도가 향상된다 == 메모리를 더 쓴다
○ 원본 텍스처와 해당 텍스처를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이
미지의 집합
여기까지가 셰이더에서 사용하는 밉맵
● 거리에 따라 다른 밉맵 텍스처를 사용하는구나..!
이미지 출처 :
http://www.tomshardware.com/reviews/ati,819-2.html
여기서부터는 밉맵 개념의 응용
● 원본 텍스처는 언제 로드할까?
○ 프로토 타입 패턴 사용해서 로딩 때 미리 로드하면 됨!
밉맵 개념의 응용
● 헉.. 미리 로드요…?? 멤낮찐은 겜도 하지 말란건가요;
밉맵 개념의 응용
● 스트리밍 텍스처
○ 실시간으로 필요한 텍스처를 로드하자!
넌 아직 로드 ㄴㄴ
넌 로드 ㅇㅇ
밉맵 개념의 응용
● 다 로드할 필요없이 기본적으로 필요한 것만 미리 로드하고
추가로 필요한건 필요할 때만 로드하면 되죠..!
밉맵 개념의 응용
● 메모리 최적화
○ 스트리밍 텍스처를 사용할 때 많은 메모리를 사용하고 있는 것을 발견
○ 많은 수의 플레이어들이 다 다른 옷을 입고 고품질 텍스쳐를 사용하고 있다면?
밉맵 개념의 응용
● 실시간 로드할 때 품질을 직접 정해서 로드하자!
○ 실시간으로 거리에 따라 해당 품질의 텍스쳐를 로드하도록 한다.
넌 이 정도 거리니까 이정도 품질로 텍스처 로드해!
밉맵 개념의 응용
● 1레벨 차이의 텍스쳐 품질은 크게 차이가 나지 않지만 메모리 차이는 크다!
메모리 ¼ 차이 ㄷㄷ
밉맵 개념의 응용
● 거리에 따른 갱신 여부
○ 컬링된 오브젝트는 밉맵 갱신을 하고있지 않았다….

Weitere ähnliche Inhalte

Was ist angesagt?

물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해tartist
 
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기Madumpa Park
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리changehee lee
 
Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더동석 김
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기강 민우
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기강 민우
 
PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3Jooyoung Yi
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술Ki Hyunwoo
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희changehee lee
 
Ue4 에서의 환경변화 구현
Ue4 에서의 환경변화 구현Ue4 에서의 환경변화 구현
Ue4 에서의 환경변화 구현kyuil choi
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010devCAT Studio, NEXON
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근MinGeun Park
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayYEONG-CHEON YOU
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1MoonLightMS
 

Was ist angesagt? (20)

물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해
 
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리
 
Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
 
PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3
 
Motion blur
Motion blurMotion blur
Motion blur
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
Bump Mapping
Bump MappingBump Mapping
Bump Mapping
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
 
Ndc11 이창희_hdr
Ndc11 이창희_hdrNdc11 이창희_hdr
Ndc11 이창희_hdr
 
Ue4 에서의 환경변화 구현
Ue4 에서의 환경변화 구현Ue4 에서의 환경변화 구현
Ue4 에서의 환경변화 구현
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
Ssao
SsaoSsao
Ssao
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture Array
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1
 

MipMap(밉맵)

  • 2. 밉맵이라는 건 어디에 쓸까? ● 어디에 쓰지? ○ 렌더링 할 때 쓴다!
  • 3. 밉맵은 왜 쓸까? ● 왜 쓰지? ○ 렌더링 속도를 향상시키기 위해서 쓴다! ○ 즉, 빨리 그리려고 쓴다!
  • 4. 밉맵은 왜 쓸까? ● 뭘 빨리 그리는거지?
  • 5. 밉맵이 뭐지..? ● 밉..???????? ● 맵..?.... 구글 맵 할 때 그 맵…?
  • 6. 밉 ● 밉을 검색해보았다..! ○ 밉상짓 하는 구글맵..?
  • 7. 밉 ● 밉을 검색해보았다..! ○ 밉상짓 하는 구글맵..?
  • 8. MIP-MAP이란 ● Mip Maps의 정의 ○ 원본 텍스처와 해당 텍스처를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이 미지의 집합 이미지 출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jidon333&logNo=220494454259 원본 텍스처
  • 9. MIP-MAP이란 ● Mip Maps ○ Mip : Multum in parvo : “적은 공간에 더 많이” 라는 뜻의 라틴어 ○ Maps : (Bit-)Maps ○ 밉맵을 저장하는데 필요한 용량은 원래 텍스처 용량의 ¼+1/16+1/256+...=⅓ 이다.
  • 10. 밉맵은 왜 쓸까? ● 렌더링 속도를 향상 시키기 위해서 쓴다!
  • 11. 밉맵은 어떻게 렌더링 속도를 향상시킬까? ● 먼 거리도 고품질의 텍스처를 써야하나? => 아니다 ○ 가까울수록 고품질의 텍스처 ○ 먼 거리일수록 저품질의 텍스처 ○ 즉, 텍스처의 LOD 이다. 가까운 곳 먼 곳
  • 12. 밉맵 레벨 ● 밉맵 레벨 ○ 텍스쳐 생성 시 밉맵의 단계(레벨)을 정할 수 있다.
  • 13. 밉맵은 어떻게 렌더링 속도를 향상시킬까? ● 카메라에서부터 가까운 거리일수록 고품질, 먼 거리일수록 저품질로 렌더링 이미지 출처 : https://drehzr.tistory.com/666
  • 14. 밉맵은 어떻게 렌더링 속도를 향상시킬까? (피드백추가) ● 아래와 같은 밉맵이 있을 때, 먼 거리 가까운 거리에 따라 UV를 프로그래머가 바꿔주지 않는데, 이유는 밉맵은 하드웨어에서 제공하기 때문에 하드웨어가 UV좌표를 바꿔준다. <- 피라미드식 한 장의 이미지이다.
  • 15. 밉맵을 사용하지 않으면 어떻게 될까? ● 먼 거리에서 너무 고품질 텍스처를 사용하게 되면 지글거리는 현상이 일어남 ○ 적은 픽셀에 꾸역꾸역 집어넣어서 노이즈가 발생 이미지 출처 : http://www.tomshardware.com/reviews/ati,819-2.html
  • 16. 밉맵을 사용하지 않으면 어떻게 될까? 0 1 텍셀 픽셀 ● 픽셀 < 텍셀(텍스처픽셀)
  • 17. 밉맵을 사용하지 않으면 어떻게 될까? 0 1 텍셀 픽셀 ● 텍셀(텍스처픽셀) < 픽셀
  • 18. 밉맵을 사용하면 왜 빨라질까? (피드백추가) ● 텍셀 사이즈와 픽셀 사이즈가 차이가 많이 날수록 텍셀와 픽셀 개수를 맞춰주 는 보간에 시간이 더 든다.
  • 19. 밉맵 ● 렌더링 속도가 향상된다 == 메모리를 더 쓴다 ○ 원본 텍스처와 해당 텍스처를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이 미지의 집합
  • 20. 여기까지가 셰이더에서 사용하는 밉맵 ● 거리에 따라 다른 밉맵 텍스처를 사용하는구나..! 이미지 출처 : http://www.tomshardware.com/reviews/ati,819-2.html
  • 21. 여기서부터는 밉맵 개념의 응용 ● 원본 텍스처는 언제 로드할까? ○ 프로토 타입 패턴 사용해서 로딩 때 미리 로드하면 됨!
  • 22. 밉맵 개념의 응용 ● 헉.. 미리 로드요…?? 멤낮찐은 겜도 하지 말란건가요;
  • 23. 밉맵 개념의 응용 ● 스트리밍 텍스처 ○ 실시간으로 필요한 텍스처를 로드하자! 넌 아직 로드 ㄴㄴ 넌 로드 ㅇㅇ
  • 24. 밉맵 개념의 응용 ● 다 로드할 필요없이 기본적으로 필요한 것만 미리 로드하고 추가로 필요한건 필요할 때만 로드하면 되죠..!
  • 25. 밉맵 개념의 응용 ● 메모리 최적화 ○ 스트리밍 텍스처를 사용할 때 많은 메모리를 사용하고 있는 것을 발견 ○ 많은 수의 플레이어들이 다 다른 옷을 입고 고품질 텍스쳐를 사용하고 있다면?
  • 26. 밉맵 개념의 응용 ● 실시간 로드할 때 품질을 직접 정해서 로드하자! ○ 실시간으로 거리에 따라 해당 품질의 텍스쳐를 로드하도록 한다. 넌 이 정도 거리니까 이정도 품질로 텍스처 로드해!
  • 27. 밉맵 개념의 응용 ● 1레벨 차이의 텍스쳐 품질은 크게 차이가 나지 않지만 메모리 차이는 크다! 메모리 ¼ 차이 ㄷㄷ
  • 28. 밉맵 개념의 응용 ● 거리에 따른 갱신 여부 ○ 컬링된 오브젝트는 밉맵 갱신을 하고있지 않았다….