메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

편집자 Choice

당신의 프로그래밍에 ‘장수와 번영을(live long and prosper)’

한빛미디어

|

2017-11-01

|

by 정지연

11,015

처음 만나는 Vulkan

차세대 그래픽스 API 표준 Vulkan으로 고성능, 고효율 3D 그래픽스 만들기

한빛미디어

미국의 SF 시리즈인 <스타트렉>을 보면 벌칸(Vulcan)이라는 외계종족이 등장합니다. 배우 레너드 니모이가 맡은 ‘스팍’의 종족인데, 뽀족한 귀가 특징이며 엄지를 혼자 두고 새끼와 약손가락, 가운데와 집게손가락을 붙이고 그 사이를 벌려 하는 벌컨 인사로 유명합니다.

 

hiro-vulcan-salute1.jpg

 

이 종족 이름과 유사한(그러나 무관한) Vulkan(발음도 ‘벌칸’으로 유사함)은 그래픽스 API 표준입니다. OpenGL API의 차세대 표준이라고 하는데, 그보다는 시장 요구에 맞추어 완전히 새로운 접근 방식으로 기초부터 다시 설계한 차세대 그래픽스 및 컴퓨팅 API 표준으로 보는 것이 맞다고 합니다(편집자의 주장이 아닌 저자의 글에서 인용했음을 밝힘).

 

그래픽스 API로는 OpenGL이 워낙 유명하고 Windows 제품에서 사용할 수 있는 DirectX와 Apple의 Metal 등이 있어서 굳이 또 새로운 API가 필요한가 하는 반응도 있었습니다. 하지만 하드웨어 장치들이 눈부신 속도로 발전하고 있고 크로스 플랫폼이 대세가 되면서 고성능 그래픽스 및 컴퓨팅 응용 프로그램을 만들고 다양한 플랫폼에서 사용할 수 있는 API에 대한 시장 요구가 거세지면서 개방형 표준을 지향하는 기관들이 모여 조직된 표준화 컨소시엄인 크로노스 그룹(Khronos Group)에서 최신 그래픽스 프로세서를 최대한 활용할 수 있는 Vulkan을 2016년에 발표하였습니다.

 

연장선에 있는 OpenGL과 비교했을 때 개선되거나 추가된 Vulkan의 기능은 다음과 같습니다.

  • 드라이버 부하 및 CPU 사용량 감소(그래픽스 하드웨어 친화적 설 즉, 응용 프로그래머가 GPU를 최대한 고성능으로 렌더링할 수 있도록 GPU의 컴퓨팅 리소스를 직접 제어할 수 있다.)
  • 멀티스레드 확장성(멀티 스레딩 기능을 완전히 활용할 수 있도록 특수하게 설계되었다.)
  • 명시적 API(OpenGL은 암묵적 API에 리소스 관리는 드라이버가 담당하는 반면, Vulkan은 명시적 API이며 드라이버는 응용 프로그램이 책임진다.)
  • 단일 API(OpenGL은 데스크톱 기반 API(OpenGL)와 임베디드 용 API(OpenGL ES)의 별도 버전이 있지만, Vulkan은 모든 플랫폼에 하나의 API로 대응하고 특히 모바일 플랫폼을 우선으로 고려한다.)
  • 미리 컴파일된 중간 표현 셰이딩 언어(셰이더를 GLSL(OpenGL Shading Language) 소스 코드로 응용 프로그램에 넣어주는 OpenGL과 달리 셰이더 코드를 컴파일해 표준 중간 표현 언어(SPIR-V)로 만들어 실행 프로그램에 넣어 준다.)

 

이밖에도 렌더링하는 동안 지연 발생이 적고, GPU에 직접 액세스해 제어할 수 있으며, 다양한 GPU 하드웨어를 지원하는 보다 향상된 여러 기능 등이 있는데, 더 많은 내용은 책에 나와 있으니 책을 (구매하시게 된다면) 참고해 주세요.

이렇듯 기능만 봐서는 엄청 좋을 것 같지만, 안타깝게도 Vulkan은 배우기도 다루기도 어렵습니다(역자님도 이 부분을 안타까워하며 컨퍼런스에서 언급하셨죠;;). 기본적으로 일정 수준 이상의 그래픽스와 프로그래밍 관련 지식이 있어야 하며 OpenGL도 다뤄본 적이 있어야 이해하기가 좀 더 쉽습니다. 리소스에 대한 제어권이 응용 프로그램으로 넘어오다 보니 개발자가 관여할 부분이 훨씬 많습니다(노가다가 많을 수 있다는 의미도 되겠죠!? 하핫!). 또한, 이 책 한 권만 본다고 해서 Vulkan을 완벽히 이해할 수도 간단한 프로그램을 짜기도 어렵습니다. OpenGL 책은 3장쯤에서 간단한 프로그램을 짤 수 있겠지만, 『처음 만나는 Vulkan』 11장까지 읽고 나면 다음 이미지 정도를 출력할 수 있습니다(굉장히 단순해 보이지만 그 안에는 무수한 코드가…)

1.png

 

 

편집자가 책을 디스(?)하는 것 같지만, 독자분들도 이미 Vulkan을 어느 정도 알고 계실 거라 생각해서 정직하게(?) 밝힙니다. 책 소개에도 있지만 『처음 만나는 Vulkan』에는 Vulkan의 기초를 학습하기 위한 모든 것이 담겨 있습니다(편집자가 저자를 믿어줘야죠!). Vulkan의 이론과 개념, API 표준을 배우고, 실습 예제를 통해 Vulkan이 작동하는 것을 볼 수 있으며 특히 예제는 독자가 Vulkan을 차근차근 배울 수 있게 장 순서대로 따라 하도록 구성되어 있습니다. 그밖에 자세한 내용은 역시나 책을 참고해 주시면 됩니다. 이 책이 독자분들께 도움이 될 수 있는 책이 되기를 편집자는 늘 바랍니다. 

 

마지막으로, 당신의 프로그래밍에 ‘장수와 번영을(live long and prosper)’

 

2.png

 

댓글 입력
닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실