목록그래픽스 (3)
거의 알고리즘 일기장
오늘은 잠깐 할 시간이 생겨서 실린더와 구 매시를 구현했다. 이미 강의를 통해 directx로 구현해봤던 것들인데, 다시 짜보려니까 머리가 안돌아가서 혼났다 ㅠ 암튼 했으니 굿~
세가지 조명 (directional, point, spot)을 구현하였다. 구현의 어려움보다는 memory layout을 어케 넘겨야 적절하게 넘어가는지 docs를 봐도 당최 뭔소린지 모르겠어서 한참 시간을 날렸다. 이 글을 보는 사람이 있다면, 그냥 webgpu 유틸리티 구현체들이 npm에 있는것 같은데 그거 쓰는게 정신건강에 이로워 보인다. 조명의 구현방식은 홍정모 선생님의 그래픽스 강의 2편에서 실습해본 조명 코드기반으로 그 코드를 이해하고 그 수식대로 옮겨보았다. 눈으로 보이는게 참 재밌긴 하다.
최근 그래픽스에 관심이 생겼다. (찾다보니 c++ 강의로 좀 유명하셨던 홍정모님의 그래픽스 강의를 1, 2편을 보게 되었다.) 수학이 조금 껴있기도 하고 퇴근후 듣다보니 많이 졸았지만 보이는것들을 코딩하는게 재밌어서 1, 2편까지는 가까스로 다보았다! 하지만, 그냥 넘어간 부분이 너무 많아 개념적으로 헷갈리는 부분이 많아서 처음부터 혼자의 힘으로 간단한 랜더러를 만들어보기로 했다. directx로 해볼까도 했지만, webgpu라는 feature가 브라우저 스펙으로 들어왔다길래 이걸로 해봤다. (아직 사용은 시기상조이긴 하다) webgpu를 이용해본 간단한 후기는 당연한 이야기지만 directx보다 훨씬 불편하고 자료도 적고 지원범위도 적고 그렇다. 예를 들면 fill mode가 따로 없는것으로 보여서 w..