브라우저에서 3D가 돌아가는 게 신기해서 시작했는데
처음엔 그냥 가볍게 생각했다. 요즘 웹 기술이 하도 좋아져서 브라우저 안에서 뭐든 다 된다길래, 단순히 Three.js랑 WebGL2를 이용하면 나도 멋진 3D 장면 하나쯤은 금방 만들 수 있을 줄 알았다. 인하대 연구진이 개발했다는 실시간 유체 시뮬레이션 기사도 보고, 클로드 같은 AI가 코드를 다 짜준다는 말에 혹해서 시작한 게 화근이었다. 사실 나는 코딩 지식이 거의 바닥 수준인데, 요즘 세상엔 AI가 있으니 굳이 깊게 공부할 필요가 없다고 믿었던 거 같다. 그런데 막상 캔버스 하나 띄워놓고 셰이더를 만지기 시작하니, 이게 내 마음대로 되는 게 하나도 없더라.
셰이더라는 게 생각보다 훨씬 까다롭다
연기 같은 자연스러운 움직임을 구현하려고 Simplex Noise 모델을 적용해보려 했는데, 일단 기본 개념부터가 너무 어려웠다. GPU 가속을 활용한다는 건 이론적으로는 알겠는데, 막상 코드를 돌리면 프레임이 뚝뚝 끊기기 일쑤였다. 일반 노트북 환경에서도 안정적이라는 기사 문구는 아무래도 전문가들의 영역이었나 보다. 내 노트북은 조금만 연산을 복잡하게 걸어도 팬 돌아가는 소리가 비행기 이륙하듯 커진다. 이게 과연 최적화의 문제인지, 아니면 내가 뭔가 멍청한 실수를 반복하고 있는 건지 구분이 안 가는 상황이 매일 반복됐다. 비동기 처리 구조를 이해하려고 며칠을 붙들고 있었는데, 결국 다시 처음으로 돌아가는 기분이다.
무료 라이선스의 한계와 유료의 벽
RPG-Cobo 같은 툴도 찾아봤다. 코딩 없이 3D RPG를 만들 수 있다고 해서 혹했는데, 결국 WebGL 출력만 가능한 무료 버전은 제약이 너무 많았다. Windows 실행 파일로 뽑아내려면 인디 라이선스를 사야 한다는데, 그게 한 달에 몇만 원 단위로 들어가니까 선뜻 결제하기가 망설여졌다. 사실 게임 하나 제대로 완성할 수 있을지도 확신이 없는 상태에서 돈부터 쓰는 건 좀 아니지 싶어서 일단은 그냥 브라우저 상에서 돌아가는 흉내만 내고 있다. 광고 링크를 누를 때마다 튀어나오는 CEF 브라우저 화면을 보면서, 이런 기술들이 이미 우리 생활 속에 알게 모르게 깊숙이 들어와 있다는 사실이 새삼스럽게 느껴졌다.
AI한테 물어봐도 돌아오는 건 에러 메시지
클로드 프로 플랜까지 구독해서 닥치는 대로 질문을 던졌다. 3D 렌더링 엔진이나 WebGL 설정 관련해서 궁금한 게 있으면 바로바로 물어볼 수 있으니 참 편하긴 하다. 그런데 문제는, AI가 짜준 코드를 내가 이해하지 못한다는 점이다. 어디가 어떻게 꼬였는지 파악이 안 되니까 에러 메시지 하나 뜨면 그걸 또 고치느라 한 시간씩 잡아먹는다. 이게 개발인지, 아니면 AI와의 무의미한 술래잡기인지 가끔 회의감이 든다. 어제는 새벽 3시까지 붙잡고 있다가 결국 아무것도 해결 못 하고 노트북 덮었는데, 아침에 일어나서 다시 켜보니 뭐가 문제였는지도 기억이 잘 안 난다.
디지털 트윈까지 갈 수 있을까 싶은 불안함
처음 목표는 꽤 거창했다. 우리 동네 공원을 디지털 트윈으로 옮겨서 웹에서 굴려보겠다는 원대한 꿈을 꿨는데, 지금 상태로는 나무 한 그루 제대로 렌더링하기도 벅차다. 스파크 2.0 같은 엔진이 나오면 좀 나아지려나 싶지만, 결국 그걸 다루는 건 나 자신이니까 크게 달라질 게 없을 거 같기도 하고. 누군가에게는 쉬운 웹 기술이 나에게는 왜 이렇게 멀게만 느껴지는지 모르겠다. 그냥 3D 모델링 파일 하나 띄우고 회전시키는 것만으로도 만족해야 하는 건지, 아니면 더 붙들고 있어야 하는 건지 아직 잘 모르겠다. 오늘도 일단 웹 브라우저를 켜고 개발자 도구부터 열어보긴 하는데, 며칠째 제자리걸음이다.

simplex noise 모델을 적용하려니, GPU 성능 때문에 뚝뚝 끊기는 게 정말 답답하네요. 저도 노트북 팬 소리 때문에 멘탈이 흔들릴 때가 많아요.
Three.js랑 WebGL2 조합이 그렇게 쉽진 않다는 거 새삼 알게 됐네요. 셰이더는 정말 덤불 같아요.