다렉만 공부한 사람은 나중에 면접에서 꼬리 질문 당하면 100% 두 세번 정도는 잘 대답하다가 나중에는 얼버무릴 수 밖에 없을 것 같음.

그래픽스 엔진에서 중요한 이론들을 너무 많이 싸잡아 인터페이스 화 시켜버려서 그래픽스 엔진을 제대로 공부할 수 있는 엔진은 아닌 것 같음


싱크로나이징 기술에서 세마포어하고 이벤트 Instance에 대한 설명이 전무하다는 것이 놀라웠고


초기화 절차가 10개도 안된다는 사실이 너무 놀라웠고


Instance, Physical Device, Logical Device, QueueFamily 등 하나하나 세부적으로 명시 해 줘야 하고 생성 시켜줘야 하고 서포트 되는지 확인해주고 해야 하는 객체들을 D3D12Device 객체 하나로 싸잡아 묶어버려서 코드 500줄 정도를 덜 쳐도 된다는 사실이 놀라웠고


CreateCommittedResource() 하나면 Descriptor set layout, Descriptor set, Render pass, FrameBuffer 전부 관리해주기 때문에 전공서에서 디스크립터 셋, 레이아웃 렌더패스, 프레임 버퍼에 관한 글이 단 한 글자도 설명이 되어있지 않았다는 것이 놀라웠고


vulkan 할 당시에는 staging 하나 할당 해제 놓쳐서 밤 새도록 어떤 새끼가 할당 해제가 안 되었는지 맨날 찾았었는데 DirectX는 ComPtr 덕분에 할당 해제 안해줘도 gc로 관리 받는 다는 사실이 놀라웠고


물리 디바이스의 메모리 영역이 리소스에서 요구하는 포멧에 상응하는지 확인하려면 벌컨에서는 물리 디바이스 프로퍼티, 메모리 프로퍼티, 메모리 타입 프로퍼티 등등 맨날 파라미터 찾으러 다니고 조합하고 비교하고 그랬었는데 다렉은 디바이스 객체에서 Check_Support() 함수 호출하면 바로 서포트 여부 파악 가능하다는 점이 놀라웠고


큐의 다중처리 자체를 엔진 내에서 다루어 주기 때문에 리소스의 레이아웃, 포멧, 접근 메모리 포멧, 접근 스테이지 포멧, 레이아웃 베리어 등과 같이 싱크를 집적 맞추어주지 않아도 알아서 척척 멀티 큐 간의 싱크로나이즈를 관리해 주는 사실이 놀라웠다.


다렉이 신경 쓸게 적어서 좋긴 한데 계속 해서 사용하다 보면 면접에서 불리해 질듯 한 언어인듯