Direct2D가 좋은 API 일까요?
글쓴이: MyAbby / 작성시간: 목, 2014/02/27 - 11:54오후
제가 그래픽 쪽 프로그램을 짤 때는 주로 폼이나(윈도우) 뷰(안드로이드)에 생성될 가상의 객체(GDI 등등)들을 만들고 Invalidate 하여 출력하는 식으로 만들었었습니다.
즉, GPU가 할 일을 CPU가 하도록 만들었죠. (안드로이드는 모르겠지만)
그래서 항상 제가 만든 그래픽 프로그램들은 객체 수가 적어도 CPU 사용이 20%를 기본으로 넘었습니다.
이 비효율을 줄일 방법이 없을까 해서 DirectX를 손대려 했는데, 너무 어려운겁니다! 디바이스니 랜더링이니 백터니...
그래서 Direct2D를 접하게 되었고, 확실히 코딩도 쉽고 리소스 점유도 낮아졌어요. 1080p 60fps 짜리 동영상을 뿌려도 cpu 점유가 5%를 안넘더군요.
제가 궁금한건, 정말 Direct2D가 좋은 API일까요? 아니면 PHP나 VB같이 접근하기만 쉽고 견고함이 없는 API일까요?
ms가 굳이 DX11부터 2D용 API를 따로 만들어 준 건 좋은 의도인 것 같은데, 이게 프렉탈로 확 변해버릴지 걱정입니다.
아니면 조금 시간을 들여서 OpenGL이나 DirectX 기반 엔진을 배워야 할까요?
굳지 답을 구하는 건 아닙니다. 다른 분들은 어떻게 생각하는지 알고싶어요.
x
Forums:
괜찮은 것 같은데요.
Web Browser 들이 Windows 에서는 Direct2D 기반으로 작업한 것은 이유가 있을 겁니다.
제가 기억하기로 Firefox 가 Windows XP 에서도 GPU 가속을 지원하다가 Direct2D 기반으로 바꾸면서 지원을 중단했죠.
큰 문제 없을 것 같습니다.
어차피 DirectX나 오픈GL에서 말씀하신 부분에 대해 꼭 사용할 필요가 없는 사람까지도 배워야 된다는것은 계속해서 문제가 되어왔습니다. 그래서 Direct2D도 생겨난 것이고, 사실 이게 유일한 해결책인 것도 아닙니다. 어쨌든 Direct2D가 어떤 이유로든 폐기된다 하더라도 애초의 그 쉬운 사용법에 대한 수요는 계속된다는 것. 언젠가 폐기되더라도 분명 그땐 또다른 게 나와있을테니 그걸 쓰시면 되는 것입니다. 폐기될 코드가 아까우면 중간 라이브러리를 하나 더 만들어서 그부분만 교체하는 형태로 기술 교체에 유연하게 대비할 수 있도록 만들어 두시면 됩니다. 이미 그렇게 해두셨을 확률이 높아 보이고요.
물론 OpenGL이나 Direct3D등을 배워두면 좋긴 하겠지만, 그쪽을 직접 해야 할 당위성이 생기지 않는 한에는 그 시간에 메인 로직에 집중하는 편이 더 나을 수도 있습니다. (물론 시간이 많으시면 예외입니다.)
--
댓글 달기