DirectX 9를 사용하여 합리적인 수의 소규모 취미 프로젝트를 수행했지만 지금은 DirectX 11로 전환해야합니다.
DirectX 10을 사용하는 3D 프로그래밍에 대한 Frank Luna의 책을 가지고 있지만 DirectX 11에는 아무것도 없습니다. 나는 그것들이 꽤 비슷하다고 생각하지만, 내가 알아야 할 코드 수준에서 주요 차이점을 열거 할 수 있는지 궁금합니다. 또는 기존 소스를 가리 킵니다).
DirectX 9를 사용하여 합리적인 수의 소규모 취미 프로젝트를 수행했지만 지금은 DirectX 11로 전환해야합니다.
DirectX 10을 사용하는 3D 프로그래밍에 대한 Frank Luna의 책을 가지고 있지만 DirectX 11에는 아무것도 없습니다. 나는 그것들이 꽤 비슷하다고 생각하지만, 내가 알아야 할 코드 수준에서 주요 차이점을 열거 할 수 있는지 궁금합니다. 또는 기존 소스를 가리 킵니다).
답변:
SDK 설명서에는 9와 10에서 모두 다루는 11로 마이그레이션하기위한 섹션 이 있습니다. D3D11 기능 페이지 도 있습니다. 있습니다.
10과 11 사이의 API 형태 측면에서 가장 큰 변화 중 하나는 11이 ID3D11DeviceContext
새로운 멀티 스레딩 기능을 지원하기 위해 장치 자체에서 장치 컨텍스트 ( 특히) 라는 새로운 인터페이스로 많은 메소드를 이동한다는 것 입니다.
그러나 변경 사항을 알고 나면 다음과 같이 쉽게 적응할 수 있습니다. " someDevice->Draw()
" 라는 이름의 10 개 위치 에 장치에 대한 즉각적인 컨텍스트가 표시되고 " "이 (가) 호출 immediateContext->Draw()
됩니다. "
또 다른 큰 변화는 Effects API가 핵심에서 벗어나 독자적인 소스 배포판을 작성하여 직접 컴파일하고 연결해야한다는 것입니다. 더 이상 사용되지 않거나 제거 된 일부 D3DX 인터페이스 및 기능을 볼 수도 있습니다.
그 외에도 일부 기능에는 소수의 새로운 매개 변수가 있으며 구조에는 소수의 추가 필드가 있습니다. 예를 들어, 도 11의 버퍼 정보 객체 추가 갖는 StructureByteStride
필드 (10)에없는를 , 장치 생성 통과 관련된 기능 레벨 정보. 또한 인터페이스 이름에 명백하고 앞서 언급 한 변경 사항이 있습니다 (10은 11로 대체 됨).