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사용하기

Voxel Horizon – MIDI지원

온라인 상에서 옹기종기 모여서 음악을 연주할 수 있는 기능을 넣고 싶었다.직접 soft synth를 만들까 하고 꽤 찾아봤다. 파형을 합성해서 wav출력으로 쏴주면 되는데 일단 멀쩡한 소리 나게 하기가 쉽지 않아보인다. 개인적으로는 어릴때 써보고 싶었지만 돈이 없어서 써볼 수 없었던 MIDI장비를 지원하고 싶었다. 모든 Windows시스템은 Microsoft GS Wavetable Synth이라는 soft midi를 내장하고 있다. 그러니까 사용자의 장비에 하드웨어 … More Voxel Horizon – MIDI지원

디버깅 스토리 – DXR렌더러에 ABuffer를 이용한 OIT를 추가하고 나서 D3D Runtime crash 발생

어제 방송중 게임이 크래시했던 원인 찾았다. CPU코드에서 크래시한게 아니고 D3D런타임이나 드라이버, GPU하드웨어 큐에서 예외가 발생한 것인데 D3D Debug Runtime으로 돌리던게 아니었기 때문에 관련 에러 메시지는 전혀 확인할 수 없었다. 물론 덤프를 떠도 소용없지. CPU코드는 아무 문제 없이 잘 돌고 있었으니까.하루종일 고민 하다가 저녁먹고 본격적으로 뜯어보기 시작했는데 다행히 원인을 찾을 수 있었다. [원인] 최근에 이펙트의 반투명 … More 디버깅 스토리 – DXR렌더러에 ABuffer를 이용한 OIT를 추가하고 나서 D3D Runtime crash 발생