· 엔진 개발일지 #8 - 디바이스(GPU) 다루기
· 엔진 개발일지 #9 - 스왑체인, 렌더패스, 파이프라인, 쉐이더, 버퍼들
· 엔진 개발일지 #10 - 쉐이더와 데이터 주고받기
· 엔진 개발일지 #11 - 컴퓨트 쉐이더
오늘은 뎁스 버퍼에 대해서 다뤄볼생각
뎁스 버퍼는 3d 그래픽에서 물체의 화면상 깊이를 저장하는데 사용하는 버퍼임ㅇㅇ
요게 있어야 앞에 나올 녀석이 앞에 나오고, 뒤에 나올 녀석은 뒤로감ㅋㅋ
자, 예시로 지난번에 그려본 사각형을 2중으로 한번 그려보겠음
내가 원하는건 위에놈이 실제로 더 위에 표시되는건데, 결과물을 보면 아랫놈한테 덮혀지는 것을 알 수 있음ㅜㅜ
이건 깊이 테스트를 전혀 하지 않고 그냥 드로잉을 해버려서 그런거임
자 이제 깊이 테스트 관련 코드를 작성하고 돌려보자
위에 놈이 아랫놈보다 위에서 잘 돌아간다!!
웹에서 보기
https://erenengine.github.io/eren/eren_render_shared/examples/test_depth_buffer.html
WASM Test Depth Buffer
erenengine.github.io
이제 뎁스 버퍼까지 다뤘으니 필수적인건 거의 다 다룬듯ㅋㅋ
관련 코드들
- vulkan 구현: https://github.com/erenengine/eren/tree/main/eren_vulkan_render_shared/examples/test_depth_buffer
- wgpu 구현: https://github.com/erenengine/eren/tree/main/eren_render_shared/examples/test_depth_buffer
- webgpu 구현: https://github.com/erenengine/erenjs/tree/main/eren-webgpu-render-shared/examples/test-depth-buffer
- webgl 구현: https://github.com/erenengine/erenjs/tree/main/eren-webgl-render-shared/examples/test-depth-buffer
그럼 담에 바
굳굳굳굳 근데 확실히 에디터 기반 게임 프로그래밍보다 자체 엔진 사용으로 가지는 이점이 엄청나긴한듯 코드 변경 이력이 곧 게임 변경으로 곧바로 이어진다는게 굉장한거같음. 디버깅도 직관적이고 자체엔진 지지자(블로우 같은ㅋ)들은 유니티같은건 C++로 만들어졌으면서 C#을 스크립팅 언어로 사용하는것 등 엔진 내부구조의 불투명함과 소스코드 이원화를 많이 문제삼더라
오.. 긍정적으로 생각하는 사람이 드디어 나타났다!! 나도 빡빡이 아저씨 말에 동의함ㅋㅋ
목표가 뭔지 물어봐도 될까? 자체엔진 만드는사람이 흔치않아서 뭘 위해 달리는지 궁금함 술술 진도 나가는거 보니 꽤 많이 만들어본거같은데 - dc App
결국 내 게임 만드는게 목표인거같아 내 손으로 처음부터 빚은걸 만드는거에 대한 로망이 있는거같음.. 겸사겸사 필요한 사람들에게 공유도하고.. 별로 큰 뜻이 있는건 아니고 그냥 이런걸 좋아하는거 같애
역시 에렌 예거 - dc App
뭐라하는 놈들 개많았는데 쇼앤프루브 하는구만