캐릭터 위치 관련 디버깅 썰

2021년 9월 25일(토) 잡담 방송중 드러난 버그의 디버깅 썰. 증상 :점프했다가 떨어질때 바닥보다 약간 높은 위치에서 캐릭터가 멈춤. 이때 애니메이션도 착지 동작이 아닌 상태로 스톱. 원인:1) 캐릭터 오브젝트 스케일/회전/이동에 변화가 있을 경우 이를 렌더링용 변환 매트릭스에 반영하도록 되어있다. 불필요한 처리를 반복하는 상황을 막기 위해 업데이트 플래그 변수를 1로 세팅하고 이 변수를 체크하여 프레임당 한번만 수행한다. … More 캐릭터 위치 관련 디버깅 썰

최적화 썰

RTX그래픽 카드 입수 기념 잡담방송중에 내 게임을 플레이하면서 약간 이상한점을 느꼈다.어떤 맵들은 처음 입장후 마우스를 휘릭 움직이는 순간 2-3초 정도 화면이 멈춤다. 사실 이전에도 비슷한 증상을 느끼곤 했는데 그냥 다른 중요한 이슈들이 있어서 신경을 못쓰고 있었다. 그런데 다른 사람들이 보고 있으니 그 2-3초나 끊기는게 너무 쪽팔렸다. 방송 끝내고 조사를 시작했다.원인은 최초 맵 로딩 후 CUDA측 … More 최적화 썰

S/W Raytracing을 이용한 복셀 오브젝트 Culling #2

CUDA Raytracing을 이용한 복셀 오브젝트 culling 기능 작업중. 앞서 이 기법에 대한 기본적인 내용을 포스팅을 했었다. https://megayuchi.com/2021/09/06/s-w-raytracing%ec%9d%84-%ec%9d%b4%ec%9a%a9%ed%95%9c-%eb%b3%b5%ec%85%80-%ec%98%a4%eb%b8%8c%ec%a0%9d%ed%8a%b8-culling/ 실제 culling을 해야하는데 우선 복셀 오브젝트 ID를 곧바로 버퍼에 써넣고 이것을 보이는 오브젝트 목록으로 가져가는 방식으로 구현했다. 아주 칼같이 보이는 오브젝트만 골라주기는 하는데 문제가 있다. 512×512정도의 해상도로는 화면 해상도보다 많이 낮다보니 오차가 발생한다. 그렇다고 화면 사이즈만큼 CUDA측 프레임버퍼 … More S/W Raytracing을 이용한 복셀 오브젝트 Culling #2

S/W Raytracing을 이용한 복셀 오브젝트 Culling

현재 SW Occlusion Culling + HW Occlusion Culling을 사용중이다. 일단 복셀지형을 놓고 볼때 어지간하면 오브젝트 개수가 5만에서 8만개씩 나오기 때문에 S/W Occlusion Culling을 먼저 걸어주지 않으면 H/W Occlusion Culling에서도 꽤 큰 손해를 본다. draw call이 엄청 증가하기 때문이다. 그런데 S/W Occlusion Culling은 또 CPU 처리에서 상당한 지연을 일으킨다. 그래서 이걸 async로 처리하고 있긴 한데 그 … More S/W Raytracing을 이용한 복셀 오브젝트 Culling

VOXEL HORIZON의 메모리 사용량 체크

테스트 하다가 생각나서 메모리 사용량을 확인 해봤다. 테스트한 맵은 폴리곤맵으로부터 변환했기 때문에 모양이 상당히 복잡하고 복셀 개수도 많다. 복셀 개수 : 복셀 하나당 50cm x 50cm x 50cm 로 환산 -> 9364002개 D3D11 committed: 2820580KB (2.82GB)Working Set : 1817052KB (1.81GB)Heap committed : 1695968KB ( 1.69GB)GPU Dedicated : 692888KB (692MB) D3D12 committed: 2705464KB (2.7GB)Working Set : … More VOXEL HORIZON의 메모리 사용량 체크