SlideShare une entreprise Scribd logo
1  sur  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레벨 차이의 텍스쳐 품질은 크게 차이가 나지 않지만 메모리 차이는 크다!
메모리 ¼ 차이 ㄷㄷ
밉맵 개념의 응용
● 거리에 따른 갱신 여부
○ 컬링된 오브젝트는 밉맵 갱신을 하고있지 않았다….

Contenu connexe

Tendances

[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기동석 김
 
Screen space reflection
Screen space reflectionScreen space reflection
Screen space reflectionBongseok Cho
 
Compute shader
Compute shaderCompute shader
Compute shaderQooJuice
 
매쉬 베이크 마스터리
매쉬 베이크 마스터리매쉬 베이크 마스터리
매쉬 베이크 마스터리Jooyoung Yi
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correctionMinGeun Park
 
감마가 어디감마
감마가 어디감마감마가 어디감마
감마가 어디감마JP Jung
 
5강 알파와알파소팅
5강 알파와알파소팅5강 알파와알파소팅
5강 알파와알파소팅JP Jung
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리KyeongWon Koo
 
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
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018devCAT Studio, NEXON
 
Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개Jiho Choi
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019devCAT Studio, NEXON
 
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기Madumpa Park
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희changehee lee
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1MoonLightMS
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipelinechangehee lee
 
쉐도우맵을 압축하여 대규모씬에 라이팅을 적용해보자
쉐도우맵을 압축하여 대규모씬에 라이팅을 적용해보자쉐도우맵을 압축하여 대규모씬에 라이팅을 적용해보자
쉐도우맵을 압축하여 대규모씬에 라이팅을 적용해보자Seongdae Kim
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법YEONG-CHEON YOU
 
Devtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdayDevtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdaySangYun Yi
 

Tendances (20)

[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
 
Screen space reflection
Screen space reflectionScreen space reflection
Screen space reflection
 
Compute shader
Compute shaderCompute shader
Compute shader
 
매쉬 베이크 마스터리
매쉬 베이크 마스터리매쉬 베이크 마스터리
매쉬 베이크 마스터리
 
Bump Mapping
Bump MappingBump Mapping
Bump Mapping
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correction
 
감마가 어디감마
감마가 어디감마감마가 어디감마
감마가 어디감마
 
5강 알파와알파소팅
5강 알파와알파소팅5강 알파와알파소팅
5강 알파와알파소팅
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리
 
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
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
 
Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipeline
 
쉐도우맵을 압축하여 대규모씬에 라이팅을 적용해보자
쉐도우맵을 압축하여 대규모씬에 라이팅을 적용해보자쉐도우맵을 압축하여 대규모씬에 라이팅을 적용해보자
쉐도우맵을 압축하여 대규모씬에 라이팅을 적용해보자
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
 
Devtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdayDevtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stday
 

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. 밉맵 개념의 응용 ● 거리에 따른 갱신 여부 ○ 컬링된 오브젝트는 밉맵 갱신을 하고있지 않았다….