캐릭터 위치 관련 디버깅 썰

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

Voxel Horizon – MIDI지원

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