Windows 10 Redstone UWP앱에서의 레이싱 휠 지원

몇 일전 순수 열혈 게이머 친구와 콜라를 마시며 이런저런 대화를 하던중… Forza Motor Sports 6가 곧 Windows 10용으로 출시된다는 얘길 들었다. 여기서 말하는 Windows 10용이란 것은 정확히 말하면 Windows 10의 UWP앱을 얘기한다. UWP앱이 기존 어플리케이션과 어떻게 다르냐고 하면…설명이 길어지니 넘어가고. 당초 취지는 Windows OS의 모바일 특화 API였다. 지금은 꼭 그렇지는 않다. UWP에 대해서 전혀 모르는 … More Windows 10 Redstone UWP앱에서의 레이싱 휠 지원

Windows 10 Redstone빌드와 th2빌드의 DirectX 12 차이점

th2빌드는 현재 Windows 10의 공식 빌드이다. Redstone은 7월 릴리즈가 예정된 Windows 10의 베타 빌드이다. 개발중인 D3D12 엔진을 Redsone과 th2에서 돌려보면 조금 다르게 돌아간다. 렌더링이 다른게 아니고 에러 발생 여부가 다르다. 대부분 ResourceBarrier관련인데 th2와 Redstone 모두 렌더링은 정상적으로 되고 있던 것들이다. th2빌드에선 에러가 나지 않았는데 Redstone에선 에러가 발생하고 DX Control Panel에서 에러 발생시 브레이크를 걸도록 하면 … More Windows 10 Redstone빌드와 th2빌드의 DirectX 12 차이점

‘개발자의 끊임없는 학습’에 대한 고찰

새로운 기술에 대한 학습도 그렇다. 1.용어만 달달 외우고 있는것. 2. 그 기술을 정말 잘 알고 있는것. 3.그리고 그걸 제품에 적용해서 잘 만들어낼 수 있는 -> 이것은 경험과 끈기의 문제이다. 이 세가지는 다르다. 보통 2번 항목 정도만 되어도 대단하다고들 생각하는 모양인데 내 생각은 다르다. 그걸로 제품 만들지 못하면 다 쓸모없다. 그런건 허세에 불과하다. 개발자는 끊임없이 학습해야하는가? … More ‘개발자의 끊임없는 학습’에 대한 고찰

D3D12 – 옵티머스 장비에서의 문제점

옵티머스,엔듀로 이런게 평소에는 내장 gpu를 사용하다가 필요할때 dGPU를 쓰는 기술이다. 엔듀로는 요새 많이 안쓰는거 같고 요새 나오는 GPU특화된 대부분의 노트북들은 옵티머스 기술이 적용되어있다. 이 빌.어.먹.을 옵티머스가 DirectX 9/11세대에서도 많은 문제를 일으켜왔는데 DirectX 12에선 진짜 꽤 치명적인 문제를 안고 있고 아직 해결되지 않고 있다. 우선 Windows 10의 현재 정식빌드인 th2(10586)에서 Present()를 호출하면 간헐적으로 에러를 발생시킨다. 옵티머스 … More D3D12 – 옵티머스 장비에서의 문제점

Game Dev – Octree for Voxel Object

Voxel Object각각 Octree를 빌드하도록 했다. Voxel Object는 16x16x16짜리 1 bit table자료구졸르 사용한다. 그러니까 총 512바이트의 메모리가 필요하다. 이 자료구조를 그대로 Octree로 빌드한다. picking과 충돌처리용 삼각형 탐색은 이 Octree를 사용할 것이다. 코드는 빨리 짰는데 사소한 실수를 해서 밤을 샜다. 메모리 아끼려고 sub node각각의 인덱스나 포인터를 가지고 있는 대신, sub node를 8개씩 인접한 메모리블럭으로 할당하도록 했다. 순서대로 … More Game Dev – Octree for Voxel Object

쓸데없는 고민할 시간에 무조건 만들어라.

테트리스류나 갤러그 류나 뭐든 게임 비슷한거라도 하나 만들어보면 생각보다 졸라게 빡신걸 깨닫는다. 저수준의 라이브러리를 모두 구축하지 않더라도, 심지어 유니티같은 쉽고 편한 툴을 써도 쉽지 않다. 게다가 그걸 만들어서 진짜 배포까지 해보려면 더 장난 아니다. 최신의 AAA게임을 즐기면서 욕하는건 쉽지만 막상 자기 손으로 갤러그라도 만들려면 겁나 빡시다. 게임 만드는건 원래 어렵다. 어려운데 그게 아이디어 때문에 어렵다고 … More 쓸데없는 고민할 시간에 무조건 만들어라.

D3D12엔진개발 – Multi-Thread 렌더링, Wait줄이기

미리 말해둔다. D3D12 렌더러 작업을 시작하기 전, 그러니까 지금 D3D12렌더러의 원형이었던 D3D11렌더러는 Single-Thread기반이었다. 게임엔진 자체는 여기저기서 멀티스레드를 사용하고 있지만 렌더링-그래픽 API사용 계층은 싱글 스레드로만 동작했다. 이전 포스트에서도 언급했듯이 그럼에도 불구하고 GPU 점유율 90%이상의 괜찮은 성능을 보여주었다. 그런데 D3D12렌더러를 만들면서 이전의 작동방식은 GPU를 펑펑 놀게 하는 결과를 가져왔다. 그래서 별로 내키지는 않지만 렌더러를 멀티스레드 체계로 바꿨다. … More D3D12엔진개발 – Multi-Thread 렌더링, Wait줄이기

Win10 Anniversary Update에 추가될 InkCanvas맛보기

Build 2016에서 올 여름에 업데이트될 Windows 10의 새로운 빌드의 기능이 몇가지 공개되었다. Windows 10 Anniversary Update란 이름으로 배포될 예정이다. UWP쪽 변화를 보면  펜 기능이 크게 강화되었다. 자(Ruler)를 꺼내서 사용하는 데모에 많은 사람들이 놀랐다. 그 펜기능을 사용할 수 있는 컨트롤이 추가 되었는데 그 이름이 InkCanvas이다. 현재 Windows Insider Fast Ring으로 14295빌드를 받아서 InkCanvas를 사용해볼 수 있다.   … More Win10 Anniversary Update에 추가될 InkCanvas맛보기

D3D12엔진에서 GPU Dedicated 메모리를 쳐묵쳐묵하고 있는 건에 대해서.

똑같은 상황에서 메모리 사용 현황 DX11 – System: 579,608 KB ,  GPU Dedicated: 279,536 KB DX12 – System: 598,608 KB , GPU Dedicated: 553,136 KB 그리고 VS2015 Graphics Debugger에서 프레임을 캡쳐해서 현재 D3D 오브젝트들이 사용하는 메모리 사이즈를 다 합산해봄. 202665770 Bytes -> 193MB 1. 시스템 메모리 사용량은 D3D11, D3D12엔진 모두 비슷. GPU Dedicated메모리 사용량은 DX12가 … More D3D12엔진에서 GPU Dedicated 메모리를 쳐묵쳐묵하고 있는 건에 대해서.