자체제작 3D 렌더러 제작기 Episode 9. 리팩토링

라코마코·2023년 12월 7일
3

렌더러제작

목록 보기
9/9


기존엔 OBJ파일만 돌리도록 상정해서 만들엇는데 욕심이 생겨 Fbx 파일까지 지원하도록 수정했다.

FBX 파일 파서도 직접만들까 했는데 솔직히 과하다는 생각이 들어서 ThreeJS의 FBX Loader의 힘을 빌렸다.

FBX 자체는 ThreeJS가 받아서 Object를 만들면

이제 그 정보를 바탕으로 내가 만드는 렌더러 규격에 맞게 데이터들을 변환해서 저장하는 작업이 이루어졌다.

전체 코드를 뒤집으면서 구조도 좀더 일반적인 구조로 변경했다.

Model -> Mesh 구조로 하나의 모델이 여러개의 메쉬를 들고있고 렌더링시 순차적으로 렌더링하는 구조다. 이전엔 Parts(Material)을 기준으로 만들었는데. 일반적인 방법은 아니여서 유지보수하기 정말 힘들다 판단하여 구조를 뒤집어버렸다.

정해진 목표

원래는 게임엔진이나 블렌더같은 소프트웨어를 webgl로 만들어볼까 했는데...

너무 크다

게임엔진은 모델을 화면에 띄운다고 해서 끝나는게 아니라 온갖 물리법칙 엔진을 다 이어 붙이고 동기화 시켜야하기 때문에... 시간이 많이 걸린다.

블렌더도 마찬가지다. 지금 그래픽스를 연습중인 나에겐 너무 큰 꿈이다.

현실적인 대안들을 만들어가면서 지금은 목표를 정했다.

이건 윈도우의 기본 3D 뷰어인데 이정도 스펙으로 만들어볼까 한다.

모델을 띄우고

퐁,블린 쉐이더를 입히고, 될 수 있다면 재질도 변경할 수 있고.

라이트에 따라 그림자도 변경하는 그 정도 말이다.

하나씩 천천히 나아가다보면 끝낼 수 있을 것이다.

https://github.com/lacomaco/laco3DRenderer

2개의 댓글

comment-user-thumbnail
2023년 12월 15일

와 너무 대단하시네요 블로그에 작성해주셔서 감사합니다 너무 신기해서 후루룩 다 읽었습니다👍👍👍

1개의 답글