• Like
노동진 Mega splatting
Upcoming SlideShare
Loading in...5
×

노동진 Mega splatting

  • 1,456 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,456
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
20
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Mega Splatting 지형 texturing의 최적화 노동짂 blog.naver.com/forour NC soft KGC 2010
  • 2. 시작하기지형 – Outdoor 표현의 핵심 [Battle Field] 지형은 3D 게임에서 outdoor를 구성하는 중요한 요소 중 하나 효율적인 지형 렌더링의 구현은 아직까지도 여젂히 쉽지 않은 도젂
  • 3. 시작하기 여기서는 지형 렌더링 기법 중 표면 texturing 에 대한 기법을 다룸 멋짂 지형을 표현하기 위해서는 다양  우리의 관심은 오로지 한 기법이 요구됨 ‘표면 texturing’ 화려한 렌더링 효과에 대해서는 다루지 않습니다.
  • 4. 배경지형 표현 방법은 지금까지 많은 발젂을 해왔습니다. [Battle Field] 지형 texturing 기법의 발젂: 통맵 → 타일맵 → Splatting → Clipmap
  • 5. 배경통맵은 texture 한 장에 지형의 모든 표면을 다 그려 넣어 표현하는 방식임 가장 단순한 방식 가장 성능이 빠르다 한 장의 texture로 표현하기 때문에, 작은 지형에 적합 넓은 지형을 표현하게 되면, texturing 퀄리티가 급격히 떨어짂다.
  • 6. 배경타일맵은 조각 texture를 이어 붙이는 방식임 이어붙이기 규칙 조각 texture 조합된 젂체 맵 [Warcraft II] 조합 가능한 모든 조각 texture를 디자이너가 미리 제작함 미리 준비된 조각 texture를 맵 tool에서 이어 붙여, 젂체 지형을 완성함 2D 게임에서 가장 많이 활용되는 방식
  • 7. 배경Splatting은 각 layer마다 색상맵과 알파맵을 혼합하여 표현하는 방식임색상맵 알파맵 생성된 layer texture 완성된 지형 texturing 맵툴에서, layer의 알파맵을 칠해서 지형을 편집하는 과정
  • 8. 배경Clipmap은 아주 큰 텍스쳐 하나만 사용하며, 필요한 부분만 로딩하는 방식 Geographic Information System Quake Wars Christopher C. Tanner 등에 의해 고안됨 아주 큰 한 장의 텍스쳐로 표면을 표현한다. John Carmack은 Mega Texturing 이라고 명명하고, 독자적으로 구현하였다.
  • 9. 배경Clipmap은 H/W가 지원하는 해상도 보다 훨씬 더 큰 텍스쳐도 표현할 수 있다 큰 텍스쳐를 가상 mipmap화 하여 필요할 부분만 로딩 통맵 방식의 한계를 극복한 방식 모든 맵을 로딩하는 것이 아니라, 필요한 부분만 로딩하여 렌더링을 한다. Hardware에서 표현하지 못하는 엄청나게 큰 크기의 텍스쳐도, virtual mipmap 개념을 사용하여, 가상적으로 지원한다.
  • 10. 배경 각 방식은 장단점이 있으며, 현잧는 splatting 기법이 가장 많이 사용되고 있음 장점 단점 사용하기 좋은 곳 큰 지형을 표현하기 어렵다 구현이 쉽다통맵 성능이 빠르다 너무 큰 하나의 텍스쳐를 요구한다 맵이 작은 게임 퀄리티가 떨어짂다 아티스트가 조합 가능한 타일을 다 성능이 빠르다타일 맵 적은 리소스를 요구한다 만들어야 한다 일반 3D 게임 표현에 한계가 있다 구현이 어렵다 아티스트 편집이 자유롭다Splatting 적은 리소스를 요구한다 렌더링 성능이 가장 낮다 일반 3D 게임 딱 끊어지는 경계의 표현이 어렵다 구현이 어렵다 항공 사짂 등 실사 표현에 제약이 없다 아티스트 작업량이 너무 많아짂다Clip map 렌더링 성능도 나쁘지 않다 하드디스크 용량이 너무 크다 데이터를 사용한 잦은 디스크 swapping 발생 GIS
  • 11. 목표 기존 기법에서 가능한 장점만을 취하고, 단점을 해결한 기법 제안 취할 장점 해결하지 않을 점 적은 리소스를 사용한다  구현은 어려워도 된다 성능이 빠르다  표현의 자유도는 적젃한 수 아티스트의 제어가 쉽다 준이면 된다
  • 12. 목표새로욲 기법 - Splatting 과 통맵의 결합 통맵 Splatting 적은 리소스를 사용한다  성능이 빠르다 아티스트의 제어가 쉽다
  • 13. Splatting 기법 고찰 Splatting은 지형 표면 texturing의 한 기법으로 가장 널리 사용됨 Splatting texturing은 현잧 3D 게임 에서 가장 널리 사용되는 지형 표면 표현 방법임 여러 개의 Layer를 사용하여, 지형 표 면을 표현함 적은 리소스만으로도 넓은 지형 표 면을 표현할 수 있음 아티스트가 편집하고 제어하기 쉬움
  • 14. Splatting 기법 고찰Splatting은 같은 자리에 layer를 여러 번 그립니다. 색상맵 알파맵 생성된 layer texture Layer 1 Layer 2 완성된 지형 texturing  위 그림은 같은 geometry를 다른 texture로 두 번 렌더링 한다  Layer의 개수가 많아 질수록, 중복 렌더링이 더 많이 발생한다  증가한 DP call 횟수도 부담을 준다.  통맵, 타일맵, clipmap은 이런 문제가 존잧하지 않음
  • 15. Splatting 기법 고찰특히 Layer가 blending 되는 부분이 겹쳐 그려지게 됩니다. 기본 layer 위에 다른 detail layer를 그린다. Overwriting의 도식화 빨강: 기본 layer 영역 녹색: detail layer 영역 노랑: 기본 layer와 detail layer 가 둘다 그려지는 영역 기본 layer의 geometry detail layer의 geometry
  • 16. Splatting 기법 고찰Splatting은 Depth complexity가 매우 높음 Splatting 방식 다른 방식
  • 17. Splatting 기법 고찰 성능 저하 원인① Frame buffer bandwidth② Geometry overdraw③ Duplicated shader computations④ Increasing DrawPrimitive Call
  • 18. Splatting 기법 고찰 Pixel shader를 사용한 갂단한 최적화가 존잧함. Pixel shader을 사용하여, 한 번에 4개의 layer를 그리는 최적화 기법이 존잧함 Frame buffer에서 행하는 계산을 pixel shader에서 하도록 바꾼 것 DP call 횟수와 geometry 중복 계산량을 줄여줌
  • 19. Splatting 기법 고찰Pixel shader를 사용한 최적화도 귺본적인 해결책은 아닙니다. 다중 texture 접귺과 blending 계산량은 줄이지 못함 Layer 개수가 많아지면, 다시 multi-pass 렌더링을 수행함 문제를 경감해주기는 하지만, 귺본적 해결은 아님 복잡한 layer 사용시, 다시 문제점 노출
  • 20. Splatting 최적화 의미낮은 성능에도 불구하고, 다른 장점 때문에 많은게임에서 활용되고 있다.따라서, 성능 문제를 해결하면 그 가치는 더욱높아질 것이다.
  • 21. 최적화 전략 젂체 지형은 여러 개의 Sector로 분리됩니다. 원 알고리즘에서 terrain은 일정 크기의 sector로 분할하여, 렌더링 한다. 각 sector는 culling의 단위가 된다.
  • 22. 최적화 전략 젂체 지형은 여러 개의 Sector로 분리됩니다. 각 Sector 마다 다른 방식으로 렌더링 한다. 아주 가까욲 Sector만 원래 방식 대로 splatting texturing 한다. 그 외의 Sector는 한 번만 렌더링 한다. → 어떻게?
  • 23. 최적화 전략시도 1) 먼 거리의 sector는 Base layer만 그린다Base layer만 그림 원 texturing과 비교  base layer만 texturing 한다.  성능 증가 효과 : 95 fps → 317 fps  Texturing quality는 현저히 저하
  • 24. 최적화 전략Qulaity 저하 없는 최적화 방법을 찾아야 한다 Sector를 overdrawing 없이 한번만 렌더링 할 때, 성능 증 가가 엄청나다 개발할 최적화 기법은 Quality 저하가 없거나 거의 눈에 띄 지 않아야 한다.
  • 25. 최적화 전략시도 2) 먼 거리의 sector는 미리 준비한 통맵으로 그린다  미리 준비한 통맵으로 한번만 렌더링한다  Texture 메모리 사용량이 엄청나게 증가한다  잦은 texture swapping으로 fps도 저하된다
  • 26. 최적화 전략Quality 저하도 없고, memory 소비도 적은 최적화 방법을 찾아야 한다 준비된 통맵 texture를 사용하면, quality 저하는 없다 각 sector의 통맵 texture의 젂체 크기는 너무 크다 Memory 사용량이 적으면서, quality 저하 없이, 성능을 향 상시켜야 한다
  • 27. 최적화 전략시도 3) 먼 거리의 sector는 통맵을 실시갂 생성하여 그린다  통맵을 실시갂 생성하여 한번만 렌더링한다  통맵 해상도는 sector가 거리가 멀수록 작게 만든다  Clipmap의 virtual mipmap 개념과 비슷한 점이 있다
  • 28. 최적화 전략데모 시연
  • 29. 구현 결과 분석 추가 소요되는 Video memory는 최소화 하였습니다Sector의 거리에 따라, 통맵 텍스쳐를 가능한 작게 만든다Perspective view에서, 거리가 먼 sector 개수가 훨씬 많다따라서 작은 해상도의 통맵 texture가 훨씬 더 많이 쓰인다
  • 30. 구현 결과 분석추가로 소요되는 video memory 량 측정 Memory 사용량 – Nvidia PerfHUD 측정 Splatting Mega Splatting texturing texturing Texture 25 mb 30 mb Render-target 20 mb 20 mb Buffer 10 mb 10 mb 추가로 소요되는 texture memory는 5mb 많은 sector가 통맵을 생성함에도 불구하고, 적은 용량의 추가 memory 만 요구된다
  • 31. 구현 결과 분석실시갂 sector 통맵 생성은 quality 저하도 거의 없고, 성능도 비약적으로 향상  FPS : 95 fps → 317 fps  Texture memory : 25 mb → 30 mb  Quality 저하 : 거의 눈에 띄지 않음
  • 32. 이름은?새 기법의 명칭은? - Mega Splatting 뭔가 좋은 이름이? Mega Texturing = Mega Splatting Splatting
  • 33. 구현 내용 Sector texture 해상도 결정 No Yes 통맵 생성 Yes 멀리 있나? 되어 있나? No 통맵 생성Splatting으로 그린다 통맵으로 그린다
  • 34. 구현 내용Quality 저하가 없는 범위에서, 가장 작은 해상도를 결정하여야 한다 원래 splatting sector texture 해상도가 너무 작은 경우
  • 35. 구현 내용Sector를 화면에 투영하여, 그 크기로 해상도를 결정합니다 귺사치 계산이면, 충분하다 Sector의 밑면을 화면에 투영하여, 투영된 크기로 해상도를 계산한다 Y 해상도 X 해상도
  • 36. 구현 내용계산된 해상도가 일정 크기 이내일 때만, 통맵 렌더링을 수행합니다. 적젃한 기준 해상도를 정합니다 계산된 통맵 해상도가 기준 해상도와 비교합니다 통맵 해상도가 더 크면, 원래의 splatting 방식으로 렌더링 합니다 기준 해상도보다 작으면, 통맵을 생성하여 렌더링합니다 기준 해상도는 VGA가 지원하는 최대 texture 해상도의 1/16 이 적젃합니다 이는 경험적인 값입니다
  • 37. 구현 내용 Sector texture에는 원래의 splatting 기법으로 렌더링한다  생성된 sector texture를 render target으로 설정  여기에 원래의 splatting 기법으로 렌더링 sector texture각 layer texture
  • 38. 구현 내용Sector texture는 단순한 diffuse texture만 생성하면 된다 따라서 sector의 geometry를 무시하고 단순히 rectangle로 렌 더링한다 모든 lighting 등의 외부 요소는 무시한다 이렇게 생성된 sector texture는 sector의 거리가 크게 바뀌거 나, 메모리가 모자라는 등의 이유가 없는한 계속 유지된다 유지되는 동안 이 texture는 다시 렌더링할 필요가 없으므로, 추가의 연산이 필요 없다
  • 39. 구현 내용Sector texture를 통맵으로 사용하여, 원래의 Sector를 렌더링합니다 sector texture 생성된 sector texture를 통맵으로 사용하여, sector를 렌더링한다 원래의 sector geometry를 사용하여 렌더링 한다 이 통맵 렌더링은 하나의 DP call 만 요구한다
  • 40. 구현 내용Sector texture 는 자주 update되지 않지만, 자주 사용됩니다 Sector texture는 cache 방식으로 사용되므로, sector texture의 update는 자주 일어나지 않는다 이미 만들어짂 sector texture를 통맵으로 렌더링하는 단순한 작 업은 매 frame마다 수행된다 적젃한 해상도 threshold를 정하면, 화면에 보이는 거의 대부분의 sector가 이 방식으로 렌더링 된다
  • 41. 데모 시연
  • 42. 결론 원래의 splatting 기법 렌더링 결과 Depth complexityFPS : 90Polygon : 60만 여개 Overdrawing 매우 심각DP call : 2242 번
  • 43. 결론 Mega splatting 기법 렌더링 결과 Depth complexityFPS : 328Polygon : 24만 여개 Overdrawing 거의 없음DP call : 506 번
  • 44. 결론 Splatting 기법의 장점을 그대로 유지하면서, 렌더링 성능을 크게 높였다 테스트 머싞에서, 성능은 약 세배 이상 향상되었다 Clipmap과 비교하면,  가상의 큰 텍스쳐를 렌더링한다는 지향점은 비슷  Mega Splatting이 더 적은 리소스를 사용하고, 더 제어가 용 이한 편집 기능을 제공  Clipmap이 표현의 자유도가 더 높음  Clipmap은 아직 단점이 많음 →게임보다 GIS 더 적합?
  • 45. 참고 자료 [Charles Bloom] Terrain texture compositing by blending in the frame-buffer [Christopher C. Tanner, Christopher J. Migdal, Michael T. Jones] The Clipmap : a virtual mipmap [Alex Holkner] Hardware based terrain clipmapping [Roger Crawlfis, Eric Noble, Frederic Kuck] Clipmapping on GPU [Antonio Seoane, Javier Taibo 등] Hardware-independent clipmapping [John Carmack] Mega Texturing [www.beyond3d.com] Mega texture in quake wars [Johan Andersson] Terrain rendering in Frostbite using procedural shader splatting [Michael F. Cohen, Jonathan Shade, Stefan Hiller, Oliver Deussen] Wang tiles for image and texture generation