지난 글에서 텍스쳐를 불러와 화면에 표시했었는데,
이번에는 3D 모델을 불러와 화면에 표시해보려 함
오늘 쓸 3D 모델은, 아래 벌컨 튜토리얼에서 사용하는 CC라이센스 바이킹의 방 모델을 사용하기로 함ㅇㅇ
https://vulkan-tutorial.com/Loading_models
Loading models - Vulkan Tutorial
vulkan-tutorial.com
벌컨 튜토리얼(cpp)과 다르게 우리는 Rust를 쓰기 때문에,
Rust용 obj파일 로드 크레이트인 tobj를 사용할 것임
https://docs.rs/tobj/latest/tobj/
tobj - Rust
docs.rs
기존에 버텍스 관련 기능들을 다 만들어둔 덕에, 파싱된 결과물을 그냥 이어 붙히기만 하면 되서 편했음ㅇㅇ
그리고 실행해보면,
형태는 잘 나오는데, 텍스쳐가 입혀지지 않음.
쉐이더와, 메인 패스에 텍스쳐 관련 샘플러를 작성하고 입히면, 아래처럼 잘 나오게 됨
웹에서는 다음 경로에서 확인 가능함
- WGPU: https://erenengine.github.io/eren/eren_render_shared/examples/test_model.html
- WebGL: https://erenengine.github.io/erenjs/eren-webgl-render-shared/examples/test-model/index.html
관련 코드들
- vulkan 구현: https://github.com/erenengine/eren/tree/main/eren_vulkan_render_shared/examples/test_model
- wgpu 구현: https://github.com/erenengine/eren/tree/main/eren_render_shared/examples/test_model
- webgpu 구현: https://github.com/erenengine/erenjs/tree/main/eren-webgpu-render-shared/examples/test-model
- webgl 구현: https://github.com/erenengine/erenjs/tree/main/eren-webgl-render-shared/examples/test-model
다음 글에서는 3D 애니메이션에 대해 다뤄볼까 함... 혹시 다뤄줬으면 하는 내용 있음?
있으면 댓글좀...
그나저나 엄청 덥다;; 모두들 건강 조심해!!
엔진 개발자를 하다 온거임? 뭐이렇게 빠르노
족고수
걍 고수인데;;;
이제 3D 오브젝트 10만 개 띄워주는 건가? ㄷㄷ
ㅋㅋㅋ 함 해보겠음
애니메이션 노티파이기능 어떻게 만들지 잘 모르겠는데 그거 한번 구현 가능하십니까??