MS Techdays 2015 저녁때 MS본사 직원분들이랑 식사한 얘기

지난 테크데이즈 2015 행사날 저녁때 미국 MS본사에서 오신 Ulzii Luvsanbat 씨와 Ayman Shoukry 씨 두분과 C++ MVP들이 모여서 저녁식사를 했다. 대화 내용 몇가지 적어본다. 저녁먹을때 잡담한건 NDA아니겠지.설마.. 내가 영어를 못하는 관계로 많은건 물어보지 못했다. 다른 MVP분들이 이런저런 질문을 했으나 내가 한 질문은 아니므로 생략한다.질문의 저작권을 존중하여… … Ulzii Luvsanbat 씨는 내가 몇년전 KGC때 강연을 들은 … More MS Techdays 2015 저녁때 MS본사 직원분들이랑 식사한 얘기

MS 테크데이즈 2015에서 발표했던 데모 D3DVideoPlayer의 소스코드 공개합니다.(C++로 UWP앱 개발하기)

MS Techdays 2015 in SEOUL에서 발표했던 내용중 D3DVideoPlayer 데모가 있는데요. 소스 코드를 요청하시는 분들이 계셔서 소스코드 공유합니다. 버그 및 결함이 틀림없이 존재할 것입니다. 이에 대해서 저는 아무 책임도 지지 않습니다. 소스코드는 MIT라이선스를 적용받습니다. https://github.com/megayuchi/Windows-UWP/ 발표자료는 아래 링크를 참조해주세요. https://doc.co/jERsyS

MS 테크데이즈 2015에서 발표했던 슬라이드 공유합니다. (C++로 UWP앱 개발하기)

강연영상 MS Techdays 2015 ch9영상 https://channel9.msdn.com/Events/TechDays/TDK2015/T4-6 발표자료   소스코드 공유에 대해서 많은 분들이 요청하신 D3DVideoPlayer소스를 공유하였습니다. 버그 및 결함이 틀림없이 존재할 것입니다. 이에 대해서 저는 아무 책임도 지지 않습니다. 소스코드는 MIT라이선스를 적용받습니다. https://github.com/megayuchi/Windows-UWP/

FFMpeg + D3D + C++을 사용한 Windows 10 UWP앱 동영상 플레이어 작업

테크데이즈때 데모로 사용할 FFMpeg + D3D + C++을 사용한 Windows 10 UWP앱 동영상 플레이어 거의 완성. 소리랑 영상 싱크 맞췄고 종료시 리소스 체크 완료. 사운드 출력은 Media Foundation을 사용했다. 영상은 디코딩된 yuv데이터를 그대로 텍스쳐로 만들어서 프로젝션된 사각형으로 렌더링한다. 쉐이더에서 yuv->rgb해서 바로 D3D렌더타겟에 출력했다. 게임처리하듯 싱글 스레드 루프에서 폴링하면서 렌더링 하는데 MediaElement에서 정확한 타임스탬프를 얻을 수 … More FFMpeg + D3D + C++을 사용한 Windows 10 UWP앱 동영상 플레이어 작업

예전 개발한 게임에 오큘러스 리프트 적용하는중

간만에 개발 관련 썰. 예전 개발했던 게임에 오큘러스 리프트를 적용했다. 다른 프로젝트를 위해서 시험삼아 적용하고 문제점을 하나하나 해결해가고 있는 중이다. 오큘러스 리프트 SDK가 DX11만 지원하는데 내 게임 엔진은 처음부터 Direct X 11로 개발했으므로 적용하는데 큰 어려움은 없었다. 다만 오큘러스 SDK가 오른손 좌표계를 사용하므로 DX의 왼손좌표계로 바꾸느라 좀 애먹었다. 하여간 3D렌더링쪽은 대충 거의 문제를 해결했다. 그 … More 예전 개발한 게임에 오큘러스 리프트 적용하는중

