· 엔진 개발일지 #8 - 디바이스(GPU) 다루기
· 엔진 개발일지 #9 - 스왑체인, 렌더패스, 파이프라인, 쉐이더, 버퍼들
· 엔진 개발일지 #10 - 쉐이더와 데이터 주고받기
· 엔진 개발일지 #11 - 컴퓨트 쉐이더
· 엔진 개발일지 #12 - 뎁스 버퍼
지난 시간에 뎁스 버퍼까지 하여, 렌더링과 관련된 기초적인 기능들을 모두 구현해보았음
오늘은 지금까지 익힌 것들을 바탕으로 카메라와 그림자(빛)을 한번 구현해볼 생각임
일단, 정사각형 바닥과 정육면체 버텍스를 다음과 같이 만듦
https://gist.github.com/erenengine/500f1b541300d2258ba42dded748cc08

지면과 정육면체 버텍스. GitHub Gist: share code, notes, and snippets.
gist.github.com
그리고, 다음과 같이 빛과 카메라 행렬을 계산해서 구현함
빛
카메라
이제 렌더 패스들(쉐이더 프리패스, 메인 패스)을 만들고 돌리면...
다음과 같이 정육면체의 그림자가 지면에 표시되는 장면을 구현할 수 있음
웹에서는 다음 경로에서 확인 가능함ㅇㅇ
- WGPU: https://erenengine.github.io/eren/eren_render_shared/examples/test_shadow.html
- WebGL: https://erenengine.github.io/erenjs/eren-webgl-render-shared/examples/test-shadow/index.html
관련 코드들
- vulkan 구현: https://github.com/erenengine/eren/tree/main/eren_vulkan_render_shared/examples/test_shadow
- wgpu 구현: https://github.com/erenengine/eren/tree/main/eren_render_shared/examples/test_shadow
- webgpu 구현: https://github.com/erenengine/erenjs/tree/main/eren-webgpu-render-shared/examples/test-shadow
- webgl 구현: https://github.com/erenengine/erenjs/tree/main/eren-webgl-render-shared/examples/test-shadow
결과물은 별거 아닌데, 첨부터 구현할려니 쉽지많은 않네...ㅋㅋㅋ 힘들당...
그럼 다들 오늘도 홧팅...!!
댓글 3