DX12 비동기 쉐이더 논쟁

게임, 하드웨어 관련 모사이트들에서 비동기쉐이더 어쩌고 N사 GPU를 가루가 되도록 까고 있길래 뭔 소린가 찾아봤다. 일단 용어와 구현을 전혀 이해하지자기들이 뭔말하는지 모르고 떠들고 있다. 비동기 쉐이더란 용어는 AMD가 사용하는 용어이다. NVIDIA GPU의 비동기처리는 CUDA에서 이미 하고 있다. DX12에서도 그 용어를 사용하지 않는다. 그리고 그들이 말하는 소위 비동기 쉐이더란걸 DX12에서 적극 활용하려면 CommandQueue를 여러개 써야한다. CommandQueue안의 … More DX12 비동기 쉐이더 논쟁

DirectX 11 Desktop Game UWP App으로 포팅하기

MS MVP/RD Asia meetup행사때 MS재팬 스튜디오에서 영상을 찍을 기회가 있어서 짧게 발표자료를 만들었습니다. 촬영 이후. 발표자료를 약간 수정하고 뒤에 데모영상 링크를 첨부했습니다. https://doc.co/rtg4c3   이 내용과 관련된 동영상은 유튜브에 올렸습니다. DirectX 11 Game Engine for win32 and UWP(Window 10 ,Windows 10 Mobile) Testing my game engine on Lumia 1520 Testing my game engine on Lumia … More DirectX 11 Desktop Game UWP App으로 포팅하기

DirectX 11 Game engine for win32,UWP

요새 만들고 있는건 이런것. C++ DirectX 11엔진이다. 요새 계속 포스팅했던 내용을 영상으로 찍어서 올려본다. win32버전을 기본으로 UWP앱 버전을 만들었다. 첫번짼 win32, 두번째는 데스크탑에서의 UWP app , 세번째는 Windows 10 Phone에서의 UWP App. DX11 Feature를 지원하는 리얼 윈폰 하드웨어에서 실행하고 싶었지만 루미아 950을 구하지 못해서 그냥 에뮬레이터로 돌렸다. 루미아 1520으로도 작동할순 있지만 Feature Level 9.3으로 돌려야하고 … More DirectX 11 Game engine for win32,UWP

megayuchi 엔진 win32 -> UWP 포팅작업 #3

Voxel Horizon 프로젝트에 사용중인 내 엔진-megayuchi엔진의 포팅작업 마무리. 데스크탑 DX11엔진에 UWP엔진 코드를 완전히 맞췄다. 그 UWP 엔진에서 다시 렌더러를 DX Feature Level 11과 Feature Level 9의 두개 버전으로 갈라서 별도의 DLL을 만들었다. 마음같아선 Feature Level 9용 엔진따위 갖다버리고 싶지만 내 루미아 1520을 비롯해서 앞으로 상당기간동안 11을 지원하지 않는 폰들이 대부분일테니까. 일단 윈폰 에뮬레이터에서 DX11피쳐는 돌아감. … More megayuchi 엔진 win32 -> UWP 포팅작업 #3

Voxel Horizon on Windows 10 UWP – DirectX Feature Level 11

megayuchi엔진의 UWP버전에 데스크탑 버전의 기능을 거의 99% 포팅했다. DirectX 11은 실제로 DirectX 11의 기능을 준수하지 못하는 디바이스에서도 작동할 수 있다. Feature Level이란 단계로 구분하는데 9.0, 9.1, 9.3 , 10.0 , 11.0 등으로 구분한다. 예를 들어 DirectX 9세대의 그래픽 카드인 경우 Feature Level 9.0으로 D3DDevice를 생성할 수 있다. 당연히 DX11의 기능은 사용하지 못한다. 다만 프로그래밍은 DX11로 할 수 … More Voxel Horizon on Windows 10 UWP – DirectX Feature Level 11

Voxel Horizon on Windows 10 UWP

예전에 win32, Windows 8.1/Windows Phone 8.1로 만들었던 Voxel Horzon프로젝트를 Windows 10 UWP로 포팅했다. 기본적으로는 Windows 8.1의 WinRT코드를 사용했고 Windows 10에서 추가된 win32 api들을 사용해서 코드를 좀더 간결하게, 데스크탑버전과 유사하게 맞출 수 있었다. 특히 SetCurrentDirectory(),GetCurrentDirectory()를 사용할 수 있게 된 것이 엄청 큰 도움이 됐다. 장난감같은 정도로라도 완성 지어서 Windows Store에 올려야지.

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앱 동영상 플레이어 작업

Visual Studio 2015 Graphics Debugger 좋음.

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