좆됐습니다
블록기능도 대충 구현했겠다
10x1000x10규모로 블록을 배치해보려했습니다
생성이라고는 instantiate밖에 모르기때문에 3중 for문으로 구현해봤는데
프레임 8에
배치가 21만이 나옵니다
배치는 이름만 들어보고 정확히 뭐하는애인지는 모르지만
21만이 나오면 좆됐다는 건 본능적으로 알 수 있었습니다
제미니를 갈궈 최적화 기법을 요구했더니
gpu 인스턴싱을 가르쳐주더군요
적용방법도 srp배칭을 끄고 저걸 키면되는 간단한 방법입니다
(딸깍)
이제 해결됐나?
배칭은 수십만개가 줄었지만 여전히 프레임은 바닥을 기고있습니다...
제니미를 다시 갈궜더니
compute shader니 greedy meshing이니
알아듣지도 못할 소리를 해댑니다
.
.
.
.
.
.
.
.
.
정신이 나가기 직전이지만
나름대로 발악을 해 본 결과
직접메시를 그려야한다는 결론이 나왔습니다
따라서 지금까지 진행했던 프로젝트는 대부분 무용지물이 될 것입니다
또한 직접 메시를 다루기 위해 그래픽스에 대한 기초적인 공부도 해야할 것 같습니다
허술한 토이프로젝트도 완성해본 경험이 없는 ㅈ밥인 저에게는 너무 무서운 얘기입니다
며칠만에 완성할 극소규모 프로젝트였는데 이렇게 될 줄은 상상도 못했습니다
지레 겁먹고 때려치고싶은 생각이 가득했지만 '언제까지고 초보자로 남아 있을 수 없으니까' 라며 생각을 다잡고
되는데까지 진행해보도록 하겠습니다
블럭을 부수고 배치하는 게임을 만들려면 청크단위로 크게크게 나누고 각 청크마다 메시를 단일메시로 업데이트 해줘야해서 배치한다고 끝나는게 아닌....
그런당신을위한복셀엔진
방법 1. 마주보는 면은 렌더링 하지 않는다. 2. 규칙에 따라 평면 같은 경우는 하나의 메쉬로 통합 시킨다. 최후의 방법 1. ecs로 전환한다 2. 프로젝트를 삭제한다
그 뭐냐 데이터구조상으론 블록들이 있지만 눈에 보이는건 공기부분인거만 눈에 보이게 하는 뭐 그런식으로 똥꼬쇼 해야 프레임이 잡히던가 할것임
혹시나해서 말하는건데 마크는 DOD 기반이라 마크같은 시스템을 원하면 DOTs로 해야함
최적화 지옥 입장...
어차피 땅 아래 가려진 블록은 안보이니까 걍 보이는 것만 켜셈