kgc 2007 소프트웨어 렌더러 개발

23
김 김 김 김김김김김김김김 김김김김김 김김김김김

Upload: -

Post on 23-Jan-2017

66 views

Category:

Technology


1 download

TRANSCRIPT

김 성 완부산게임아카데미

동의대학교 게임공학과

소프트웨어 렌더러란 ? 소프트웨어 렌더러의 필요성 소프트웨어 렌더러의 교육적 가치 소프트웨어 렌더러 개발의 어려움 렌더링 파이프라인 구성 렌더러의 최적화 상용 소프트웨어 렌더러

Software Renderer ?

이제는 시대에 뒤떨어진 잊혀진 기술인가 ? 적어도 실무적으로는 이제 불필요한 기술이다 ? 여전히 가속카드 (GPU) 가 없는 환경이 있다 .

◦ 주로 모바일 환경 H/W 에 내장될 알고리즘으로 여전히 필요하다 .

3D Hardware (GPU Nvidia)

3D Graphics Card

“Software” 의 정의 3D 그래픽 카드의 GPU 에서 실행되는 Shader

Program 은 그럼 소프트웨어가 아닌가 ? CPU 만 이용해서 처리 S/W 의 정의 ?

◦ CPU 에서 실행되는 알고리즘

CPU (Intel Core2 Duo)

CPU (Intel Core2 Quad)

CPU (AMD 64 Athlon)

CPU (AMD 64 Athlon X2)

실사같은 3D 영상을 실시간으로 생성할 수 있는 고성능의 3D 가속 카드가 보편화된 요즘에는 모바일 기기처럼 특수한 환경이 아니라면 소프트웨어 렌더러가 필요한 경우가 거의 없다 .

하지만 몇가지 이유로 여전히 필요하다 .

• 실무적으로 사용하지 않는다고 해서 필요 없게 된 기술은 아니다 .

• 소프트웨어 렌더링 기술은 여전히 교육적 가치로서 그 존재 의미가 있다 .

• 3D 가속카드 환경하에서도 3D 렌더러의 최적화를 위해서는 렌더링 파이프라인의 구성이나 동작 원리를 잘 이해할 필요가 있다 .

• 그 이해를 위한 가장 좋은 방법이 직접 소프트웨어 렌더러를 구현해 보는 것이다 .

• 결국 셰이더 프로그래밍에도 큰 도움이 된다 .

렌더링의 전 과정을 잘 알고 있어야 한다 .◦ 사실 제대로 알기가 쉽지 않다 .

저수준 프로그래밍을 요구한다 .◦ 어셈블리 프로그래밍이 종종 필요하다 .

참고할 책이나 자료가 별로 많지 않다 .◦ 책은 대개 절판된 지 오래이다 .◦ 종종 제대로 문서화 되지 않은 세밀한 코딩이 필요하다 .

빠른 Perspective Correction Sub-Pixel Accuracy Sub-Texel Accuracy

렌더러 개발의 어려움

DirectX Pipeline

DirectX Pipeline

렌더링 파이프라인에 대한 충분한 이해가 필요하다 .◦ 알고리즘 수준의 최적화◦ http://www.cbloom.com/3d/techdocs/pipeline.txt

저수준 프로그래밍 지식도 필요하다 .◦ CPU, 메모리◦ 어셈블리 최적화◦ MMX, SSE, SSE2 (SIMD)

Pixomatic◦ DirectX 7 수준◦ Unreal Tournament 2004◦ http://www.radgametools.com/pixomain.htm

SwiftShader◦ DirectX 9 수준◦ Vertex Shader 1.1, Pixel Shader 1.4◦ Direct3D Interface◦ http://www.transgaming.com/products/

swiftshader

Michael Abrash Optimizing Pixomatic for x86

Processors◦ http://www.ddj.com/architect/184405765◦ http://www.ddj.com/184405807◦ http://www.ddj.com/184405848

Quake 엔진 개발 참여

SwiftShader Nicolas Capens Advanced Rasterization http://www.devmaster.net/codespotlight/

show.php?id=17

Chris Hecker Perspective Texture Mapping http://chrishecker.com/

Miscellaneous_Technical_Articles#Perspective_Texture_Mapping

g-Matrix 3d Neo http://www.g-matrix.pe.kr

Q & A 질문하세요 !!!