Windows 10 UWP에서 C++/CX의 ref class객체들을 STL컨테이너와 함께 사용할 경우 ref count관리는 어떻게 이루어지는가

나는 Windows 10 UWP앱을 C++/CX로 개발하고 있다. 그런데 난 STL을 잘 사용하지 않는다. 아주 가끔 사용한다. 정말 노가다가 귀찮을때만 쓴다. 오늘 UWP앱으로 테스트할게 있어서 몇 줄 코드를 작성했다. 노가다가 귀찮아서 stl::queue를 사용했다. 무심코 ref new로 할당한 ref class 객체(이하 ^객체-hat object로 표시함)를 여기 집어넣으면 ref count가 증가할까? 라는 의문이 들었다. 테스트를 해보니 놀랍게도 ref count … More Windows 10 UWP에서 C++/CX의 ref class객체들을 STL컨테이너와 함께 사용할 경우 ref count관리는 어떻게 이루어지는가

변수의 값(임시변수,xor) 교환을 컴파일러는 어떻게 처리하는지에 대한 테스트

어제 포스팅했던 xor교환에 대한 추가 포스팅입니다. 페북 타임라인에서 A ,B를 교환하는 C코드를 컴파일러는 어떻게 처리하느냐에 대한 주제가 나왔습니다. 댓글로 쓸 내용이지만 내용이 길어져서 워드프레스 한페이지 정도는 할애해도 될것같아 이쪽으로 옮겨적습니다. 김민장님이 제공해주신 아래 코드로 테스트 해봤습니다. void xor_swap(int &a, int &b) { a = a ^ b; b = a ^ b; a = a … More 변수의 값(임시변수,xor) 교환을 컴파일러는 어떻게 처리하는지에 대한 테스트

xor을 이용하여 분기 없이 두 변수의 값 교환하기

얼마전 Visual C++ MVP모임에 나갔다가 임시변수 없이 두 변수의 내용을 맞바꾸는 기법에 대한 애기가 나왔다. 바로 xor로 바꾸는 방법이 거론됐다. 이 내용을 전혀 모르는 분들이 계실지 모르니 잠깐 설명을 하자면.. A,B두 변수가 있다. C = A^B이다. (xor연산자는 C에서 ^로 쓴다. 따라서 ^로 표기한다.) 이때 A^C = B이다. 또한 B^C = A이다. 그러니까 아래와 같다. C … More xor을 이용하여 분기 없이 두 변수의 값 교환하기

Visual Studio 2015 Graphics Debugger 좋음.

Visual Studio 2015 Graphics Debugger 짱이다. 프레임 구성과정이 다 추척된다. 예를 들어 Draw()함수를 클릭하면 해당 함수에서 사용되는 오브젝트 리스트-텍스쳐,쉐이더,레스터스테이트,스왑체인 다 목록에 뜬다. 얘네들을 클릭하면 텍스쳐의 경우 텍스쳐 이미지를 보여주고 쉐이더를 클릭하면 쉐이더 어세블리 코드와 소스코드 보여주고 여기서 사용하지 않는 변수들 다 분석해줌. 일단 스샷 몇 장 올림. 나중에 상세하게 리뷰를 올릴 예정.

GPU를 이용한 PVS에서 선회한 GPU를 이용한 공한 분할 및 SW Occlusion Culling.

KD트리로 빌드된 Voxelized Mesh -> 최적화 및 최적화된 사각형으로부터 Occluder추출 -> 실시간 SW Occlusion Culling 건물벽에 가려서 안보이는 공간(Leaf)와 사각형들을 왕창 걸러내고 있다. 결함이 있어서 사용 못할까봐 엄청 걱정했는데 이 정도면 써먹을 수 있다. 당초 PVS를 계산하려던 거였지만 모로가든 한양으로만 가면 된다고 소기의 목적은 달성. 이번 엔진의 공간 분할 체계는 이걸로 간다.