최적화 썰

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의 메모리 사용량 체크

DWrite에서 Custom Font사용하기

내 게임에서 몇 가지 외부 폰트를 사용한다. 익히 알려진 구글의 Noto sans와 Let’s go digital regular가 그것이다. 엊그제 UI레이어 코드 버그를 잡으면서 UWP빌드도 업데이트를 했다. 테스트 해보니 잘 도는거 같은데 뭔가 이상하다. Let’s go digital regular폰트가 제대로 나오지 않는다. 이게 8세그먼트 숫자로 표시되는 폰트인데 그냥 쌩 숫자로 나오네. 코드를 뒤져보니 UI코드 문제가 아니고 처음부터 폰트를 … More DWrite에서 Custom Font사용하기