SW Rasterize 기법에 따른 효용성 요약

SW Occlusion Culling만들면서 CPU로 삼각형 찍는 방법으로 별 짓을 다 써봤다. SW Occlusion Culling을 수행하기 위해선 프레임버퍼에 삼각형의 depth를 출력해야한다. depth값이 아닌 color값이나 texture를 출력하는 경우도 기본 원리는 똑같다. 성분의 종류만 다르고 1/w로 보간하는것까지 똑같다. 즉 CPU로 삼각형 찍는 SW Rasterizer를 만드는 작업이다. 여러가지 기법들을 사용해봤는데 결론을 요약해본다. 1. Multi-Thread 사용 화면 구역을 나눠서 여러스레드가 … More SW Rasterize 기법에 따른 효용성 요약

Async S/W Hierarchical Occlusion Culling

S/W Occlusion Culling에 대한 미련을 못버리고 계속 튜닝하면서 사용해왔다. 다음번 프레임의 카메라 위치 예측 + 비동기 S/W Occlusion Culling으로 완료를 짓는가 싶었다. 성능도 만족스러웠다. 근데 생각해보니 어차피 비동기로 처리할거면 Hierarchical Z방식으로 처리하는게 더 낫지 않나? 그런 생각이 들었다. 512×512 -> 1×1까지 Down-sampling 비용이 항시 포함되어서 메인스레드에서 처리하긴 부담스러웠던것인데 어차피 비동기적으로 Raster스레드가 처리한다. 게다가 이 비용은 … More Async S/W Hierarchical Occlusion Culling

개인 장비들 SSD 벤치마크

내 개인 장비들의 ssd 벤치마크 스샷 찍어놓은게 있어서 엑셀 시트로 정리해봤다. 삼성 960 Pro가 남는데, 꽂을데가 없어서 Mac Mini에 꽂았다. Mac mini 2014 late는 Nvme PCI-E lane이 절반이라 SSD최대 성능 반토막도 안나옴. Mac Mini 스펙이 떨어지는거지 960Pro 성능이 떨어지는게 아님. ADATA는 쓸게 못된다. 2015년경에는 256GB SSD가 꽤 비쌌기 때문에 그 당시에 돈 아낀다고 Alienware15에 ADATA … More 개인 장비들 SSD 벤치마크

삼각형 베이스 맵에서의 SW Occlusion Culling #3

앞서 Rasterize코드의 버그를 수정했고 거의 완벽하게 CPU로 Raster/Test작업을 수행한다. 시간이 걸린다는 문제만 빼면 culling결과는 매우 훌륭하다. 다만 시간이 걸린다는 문제는 결코 무시할 수 없다. CPU로 삼각형을 픽셀 단위로 찍는 작업은 간단한 작업이 아니다. 아무래도 매 프레임마다 SW Occlusion Culling을 수행하면 Raster/Test비용이 렌더링 비용보다 더 커진다. 그래서 카메라 위치와 방향의 변화가 일정 수치 미만인 경우 앞 … More 삼각형 베이스 맵에서의 SW Occlusion Culling #3

삼각형 베이스 맵에서의 SW Occlusion Culling

삼각형 베이스 맵에서의 SW Occlusion Culling 작업중. 복셀 지형을 렌더링할때 성능향상을 위해 사용했던 SW Occlusion Culling을 삼각형 베이스 맵에도 적용한다. KD-Tree를 순회할때 카메라 위치에 가까운 leaf부터 방문하게 되므로 방문하는 leaf의 삼각형들을 차곡차곡 Rasterize/z-test 해가면 z-buffer상에서 가려지는 leaf는 조기에 제외시킬 수 있다. SW Rasterizer/Tester는 작년까지 죽어라 다듬어놨기 때문에 더 손볼게 없다. 512×512버퍼에 KD-Tree를 순회하면서 프러스텀에 걸치는 … More 삼각형 베이스 맵에서의 SW Occlusion Culling

Surface Pro X benchmark from the programmer’s point of view.

Windows on ARM I love Windows. Of course, I don’t have much attachment to Windows 3.1 and 95, but I really love Windows after the NT kernel. I also like Windows programming. Windows programming with Visual Studio is fun. So I was very excited when I heard about NT kernel-based Windows running on a CPU … More Surface Pro X benchmark from the programmer’s point of view.

응답성(response time)과 처리량(throuthput)은 다르다.

시간당 처리량과 응답성은 분명히 다르다. 시간당 처리량이 떨어져서 응답성이 떨어지는 경우에는 처리량을 높여서 응답성을 개선할 수 있다. 하지만 일정 수준 이상 처리량이 개선되면 응답성을 향상시키지 못한다. 100ms정도가 빠른 응답성이라고 가정하는 세상에선 처리량을 높이는게 응답성 향상으로 연결되겠지만 1ms정도에도 민감하게 반응하는 세상에선 처리량과 응답성이 거의 관련이 없을 가능성이 높다. 프로그래머라 해도 이 차이를 이해하지 못하는 경우가 많다. … More 응답성(response time)과 처리량(throuthput)은 다르다.