자체 제작 3D 렌더러 제작기 episode 8. 중간점검

라코마코·2023년 11월 15일
0

렌더러제작

목록 보기
8/9

WebGL을 사용하여 직접 OBJ 파일을 화면에 띄우는 렌더러를 만들었다.

OBJ 파일을 파싱하고, 쉐이더 코드도 직접 작성하고, 카메라도 직접 띄우고 모든것을 아래부터 위로 한땀한땀 만들었다.

만드면서 느끼는점은...

제품을 만들때는 Three.JS 쓰시라 😂😊😂

굉장히 고된작업이다. 생각해야할것도 많고 기능이 추가되고 스케일업 되면 손 대야하는곳이 많다.

가장 고도화된 소프트웨어중 하나가 그래픽스 툴이니까 당연한거다.

또한 CPU - GPU 간 데이터 이동, 포맷에 맞춰서 데이터 구조를 짜줘야 하는등 집중하고 작업해야한다.

디버그도 힘들다. windows는 shader 디버거가 있던데 브라우저는 없다. shader에서 오류가 발생하면 이제부터 장님 코끼리 코 만지듯 한줄 한줄 더듬어 가면서 잡아야 한다.

하지만 공부를 할때는 직접 만들어 보는것도 괜찮다고 생각한다.

이 프로젝트를 진행하면서 CPU - GPU 프로그래밍에 대해서 어느정도 입문한 것 같기도 하고 무엇보다 렌더러가 어떻게 동작하는지 어떤 구조를 왜 가질 수 밖에 없었는지 지식을 얻어갈 수 있어서 값진 경험이였다.

OBJ 파일을 띄우는 코드를 만드는데 들어간 총 코드 수는 623줄이 사용되었고 2주 정도 시간을 투자한것 같다.

토이프로젝트로 하기엔 적합한 분량이기에 꼭 한번 만들어 보시길... 재밌다.

최근 이 프로젝트에 너무 많은 시간을 쏟아서 잠깐 쉬어갈려고 한다.

다음 글부터는 Three.JS를 사용한 프로젝트를 올리거나 Canvas로 Creative Coding 하는 글들을 올려볼까 한다.

이 3D Renderer는 시간을 길게 잡으면서 점차 기능을 넓혀갈것이다.

source code: https://github.com/lacomaco/laco3DRenderer

0개의 댓글