Windows Application Packaging Project를 이용해서 만든 Destktop Bridge app에서 UWP App과 interop하기.

최근 Visual Studio 15.4.1에 Windows Application Packaging Project 템플릿이 추가됐다. 이 템플릿을 이용하면 손쉽게 데스크탑 어플리케이션을 AppX로 패키징할 수 있다. 그 방법이 너무나 쉬우므로 자세한 설명은 달지 않는다. 링크 참조. https://blogs.windows.com/buildingapps/2017/10/18/visual-studio-2017-update-4-makes-easy-modernize-desktop-application-make-store-ready/ 그런데 github의 MS샘플도 그렇고 어디에도 이 템플릿을 사용했을때 uwp app과 interop하는 예제는 없다. 내가 원하는 샘플과 자료는 아래 링크의 내용이다. https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-extend 그런데 빌어먹을….이건 VS2017에 … More Windows Application Packaging Project를 이용해서 만든 Destktop Bridge app에서 UWP App과 interop하기.

SW Occlusion Culling 정리

요 근래 계속 붙잡고 있던 SW Occlusion Culling을 거의 마무리 지었다. 물론 오래전에 HW Hierarchical Occlusion Culling을 구현해서 지금까지도 잘 사용하고 있다. SW Occlusion Culling을 만든 이유는 HW Occlusion Culling을 대체하기 위함이 아니다. 전혀 아니다. 이것은 완전히 용도가 다르다. 현재 복셀 월드는 KD-Tree로 공간이 분할되어있다. 그리고 보여지는 오브젝트를 찾아내기 위해 트리를 탐색한다. 이 탐색 과정에서 … More SW Occlusion Culling 정리

Compiler Intrinsic을 사용해서 SIMD코드를 작성할때 주의할 점

어셈블리어로 SIMD를 다뤄보지 않고 Compiler Intrinsic으로 SIMD를 접하면 성능이 전혀 향상되지 않는 코드를 짜기 쉽다. 기본적으로 simd명령어로 존재하지 않는 기능은 1:1 치환이 불가능하다. 예를 들어 다음과 같은 코드는 simd명령으로 치환이 불가능하다. a.m128_f32[0] = b.m128_f32[3]; 3번째 성분을 0번째 성분으로 카피하는 명령어 같은건 존재하지 않으므로 범용 명령어의 mov기능만으로 구현된다. a.m128_f32[0] = b.m128_f32[0] + c.m128_f32[0] 이런 코드의 경우 … More Compiler Intrinsic을 사용해서 SIMD코드를 작성할때 주의할 점