opengl은 이미지 불러와서 텍스처 렌더링 하는것 까지 해봤고, vulkan 시작한지 나흘만에 삼각형 띄우는데 성공했다!



https://vulkan-tutorial.com 여기 참고했고 이 사이트는 윈도우에서 GLFW? 인가 쓰는 예제인데 나는 wayland 네이티브로 짜야해서 한 줄 한 줄 직접 짰다.


물론 wayland 예제는 자료가 하나도 없어서 vkcube(https://github.com/krh/vkcube) 코드 받아서 wayland 관련 코드만 빼고 다 들어내고 조금씩 수정해가면서 내 코드랑 비슷하게 맞춰가면서 공부함.


예제는 C++를 조금 썼는데 나는 C로 완전 절차지향적으로 짜봤음.


일단 듣던대로 코드가 엄청 길다. 개인적으론 타입도 다 명시적이고 API가 상당히 일관성 있게 되어있어서 그래픽스 지식이 없는 입장에서 opengl보다 코드는 이해가 잘 가더라.


다만 코드가 길기 때문에 실수할 여지가 그만큼 많은게 난이도를 올리는데 일조하는듯. pNext 같은거 NULL로 초기화 안해줘서 에러뜬 경우가 특히 많았음.


C만 가지고 짜려니까 포인터 사용 잘못해서 메모리 할당 해놓고 엉뚱한데 참조해서 에러 뜬 경우도 있었고(여기서 이틀정도 헤맷음)


아직 예제 절반도 못따라간데다가 겨우 한 프레임 띄운 것 뿐이지만 4일동안 미친듯이 코딩해서 렌더링 된거 보니까 성취감이 장난아님.


opengl 할 줄 알면 쉽다고들 하는데 나는 본격적인 3D 렌더링은 해본적 없어서 그쪽은 잘 모르겠지만 찍먹해본 입장에서 vulkan의 악명높은 난이도는 사실 엄청 긴 초기화 코드랑 그거 때문에 여러 군데 실수할 부분이 생기는 점 때문이 아닌가 싶다.


덤으로 wayland에서 opengl을 쓸려면 wayland에서 제공하는 egl 인터페이스를 통해야 하는데 vulkan은 자체적으로 wayland를 지원한다는 점이 달랐음.


아무튼 난 너무 신나서 치킨 시키러 간다.