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

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

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

Volumetric Cloudscapes + Environment mapping

Volumetric Cloudscapes로 하늘을 처리하게 되면서 반사 처리할때는 하늘의 반사가 제외됐다.정확히는 1) D3D11/D3D12렌더러에서는 반사 처리할때만 스카이박스로 배경을 먼저 렌더링해주고 있었고 2) DXR에선 하늘 반사는 아예 빠져버렸다. D3D11/12렌더러에선 스카이박스로나마 반사처리를 해주기도 하고 어차피 물 표면에서만 반사가 일어나니 크게 눈에 띄진 않는다. 하지만 DXR에선 온 맵이 빤딱거리니 하늘 반사가 빠진게 너무 티가 많이 난다. raytracing에서 ray가 아무 지형지물에도 … More Volumetric Cloudscapes + Environment mapping

DDRAW-Surface /D3D-Dynamic Buffer 에서의 Write Combine Memory

20년도 더 전에 DDRAW시절부터 “그래픽카드(그땐 GPU란 말 자체가 없었다)에 쓰는건 생각보다 빠르지만 읽는건 엄청 느리다.”라고 알려져 있었다. ‘PCI버스로 읽어오는게 느리다.’라고만 알고 있었는데 생각해보면 같은 버스로 통신하는건데 쓰는건 빠르고 읽는건 느릴 이유가 있나?실제로 CUDA로 테스트 해보면 GPU로 보내는거나 받아오는거나 성능 차이가 크게 안난다. 따라서 ‘읽는건 느리고 쓰는건 빠르다’라고 하는 사실은 PCI 버스 통신과 무관하다. DOS시절에야 비디오카드 … More DDRAW-Surface /D3D-Dynamic Buffer 에서의 Write Combine Memory

DXR – RTAO와 denoising

DXR 시작할때는 RTAO와 denoising을 구현할 생각이 없었다. ray tracing이 렌더러의 미래라고 생각하니까 DXR 기반의 프레임워크만 구축하면 충분했다. 시각적으로는 반사를 이쁘게 처리할 수 있으면 그걸로 족했다.하다보니 사람이 욕심이 생기더라. 원론적인 ray tracing만 해서는 반사처리 외에 다른 시각적인 요소는 향상시킬 여지가 없었다.내 프로젝트는 아트 디자이너의 도움을 전혀 받지 못하니 이 그래픽의 썰렁함을 조금이라도 극복하려면 렌더링 코드를 향상시키는 … More DXR – RTAO와 denoising