DirectX Graphics に関するメモ
(Direct3D,Direct2D,DXGI ほか)

作成開始:2012/10/18(木)
最終更新:2020/01/16(木)

準備中

CG 素人が DirectX Graphics について調べたことのメモです.
主に MSDN のマニュアルやサンプルコードを読んだり, 自分で実験して確認したことをまとめています.

注意:最近の CG 業界用語は英語をカタカナにしただけでよくわからないものが多いので, 他の科学技術分野の用語 (特に数学・物理) や勝手訳語を使っています.

0.目次


バージョン

HLSL
Shader
Model
DWrite
Ver.
D2D
Ver.
DXGI
Ver.
D3D
Ver.
OS Ver.
123 - - - D3D9 XP
D3D9.0c XP SP2
D3D9.0Ex Vista
4 DXGI1.0 D3D10 Vista / Server 2008
4.1 D3D10.1 Vista SP1
5 D2D1.0 DXGI1.1 D3D11.0 Vista SP2 / Server 2008 R2 / Windows 7
(1.0) Vista SP2 + Platform Update /
Server 2008 R2 /
Server 2008 SP2 + Platform Update /
Windows 7
(1.1) D2D1.1 DXGI1.2 D3D11.1 Windows 7 SP1 + Platform Update (KB2670838) /
Server 2008 R2 SP1 + Platform Update (KB2670838) /
Windows 8 / Windows RT / Server 2012
(1.2) D2D1.2 DXGI1.3 D3D11.2 Windows 8.1 / RT 8.1 / Server 2012 R2
5.1 (1.3) D2D1.3 D3D11.3 Windows 10
DXGI1.4 D3D12
6 DXGI1.5 D3D11.4 Windows 10 November 2015 Update (version 1511, build 10586)

D3DCompiler_xx.dll と SDK バージョンの対応表

D3DCompiler
DLL Version
SDK Version
D3DCompiler_42.dll DirectX SDK (Feb 2010)
D3DCompiler_43.dll DirectX SDK (June 2010)
D3DCompiler_44.dll Windows Kits 8.0 (alpha)
D3DCompiler_45.dll たぶん同上
D3DCompiler_46.dll Windows Kits 8.0 (RTM 以降) / Visual Studio 2012
D3DCompiler_47.dll Windows Kits 8.1 / Visual Studio 2013
Windows Kits 10.0 / Visual Studio 2015/2017/2019

■参考

2014/07/01(火) 初版
2015/08/14(金) VS2015 を追記.
2017/04/30(日) VS2017 を追記.
2019/07/08(月) VS2019 を追記.

インタフェースの継承 (クラス) 階層

■調査方法

Windows SDK (Kits) 10 の関連ヘッダファイルから,"MIDL_INTERFACE" や "DECLARE_INTERFACE" で検索してインタフェースの継承関係を抽出.

DirectX Graphics 共通 (DXGI,D3D 共通)

Header Files:dxgi.h,dxgi1_2.h,dxgi1_3.h,dxgi1_4.h,dxgi1_5.h,dxgi1_6.h,dxgidebug.h


IUnknown
│
├─IDXGIObject
│  │
│  ├─IDXGIFactory
│  │  │
│  │  └─IDXGIFactory1 (1.1)
│  │      │
│  │      └─IDXGIFactory2 (1.2)
│  │          │
│  │          └─IDXGIFactory3 (1.3)
│  │              │
│  │              └─IDXGIFactory4 (1.4)
│  │                  │
│  │                  └─IDXGIFactory5 (1.5)
│  │                      │
│  │                      └─IDXGIFactory6 (1.6)
│  │                          │
│  │                          └─IDXGIFactory7 (1.6)
│  │
│  ├─IDXGIAdapter
│  │  │
│  │  └─IDXGIAdapter1 (1.1)
│  │      │
│  │      └─IDXGIAdapter2 (1.2)
│  │          │
│  │          └─IDXGIAdapter3 (1.3)
│  │              │
│  │              └─IDXGIAdapter4 (1.6)
│  │
│  ├─IDXGIDevice
│  │  │
│  │  └─IDXGIDevice1 (1.1)
│  │      │
│  │      └─IDXGIDevice2 (1.2)
│  │          │
│  │          └─IDXGIDevice3 (1.3)
│  │              │
│  │              └─IDXGIDevice4 (1.5)
│  │
│  ├─IDXGIDeviceSubObject
│  │  │
│  │  ├─IDXGIResource
│  │  │  │
│  │  │  └─IDXGIResource1 (1.2)
│  │  │
│  │  ├─IDXGISurface
│  │  │  │
│  │  │  └─IDXGISurface1 (1.1)
│  │  │      │
│  │  │      └─IDXGISurface2 (1.2)
│  │  │
│  │  ├─IDXGISwapChain
│  │  │  │
│  │  │  └─IDXGISwapChain1 (1.2)
│  │  │      │
│  │  │      └─IDXGISwapChain2 (1.3)
│  │  │          │
│  │  │          └─IDXGISwapChain3 (1.4)
│  │  │              │
│  │  │              └─IDXGISwapChain4 (1.5)
│  │  │
│  │  └─IDXGIKeyedMutex
│  │
│  ├─IDXGIOutput
│  │  │
│  │  └─IDXGIOutput1 (1.2)
│  │      │
│  │      └─IDXGIOutput2 (1.3)
│  │          │
│  │          └─IDXGIOutput3 (1.3)
│  │              │
│  │              └─IDXGIOutput4 (1.4)
│  │                  │
│  │                  └─IDXGIOutput5 (1.5)
│  │                      │
│  │                      └─IDXGIOutput6 (1.6)
│  │
│  └─IDXGIOutputDuplication (1.2)
│
├─IDXGIDisplayControl (1.2)
│
├─IDXGIInfoQueue (1.2)
│
├─IDXGIDebug (1.2)
│  │
│  └─IDXGIDebug1 (1.3)
│
├─IDXGIDecodeSwapChain (1.3)
│
├─IDXGIFactoryMedia (1.3)
│
└─IDXGISwapChainMedia (1.3)

Header File:D3Dcommon.h


IUnknown
│
└─ID3DBlob (=ID3D10Blob)


ID3DInclude

Direct3D12

Header Files:D3D12.h,D3D12Shader.h,D3D12SDKLayers.h. (Windows SDK 10.0.18362.0 から抽出)


IUnknown
│
├─ID3D12Object
│  │
│  ├─ID3D12Device
│  │  │
│  │  └─ID3D12Device1
│  │      │
│  │      └─ID3D12Device2
│  │          │
│  │          └─ID3D12Device3
│  │              │
│  │              └─ID3D12Device4
│  │                  │
│  │                  └─ID3D12Device5
│  │                      │
│  │                      └─ID3D12Device6
│  │
│  └─ID3D12DeviceChild
│      │
│      ├─ID3D12RootSignature
│      │
│      ├─ID3D12CommandList
│      │  │
│      │  └─ID3D12GraphicsCommandList
│      │      │
│      │      └─ID3D12GraphicsCommandList1
│      │          │
│      │          └─ID3D12GraphicsCommandList2
│      │              │
│      │              └─ID3D12GraphicsCommandList3
│      │                  │
│      │                  └─ID3D12GraphicsCommandList4
│      │
│      ├─ID3D12Pageable
│      │  │
│      │  ├─ID3D12CommandAllocator
│      │  │
│      │  ├─ID3D12CommandQueue
│      │  │
│      │  ├─ID3D12CommandSignature
│      │  │
│      │  ├─ID3D12DescriptorHeap
│      │  │
│      │  ├─ID3D12Fence
│      │  │  │
│      │  │  └─ID3D12Fence1
│      │  │
│      │  ├─ID3D12Heap
│      │  │  │
│      │  │  └─ID3D12Heap1
│      │  │
│      │  ├─ID3D12MetaCommand
│      │  │
│      │  ├─ID3D12PipelineState
│      │  │
│      │  ├─ID3D12QueryHeap
│      │  │
│      │  ├─ID3D12Resource
│      │  │  │
│      │  │  └─ID3D12Resource1
│      │  │
│      │  └─ID3D12StateObject
│      │
│      ├─ID3D12LifetimeTracker
│      │
│      ├─ID3D12PipelineLibrary
│      │  │
│      │  └─ID3D12PipelineLibrary1
│      │
│      └─ID3D12ProtectedSession
│          │
│          └─ID3D12ProtectedResourceSession
│
├─ID3D12RootSignatureDeserializer
│
├─ID3D12Debug
│
├─ID3D12DebugDevice
│
├─ID3D12DebugCommandList
│
├─ID3D12DebugCommandQueue
│
├─ID3D12InfoQueue
│
├─ID3D12ShaderReflection
│
├─ID3D12LibraryReflection
│
├─ID3D12LifetimeOwner
│
├─ID3D12StateObjectProperties
│
├─ID3D12SwapChainAssistant
│
├─ID3D12Tools
│
├─ID3D12DeviceRemovedExtendedData
│
├─ID3D12DeviceRemovedExtendedDataSettings
│
└─ID3D12VersionedRootSignatureDeserializer

ID3D12ShaderReflectionType

ID3D12ShaderReflectionVariable

ID3D12ShaderReflectionConstantBuffer

ID3D12FunctionReflection

ID3D12FunctionParameterReflection

Direct3D11

Header Files:D3D11.h,D3D11_1.h,D3D11_2.h,D3D11_3.h,D3D11_4.h,D3D11Shader.h,D3D11SDKLayers.h,D3D11on12.h.


IUnknown
│
├─ID3D11Device
│  │
│  └─ID3D11Device1 (11.1)
│      │
│      └─ID3D11Device2 (11.2)
│          │
│          └─ID3D11Device3 (11.3)
│              │
│              └─ID3D11Device4 (11.4)
│                  │
│                  └─ID3D11Device5 (11.4)
│
├─ID3D11DeviceChild
│  │
│  ├─ID3D11DeviceContext
│  │  │
│  │  └─ID3D11DeviceContext1 (11.1)
│  │      │
│  │      └─ID3D11DeviceContext2 (11.2)
│  │          │
│  │          └─ID3D11DeviceContext3 (11.3)
│  │              │
│  │              └─ID3D11DeviceContext4 (11.3)
│  │
│  ├─ID3D11Resource
│  │  │
│  │  ├─ID3D11Buffer
│  │  │
│  │  ├─ID3D11Texture1D
│  │  │
│  │  ├─ID3D11Texture2D
│  │  │  │
│  │  │  └─ID3D11Texture2D1 (11.3)
│  │  │
│  │  └─ID3D11Texture3D
│  │      │
│  │      └─ID3D11Texture3D1 (11.3)
│  │
│  ├─ID3D11View
│  │  │
│  │  ├─ID3D11DepthStencilView
│  │  │
│  │  ├─ID3D11RenderTargetView
│  │  │  │
│  │  │  └─ID3D11RenderTargetView1 (11.3)
│  │  │
│  │  ├─ID3D11ShaderResourceView
│  │  │  │
│  │  │  └─ID3D11ShaderResourceView1 (11.3)
│  │  │
│  │  ├─ID3D11UnorderedAccessView
│  │  │  │
│  │  │  └─ID3D11UnorderedAccessView1 (11.3)
│  │  │
│  │  ├─ID3D11VideoProcessorInputView (Direct3D 11 Video API)
│  │  │
│  │  ├─ID3D11VideoProcessorOutputView (Direct3D 11 Video API)
│  │  │
│  │  └─ID3D11VideoDecoderOutputView (Direct3D 11 Video API)
│  │
│  ├─(Shader)
│  │  │
│  │  ├─ID3D11VertexShader
│  │  │
│  │  ├─ID3D11HullShader
│  │  │
│  │  ├─ID3D11DomainShader
│  │  │
│  │  ├─ID3D11GeometryShader
│  │  │
│  │  ├─ID3D11PixelShader
│  │  │
│  │  └─ID3D11ComputeShader
│  │
│  ├─ID3D11Asynchronous
│  │  │
│  │  ├─ID3D11Counter
│  │  │
│  │  └─ID3D11Query
│  │      │
│  │      ├─ID3D11Query1 (11.3)
│  │      │
│  │      └─ID3D11Predicate
│  │
│  ├─ID3D11ClassInstance
│  │
│  ├─ID3D11ClassLinkage
│  │
│  ├─ID3D11CommandList
│  │
│  ├─ID3D11DepthStencilState
│  │
│  ├─ID3D11Fence (11.3)
│  │
│  ├─ID3D11InputLayout
│  │
│  ├─ID3D11RasterizerState
│  │  │
│  │  └─ID3D11RasterizerState1 (11.1)
│  │      │
│  │      └─ID3D11RasterizerState2 (11.3)
│  │
│  ├─ID3D11BlendState
│  │  │
│  │  └─ID3D11BlendState1 (11.1)
│  │
│  ├─ID3D11SamplerState
│  │
│  ├─ID3DDeviceContextState (11.1)
│  │
│  ├─ID3D11VideoContext
│  │  │
│  │  └─ID3D11VideoContext1 (11.1)
│  │
│  ├─ID3D11VideoDecoder
│  │
│  ├─ID3D11VideoProcessor
│  │
│  ├─ID3D11VideoProcessorEnumerator
│  │  │
│  │  └─ID3D11VideoProcessorEnumerator1 (11.1)
│  │
│  ├─ID3D11AuthenticatedChannel
│  │
│  └─ID3D11CryptoSession
│
├─ID3D11VideoDevice
│  │
│  └─ID3D11VideoDevice1 (11.1)
│
├─ID3D11Multithread (11.4)
│
├─ID3D11Linker
│
├─ID3D11LinkingNode
│
├─ID3D11FunctionLinkingGraph
│
├─ID3D11Module
│
├─ID3D11ModuleInstance
│
├─ID3D11LibraryReflection
│
├─ID3D11ShaderReflection
│
├─ID3DUserDefinedAnnotation (11.1)
│
├─ID3D11Debug
│
├─ID3D11InfoQueue
│
├─ID3D11TracingDevice
│
├─ID3D11RefTrackingOptions
│
├─ID3D11RefDefaultTrackingOptions
│
└─ID3D11SwitchToRef (Not supported in D3D11)


■D3D11on12

IUnknown
│
└─ID3D11On12Device
    │
    └─ID3D11On12Device1

Direct3D10

Header Files:D3D10.h,D3D10effect.h,d3d10sdklayers.h,D3D10shader.h,D3D10_1.h,D3D10_1shader.h, D3Dcommon.h.


IUnknown
│
├─ID3D10Device
│  │
│  └─ID3D10Device1 (10.1)
│
├─ID3D10DeviceChild
│  │
│  ├─ID3D10Resource
│  │  │
│  │  ├─ID3D10Buffer
│  │  │
│  │  ├─ID3D10Texture1D
│  │  │
│  │  ├─ID3D10Texture2D
│  │  │
│  │  └─ID3D10Texture3D
│  │
│  ├─(Shader)
│  │  │
│  │  ├─ID3D10VertexShader
│  │  │
│  │  ├─ID3D10GeometryShader
│  │  │
│  │  └─ID3D10PixelShader
│  │
│  ├─ID3D10View
│  │  │
│  │  ├─ID3D10DepthStencilView
│  │  │
│  │  ├─ID3D10RenderTargetView
│  │  │
│  │  └─ID3D10ShaderResourceView
│  │      │
│  │      └─ID3D10ShaderResourceView1 (10.1)
│  │
│  ├─ID3D10Asynchronous
│  │  │
│  │  ├─ID3D10Counter
│  │  │
│  │  └─ID3D10Query
│  │      │
│  │      └─ID3D10Predicate
│  │
│  ├─ID3D10InputLayout
│  │
│  ├─ID3D10RasterizerState
│  │
│  ├─ID3D10DepthStencilState
│  │
│  ├─ID3D10SamplerState
│  │
│  └─ID3D10BlendState
│      │
│      └─ID3D10BlendState1 (10.1)
│
├─ID3D10StateBlock
│
├─ID3D10Blob
│
├─ID3D10Effect
│
├─ID3D10EffectPool
│
├─ID3D10InfoQueue
│
├─ID3D10Multithread
│
├─ID3D10ShaderReflection
│
├─ID3D10ShaderReflection1 (10.1)
│
├─ID3D10SwitchToRef
│
└─ID3D10Debug


ID3D10EffectTechnique

ID3D10EffectPass

ID3D10EffectType


(Effect Reflection Interfaces)

ID3D10EffectVariable
│
├─ID3D10EffectBlendVariable
│
├─ID3D10EffectConstantBuffer
│
├─ID3D10EffectDepthStencilVariable
│
├─ID3D10EffectDepthStencilViewVariable
│
├─ID3D10EffectMatrixVariable
│
├─ID3D10EffectRasterizerVariable
│
├─ID3D10EffectRenderTargetViewVariable
│
├─ID3D10EffectSamplerVariable
│
├─ID3D10EffectScalarVariable
│
├─ID3D10EffectShaderResourceVariable
│
├─ID3D10EffectShaderVariable
│
├─ID3D10EffectStringVariable
│
└─ID3D10EffectVectorVariable

D3DX10,D3DX11

Header Files:D3DX10core.h,D3DX10math.h,D3DX10mesh.h,D3DX11core.h.


IUnknown
│
├─ID3DX10Font
│
├─ID3DX10Mesh
│
├─ID3DX10MeshBuffer
│
├─ID3DX10SkinInfo
│
├─ID3DX10Sprite
│
├─ID3DX10ThreadPump
│
├─ID3DX11ThreadPump
│
└─ID3DXMatrixStack

D2D1

Header Files:D2D1.h,D2D1EffectAuthor.h,D2D1_1.h,D2D1_2.h,D2D1_3.h. (Windows SDK 10.0.10240.0 から抽出)


IUnknown
│
├─ID2D1Factory
│  │
│  └─ID2D1Factory1 (1.1)
│      │
│      └─ID2D1Factory2 (1.2)
│          │
│          └─ID2D1Factory3 (1.3)
│              │
│              └─ID2D1Factory4 (1.3)
│
├─ID2D1Resource
│  │
│  ├─ID2D1Device (1.1)
│  │  │
│  │  └─ID2D1Device1 (1.2)
│  │      │
│  │      └─ID2D1Device2 (1.3)
│  │
│  ├─ID2D1RenderTarget
│  │  │
│  │  ├─ID2D1HwndRenderTarget
│  │  │
│  │  ├─ID2D1DCRenderTarget
│  │  │
│  │  ├─ID2D1BitmapRenderTarget
│  │  │
│  │  └─ID2D1DeviceContext (1.1)
│  │      │
│  │      └─ID2D1DeviceContext1 (1.2)
│  │          │
│  │          └─ID2D1DeviceContext2 (1.3)
│  │
│  ├─(Brush 関連インタフェース)
│  │  │
│  │  ├─ID2D1Brush
│  │  │  │
│  │  │  ├─ID2D1BitmapBrush
│  │  │  │  │
│  │  │  │  └─ID2D1BitmapBrush1 (1.1)
│  │  │  │
│  │  │  ├─ID2D1ImageBrush (1.1)
│  │  │  │
│  │  │  ├─ID2D1LinearGradientBrush
│  │  │  │
│  │  │  ├─ID2D1RadialGradientBrush
│  │  │  │
│  │  │  └─ID2D1SolidColorBrush
│  │  │
│  │  └─ID2D1GradientStopCollection
│  │      │
│  │      └─ID2D1GradientStopCollection1 (1.1)
│  │
│  ├─ID2D1Geometry
│  │  │
│  │  ├─(単純図形 Simple Geometry)
│  │  │  │
│  │  │  ├─ID2D1RectangleGeometry
│  │  │  │
│  │  │  ├─ID2D1RoundedRectangleGeometry
│  │  │  │
│  │  │  └─ID2D1EllipseGeometry
│  │  │
│  │  ├─(パス図形 Path Geometry)
│  │  │  │
│  │  │  └─ID2D1PathGeometry
│  │  │      │
│  │  │      └─ID2D1PathGeometry1 (1.1)
│  │  │
│  │  └─(複合図形 Composite Geometry)
│  │      │
│  │      ├─ID2D1TransformedGeometry
│  │      │
│  │      └─ID2D1GeometryGroup
│  │
│  ├─ID2D1Layer
│  │
│  ├─ID2D1Mesh
│  │
│  ├─ID2D1Image
│  │  │
│  │  ├─ID2D1Bitmap
│  │  │  │
│  │  │  └─ID2D1Bitmap1 (1.1)
│  │  │
│  │  ├─ID2D1ImageSource (1.3)
│  │  │  │
│  │  │  └─ID2D1ImageSourceFromWic (1.3)
│  │  │
│  │  ├─ID2D1TransformedImageSource (1.3)
│  │  │
│  │  └─ID2D1CommandList (1.1)
│  │
│  ├─ID2D1StrokeStyle
│  │  │
│  │  └─ID2D1StrokeStyle1 (1.1)
│  │
│  ├─ID2D1DrawingStateBlock
│  │  │
│  │  └─ID2D1DrawingStateBlock1 (1.1)
│  │
│  ├─ID2D1GdiMetafile (1.1)
│  │  │
│  │  └─ID2D1GdiMetafile1 (1.3)
│  │
│  ├─ID2D1ColorContext (1.1)
│  │
│  ├─ID2D1GeometryRealization (1.2)
│  │
│  ├─ID2D1Ink (1.3)
│  │
│  ├─ID2D1InkStyle (1.3)
│  │
│  ├─ID2D1GradientMesh (1.3)
│  │
│  └─ID2D1LookupTable3D (1.3)
│
├─ID2D1GdiInteropRenderTarget
│
├─ID2D1SimplifiedGeometrySink
│  │
│  └─ID2D1GeometrySink
│
├─ID2D1TessellationSink
│
├─ID2D1TransformGraph (1.1)
│
├─ID2D1TransformNode (1.1)
│  │
│  ├─ID2D1BoundsAdjustmentTransform (1.1)
│  │
│  ├─ID2D1ConcreteTransform (1.1)
│  │  │
│  │  ├─ID2D1BlendTransform (1.1)
│  │  │
│  │  └─ID2D1BorderTransform (1.1)
│  │
│  ├─ID2D1OffsetTransform (1.1)
│  │
│  └─ID2D1Transform (1.1)
│      │
│      ├─ID2D1ComputeTransform (1.1)
│      │
│      ├─ID2D1DrawTransform (1.1)
│      │
│      └─ID2D1SourceTransform (1.1)
│
├─ID2D1AnalysisTransform (1.1)
│
├─ID2D1ResourceTexture (1.1)
│
├─ID2D1CommandSink (1.1)
│  │
│  └─ID2D1CommandSink1 (1.2)
│      │
│      └─ID2D1CommandSink2 (1.3)
│
├─ID2D1EffectContext (1.1)
│
├─ID2D1EffectImpl (1.1)
│
├─ID2D1GdiMetafileSink (1.1)
│  │
│  └─ID2D1GdiMetafileSink1 (1.3)
│
├─ID2D1Multithread (1.1)
│
├─ID2D1PrintControl (1.1)
│
├─ID2D1Properties (1.1)
│  │
│  └─ID2D1Effect (1.1)
│
├─ID2D1RenderInfo (1.1)
│  │
│  ├─ID2D1ComputeInfo (1.1)
│  │
│  └─ID2D1DrawInfo (1.1)
│
└─ID2D1VertexBuffer (1.1)

DirectWrite

Header Files:dwrite.h,dwrite_1.h,dwrite_2.h,dwrite_3.h. (Windows SDK 10.0.10240.0 から抽出)


IUnknown
│
├─IDWriteFactory
│  │
│  └─IDWriteFactory1 (1.1)
│      │
│      └─IDWriteFactory2 (1.2)
│          │
│          └─IDWriteFactory3 (1.3)
│
├─IDWriteBitmapRenderTarget
│  │
│  └─IDWriteBitmapRenderTarget1 (1.1)
│
├─IDWriteFont
│  │
│  └─IDWriteFont1 (1.1)
│      │
│      └─IDWriteFont2 (1.2)
│          │
│          └─IDWriteFont3 (1.3)
│
├─IDWriteFontCollection
│  │
│  └─IDWriteFontCollection1 (1.3)
│
├─IDWriteFontCollectionLoader
│
├─IDWriteFontFace
│  │
│  └─IDWriteFontFace1 (1.1)
│      │
│      └─IDWriteFontFace2 (1.2)
│          │
│          └─IDWriteFontFace3 (1.3)
│
├─IDWriteFontFile
│
├─IDWriteFontFileEnumerator
│
├─IDWriteFontFileLoader
│  │
│  └─IDWriteLocalFontFileLoader
│
├─IDWriteFontFileStream
│
├─IDWriteFontList
│  │
│  ├─IDWriteFontList1 (1.3)
│  │
│  └─IDWriteFontFamily
│      │
│      └─IDWriteFontFamily1 (1.3)
│
├─IDWriteGdiInterop
│  │
│  └─IDWriteGdiInterop1 (1.3)
│
├─IDWriteGeometrySink (=ID2D1SimplifiedGeometrySink)
│
├─IDWriteGlyphRunAnalysis
│
├─IDWriteInlineObject
│
├─IDWriteLocalizedStrings
│
├─IDWriteNumberSubstitution
│
├─IDWritePixelSnapping
│  │
│  └─IDWriteTextRenderer
│      │
│      └─IDWriteTextRenderer1 (1.2)
│
├─IDWriteRenderingParams
│  │
│  └─IDWriteRenderingParams1 (1.1)
│      │
│      └─IDWriteRenderingParams2 (1.2)
│          │
│          └─IDWriteRenderingParams3 (1.3)
│
├─IDWriteTextAnalysisSink
│  │
│  └─IDWriteTextAnalysisSink1 (1.1)
│
├─IDWriteTextAnalysisSource
│  │
│  └─IDWriteTextAnalysisSource1 (1.1)
│
├─IDWriteTextAnalyzer
│  │
│  └─IDWriteTextAnalyzer1 (1.1)
│      │
│      └─IDWriteTextAnalyzer2 (1.2)
│
├─IDWriteTextFormat
│  │
│  ├─IDWriteTextFormat1 (1.2)
│  │  │
│  │  └─IDWriteTextFormat2 (1.3)
│  │
│  └─IDWriteTextLayout
│      │
│      └─IDWriteTextLayout1 (1.1)
│          │
│          └─IDWriteTextLayout2 (1.2)
│              │
│              └─IDWriteTextLayout3 (1.3)
│
├─IDWriteTypography
│
├─IDWriteFontFallback (1.2)
│
├─IDWriteFontFallbackBuilder (1.2)
│
├─IDWriteColorGlyphRunEnumerator (1.2)
│
├─IDWriteFontSet (1.3)
│
├─IDWriteFontSetBuilder (1.3)
│
├─IDWriteFontFaceReference (1.3)
│
├─IDWriteFontDownloadListener (1.3)
│
├─IDWriteFontDownloadQueue (1.3)
│
└─IDWriteStringList (1.3)

WIC (Windows Imaging Component)

Header Files:WinCodec.h,WinCodecSDK.h,(ObjIdlBase.h,ObjIdl.h).


IUnknown
│
├─IPersist
│  │
│  └─IPersistStream
│      │
│      └─IWICPersistStream
│
├─ISequentialStream
│  │
│  └─IStream
│      │
│      └─IWICStream
│
├─IWICBitmapCodecProgressNotification
│
├─IWICBitmapDecoder
│
├─IWICBitmapEncoder
│
├─IWICBitmapFrameEncode
│
├─IWICBitmapLock
│
├─IWICBitmapSource
│  │
│  ├─IWICBitmap
│  │
│  ├─IWICBitmapClipper
│  │
│  ├─IWICBitmapFlipRotator
│  │
│  ├─IWICBitmapFrameDecode
│  │  │
│  │  └─IWICDevelopRaw
│  │
│  ├─IWICBitmapScaler
│  │
│  ├─IWICColorTransform
│  │
│  └─IWICFormatConverter
│
├─IWICBitmapSourceTransform
│
├─IWICColorContext
│
├─IWICComponentInfo
│  │
│  ├─IWICBitmapCodecInfo
│  │  │
│  │  ├─IWICBitmapDecoderInfo
│  │  │
│  │  └─IWICBitmapEncoderInfo
│  │
│  ├─IWICFormatConverterInfo
│  │
│  ├─IWICMetadataHandlerInfo
│  │  │
│  │  ├─IWICMetadataReaderInfo
│  │  │
│  │  └─IWICMetadataWriterInfo
│  │
│  └─IWICPixelFormatInfo
│      │
│      └─IWICPixelFormatInfo2
│
├─IWICDevelopRawNotificationCallback
│
├─IWICEnumMetadataItem
│
├─IWICFastMetadataEncoder
│
├─IWICImageEncoder
│
├─IWICImagingFactory
│  │
│  ├─IWICComponentFactory
│  │
│  └─IWICImagingFactory2
│
├─IWICMetadataBlockReader
│  │
│  └─IWICMetadataBlockWriter
│
├─IWICMetadataQueryReader
│  │
│  └─IWICMetadataQueryWriter
│
├─IWICMetadataReader
│  │
│  └─IWICMetadataWriter
│
├─IWICPalette
│
├─IWICProgressCallback
│
├─IWICProgressiveLevelControl
│
└─IWICStreamProvider

Graphics Pipeline

作成途中

グラフィックス・パイプラインの構成要素

参考:グラフィックス・パイプラインのブロック図 (MSDN)

1. 入力組立段 (Input Assembler, IA)

注意:「入力組立段」は当サイトの勝手訳語
(電子回路用語の入力段 (input stage) から.「段」はパイプライン処理の一つの処理要素を意味する.)

IA はユーザが与えたバッファからプリミティブデータ (点,線分,三角形) を読み取り,パイプラインの後続段が使用するプリミティブを組み立てる (assemble). 同時に,シェーダ効率化に役立てるため semantics (system-generated values) を割り当てる.

  • IA は頂点データからさまざまな種類のプリミティブ (線分リスト (line lists),三角形ストリップ (triangle strips),隣接情報付プリミティブ (primitives with adjacency) など) を組み立てることができる.
  • 隣接情報 (adjacency information) は形状シェーダ (GS) でのみ使用できる.例えば隣接情報付三角形を GS に与える場合,各三角形は自分自身の3つの頂点と,各頂点に隣接する3つの頂点を持つ ().

■参考

2. 頂点シェーダ (Vertex Shader, VS)

単一の頂点データの処理 (座標変換,スキニング,モーフィング,頂点ごとの照明計算など) を行う.

  • VS は常に必須.頂点データを処理する必要がない場合には,pass-through (入力データをそのまま出力する,丸投げ) VS を定義する必要がある.
  • 入出力データのサイズ
    • 最小:1個のスカラー変数 (4バイト)
    • 最大:16個の (32bit×4成分) ベクトル (合計256バイト)
  • 入力として SV_VertexID および SV_InstanceID を使用可能.
  • VS はすべての頂点について実行される.隣接情報付プリミティブトポロジーの場合は, 隣接頂点についても実行される.VS の実行回数はパイプライン統計量 VSInvocations として取得できる.

■参考

3. ハルシェーダ (Hull Shader, HS)

入力パッチ (四角形 (quad),三角形 (triangle),線分 (line)) ごとに呼び出され,それに対応する形状パッチ (geometry patch) およびパッチ定数 (patch constants) を生成する.

  1. 入力:入力制御点 (input control points)
  2. 処理:
    • HS コードの先頭で,TS に必要な状態 (制御点の数,パッチの種類,分割方法など) を宣言する.
    • 制御点変換 (control-point phase):
      低次の表面 (low-order surface) を定義する入力制御点をパッチの制御点に変換する.
      制御点ごとに1回ずつ実行される.並列処理される可能性がある.
      出力制御点は SV_OutputControlPointID で識別される.
    • パッチ定数生成 (patch-constant phase):
      TS および DS に渡すべき,テセレーション因子とパッチごとのデータ (パッチ定数) を計算する.
      後者は並列に実行される可能性がある.
      入力制御点および出力制御点のデータを読むことができる.
  3. 出力:
    • テセレーション因子 (tessellation factors)
      • パッチを何分割するかを決める.整数でなくてもいいらしい.(参考:テッセレーション (Wikipedia))
      • 辺テセレーション因子 (SV_TessFactor) と 内部テセレーション因子 (SV_InsideTessFactor) がある.
        これらは TS および DS が使用可能.
      • 辺テセレーション因子が0以下または NaN の場合,パッチはカリングされる (出力されない).
        この場合 TS は実行されるかもしれないが,DS は実行されず,目に見える出力は生成されない.
    • 出力制御点
    • パッチ定数 … DS が使用可能.

■参考

4. テセレータ (Tessellator, TS)

パッチ領域 (domain:四角,三角形,線分) を多くの小さなオブジェクト (三角形,線分,点) に細分割する.

  • 正規化座標系の基準領域 (canonical domain) を分割する.
    • 入力パッチが四角形の場合:基準領域は単位正方形 { (u, v) | u, v∈[0, 1] }.
    • 入力パッチが三角形の場合:
  • HS をパイプラインにバインドすることにより初期化される. (How To: Initialize the Tessellator Stage)
  • 入力:
    • テセレーション因子 (tessellation factors)
    • 分割種別 (type of partitioning)
  • 処理:
    1. 第1段階:32ビット浮動小数演算を用いてテセレーション因子を処理する.
      (丸め,非常に小さい値の処理,複数因子の縮約および結合.)
    2. 第2段階:指定された分割方法に基づき,点またはトポロジーのリストを生成する.
      これは TS の核となる処理であり,固定小数点演算 (小数部16ビット) を使用する.
      固定小数点演算は十分な精度を保ったままハードウェアによる高速化が可能である.

■参考

5. 領域シェーダ (Domain Shader, DS)

細分割された出力パッチ内の頂点データを計算する.TS の出力点ごとに1回ずつ呼び出される.

  • 入力:
    • 領域属性 (domain attribute):パッチの種類 (四角形パッチ (quad patch),三角形パッチ (tri patch),等値線 (isoline))
    • 領域の位置座標 (SV_DomainLocation)
      • 四角形パッチの場合:基準領域 (単位正方形) 内の UV 座標 (float2).
      • 三角形パッチの場合:重心座標 UVW (barycentric coordinates, float3).
      • 等値線の場合:float2 (定義不明).
    • その他:HS が出力したユーザ定義データ (パッチ制御点,パッチ定数など).
  • 処理:
    1. DS コードの先頭で,領域属性を宣言する.

■参考

6. 形状シェーダ (Geometry Shader, GS)

VS が単一の頂点データを処理するのに対し,GS は単一のプリミティブ (三角形 (3頂点),線分 (2頂点),点 (1頂点)) を処理する.各プリミティブデータは隣接するプリミティブの頂点データを入力として含むことがある ().

  • 入力として SV_PrimitiveID を使用可能.必要ならばこれを用いてプリミティブごとのデータを取得または計算できる.
  • 指定されたトポロジー (三角形ストリップ,線分ストリップ (折れ線),点リストのいずれか) を構成する頂点群を出力できる.GS の呼び出しごとに出力されるプリミティブの数は自由に変えられるが,出力される最大頂点数は静的に宣言しておかなければならない.GS は任意の長さのストリップを出力でき,HLSL の RestartStrip() を用いて新しいストリップを作成することができる.
  • GS は次の一方または両方に出力することができる.
    • RS
    • メモリ内の頂点バッファ (SO 経由).RS に出力されるのと全く同じ形式 (点/線分/三角形リスト) に展開される.

■参考

7. ストリーム出力段 (Stream Output, SO)
8. ラスタライザ (Rasterizer, RS)
9. ピクセルシェーダ (Pixel Shader, PS)
10. 出力合成段 (Output Merger, OM)

注意:「出力合成段」は当サイトの勝手訳語
(電子回路用語の「出力段 (output stage)」) から.段 (stage) はパイプライン処理の一つの処理要素を意味する.)

11. 計算シェーダ (Compute Shader, CS)


■参考




Practical Rendering and Computation with Direct3D 11
Jason Zink Matt Pettineo Jack Hoxley
A K Peters/CRC Press
売り上げランキング: 71,070

「なか見!検索」で一部閲覧可能.Google Books では (画質はもっと悪いが) 第3章 "The Rendering Pipeline" の前半が読める.

GPU アーキテクチャやパイプラインの動作についてかなり詳しく書いているようなので, 立ち読みして良さそうならば購入予定.




SHADER GURU with Direct3D10/11(シェーダーを完全にマスターできる本)
鎌田 茂雄
Northbrain
売り上げランキング: 126,941

D3D10/D3D11 Device Setters/Getters

D3D11 (ID3D11DeviceID3D11DeviceContext)


D3D10 (ID3D10Device)

2014/06/15(日) 作成

HLSL (High Level Shading Language)

Semantics (D3D9,D3D10)

頂点シェーダ入力

名前
(VCの型)
説明
POSITION[n] float4
(float[4])
頂点座標 (vertex position)
POSITIONT float4
(float[4])
変換済頂点座標 (transformed vertex position)
NORMAL[n] float4
(float[4])
法線ベクトル (normal vector)
BINORMAL[n] float4
(float[4])
従法線ベクトル (binormal)
TANGENT[n] float4
(float[4])
接ベクトル (tangent)
PSIZE[n] float 点の大きさ (point size)
COLOR[n] float4
(float[4])
拡散色 (diffuse) または鏡面色 (specular)
TEXCOORD[n] float4
(float[4])
テクスチャ座標 (texture coordinates)
BLENDINDICES[n] uint
(DWORD)
頂点ブレンドのインデックス (blend indices)
BLENDWEIGHT[n] float 頂点ブレンドの重み (blend weight)

頂点シェーダ出力

名前
(VCの型)
説明
POSITION[n] float4
(float[4])
頂点の同次座標 (position of a vertex in homogeneous space)
COLOR[n] float4
(float[4])
拡散色 (diffuse) または鏡面色 (specular)
TEXCOORD[n] float4
(float[4])
テクスチャ座標 (texture coordinates)
PSIZE[n] float 点の大きさ (point size)
FOG float 頂点フォグ (vertex fog)
TESSFACTOR[n] float テセレーション因子 (tessellation factor)

ピクセルシェーダ入力

名前
(VCの型)
説明
COLOR[n] float4
(float[4])
拡散色 (diffuse) または鏡面色 (specular)
TEXCOORD[n] float4
(float[4])
テクスチャ座標 (texture coordinates)
VPOS float2
(float[2])
スクリーン上の画素座標 (x, y).
VFACE float プリミティブの面の表と裏のどちらが見えているのかを示す. 正ならば表,負ならば裏.
(たぶん画面に投影した後の符号付面積.(未確認の憶測))

ピクセルシェーダ出力

名前
(VCの型)
説明
COLOR[n] float4
(float[4])
出力色 (output color)
DEPTH[n] float 出力深度 (output depth)

System-Value Semantics (D3D10~)

作成途中

原則として,パイプライン内での出現順に並べている.

名前
(VCの型)
説明 パイプライン内での入出力
IA VS HS TS DS GS RS PS OM CS
SV_VertexID uint
(DWORD)
IAがプリミティブを処理する時に割り当てる頂点ID. デフォルト値は0.Draw 命令ごとに1増える.232-1 を超えると0に戻る. O I - - - - I - - -
SV_InstanceID uint
(DWORD)
IAが自動生成するインスタンスID.デフォルト値は0.Indexed draw 命令ごとに1増える.その他の描画命令では変化しない.232-1 を超えると0に戻る. O I - - - - I - - -
SV_Position float4
(float[4])
・VS/GS入出力,RS入力の場合:頂点の位置座標. O I/O - - - I/O I - - -
・RS出力,PS入力の場合:画素の位置座標を表す.整数値は画素の境界,小数部が0.5ならば画素の中心 (参考).補間モデルは Linear­No­Perspective と Linear­No­Perspective­Centroid のいずれかを選択可能.後者は MSAA 処理時に,重心位置の xyzw 座標を使用する. - - - - - - O I - -
SV_ClipDistance[n] float クリップ平面 (clip plane) までの符号付距離.この値が非負のときに限りラスタ化される. 頂点データの一つ以上の要素を SV_Clip­Distance として宣言することにより, 複数のクリップ平面を同時に実現することができる. SV_Clip­Distance と SV_Cull­Distance の総数は D3D11_CLIP_OR_CULL_DISTANCE_COUNT 以下. - O - - - O I - - -
SV_CullDistance[n] float カリング平面 (cull plane) までの符号付距離. プリミティブのすべての頂点のカリング距離が負ならば,そのプリミティブはラスタ化されない. 頂点データの一つ以上の要素を SV_Cull­Distance として宣言することにより, 複数のカリング平面を同時に実現することができる. SV_Clip­Distance と SV_Cull­Distance の総数は D3D11_CLIP_OR_CULL_DISTANCE_COUNT 以下. - O - - - O I - - -
SV_TessFactor float[2|3|4] (辺)テセレーション因子 (tesselation factor).曲面パッチ (patch surface) の各辺に対するテセレーション量 (tessellation amount).分割数らしいので,1の場合はテセレーション不要. 0の場合はプリミティブがカリングされる.
  • 等値線 (isoline):float[2]
    • [0]:線密度 (line-density)
    • [1]:詳細度 (line-detail)
  • 三角形パッチ (tri patch):float[3]
    • [0]:u=0 の辺のテセレーション因子
    • [1]:v=0 の辺のテセレーション因子
    • [2]:w=0 の辺のテセレーション因子
  • 四角形パッチ (quad patch):float[4]
    • [0]:u=0 (パッチの左側) の辺のテセレーション因子
    • [1]:v=0 (上側) の辺の因子
    • [2]:u=1 (右側) の辺の因子
    • [3]:v=1 (下側) の辺の因子
    • 辺の順序は u=0 の辺から始めて右回り.
- - O I I - - - - -
SV_InsideTessFactor float|float[2] 内部テセレーション因子.曲面パッチの内部領域のテセレーション量.
  • 三角形パッチ:float.
  • 四角形パッチ:float[2].
  • 等値線:使用しない (内部領域が存在しないので).
- - O I I - - - - -
SV_DomainLocation float2|3
(float[2|3])
領域 (domain) 内での現在計算 (evaluate) 中の点の,パッチ (hull) 上での位置.
  • 三角形パッチ (tri patch):float[3].
  • 四角形パッチ (quad patch):float[2].
  • 等値線 (isoline):float[2].
- - - O I - - - - -
SV_OutputControlPointID uint
(DWORD)
HSが処理中の制御点 (control point) のID. - - O I? I? - - - - -
SV_GSInstanceID uint
(DWORD)
GSのインスタンスID. O - - - - I I - - -
SV_PrimitiveID uint
(DWORD)
IAが自動生成するプリミティブID. 新しいインスタンスの描画を開始するたびに0にリセットされ,Indexed draw 命令ごとに1増える.その他の描画命令では変化しない.232-1 を超えると0に戻る. O - - - - I I I - -
SV_ViewportArrayIndex uint
(DWORD)
ID3D11DeviceContext::RSSetViewports() で設定したViewport配列のインデックス.現在のプリミティブは指定されたViewport向けに座標変換・クリップされた後でRSに渡される.プリミティブが複数の頂点からなる場合,最初の頂点のSV_Viewport­Array­Indexが採用される. - - - - - O I - - -
SV_RenderTargetArrayIndex uint
(DWORD)
描画先 (render target) 配列のインデックス (描画先が配列リソース (D3D11_{RTV,DSV}_TEXTURE[12]D*_ARRAY(?)) の場合に限り有効).深度ステンシルビューの配列スライスを選択するのにも用いられる.プリミティブが複数の頂点からなる場合,最初の頂点のSV_Render­Target­Array­Indexが採用される. - - - - - O I? I/O - -
SV_IsFrontFace bool
(BOOL)
線分および点では真. - - - - - - I I - -
SV_Target[n]
(0≦n≦7)
float PSが描画先 (render target) に書き込む画素値.インデックスは書き込む描画先を指定する. - - - - - - I/O O - -
SV_Depth float 深度バッファデータ.(0(近)~1(遠)のはず.) - - - - - - I/O O - -
SV_GroupID uint3
(DWORD[3])

- - - - - - - - - I
SV_GroupIndex uint
(DWORD)

- - - - - - - - - I
SV_DispatchThreadID uint3
(DWORD[3])

- - - - - - - - - I
SV_GroupThreadID uint3
(DWORD[3])

- - - - - - - - - I
SV_SampleIndex uint
(DWORD)
サンプリング頻度インデックス. - - - - - - I/O - - -
SV_Coverage uint
(DWORD)
参考 - - - - - - I/O
(*1)
- - -
名前
(VCの型)
説明 IA VS HS TS DS GS RS PS OM CS
パイプライン内での入出力

(*1) 出力は ps_4_1 以降,入力は ps_5_0 以降.


アンチエイリアシング (Antialiasing)

MSAA (MultiSample Anti-Aliasing)

サンプル "Multi-Sample Anti-Aliasing in Direct 2D" を参考に,MSAA を使用する方法をまとめてみた.

D3D10.x/11.0 での MSAA 使用方法

  1. ID3D1xDevice 作成後
    ID3D1xDevice::CheckMultiSampleQualityLevels() を用いて,そのデバイスでの MSAA のサポート状況を調べる.
    (所望のフォーマットとサンプル数を指定して,返された画質レベル数 (NumQualityLevels) が1以上か否かを判定する.)
    • D3D1x がサポートしているサンプル数の最大値は D3D1x_MAX_MULTISAMPLE_SAMPLE_COUNT (=32).
    • Feature level 10.1 のデバイスは R32G32B32A32,R32G32B32 以外の全描画先フォーマットについて 4x MSAA をサポートする.
    • Feature level 11.0 のデバイスは全描画先フォーマットについて 4x MSAA をサポートし,R32G32B32A32 以外の全描画先フォーマットについて 8x MSAA をサポートする.
    • 参考
      • ID3D1xDevice::CheckMultisampleQualityLevels method (D3D10 / D3D11)
  2. IDXGISwapChain 作成時
    DXGI_SWAP_CHAIN_DESC::SampleDesc.{Count,Quality} にサンプル数と画質レベル (0 ~ NumQualityLevels-1) を指定する.
    • 画質レベルは大きいほど高画質・低速になるが,その詳細な定義はハードウェア依存.
    • D3D11.1 以降は IDXGIFactory::CreateSwapChain() が非推奨なので変更が必要?
  3. ID3D1xRenderTargetView 作成時
    ID3D1xDevice::CreateRenderTargetView() で D3D1x_RENDER_TARGET_VIEW_DESC を省略する場合は何もする必要なし.指定する場合,ViewDimension メンバの値は D3D1x_RTV_DIMENSION_TEXTURE2DMS とする (MSAA を使用しない場合は D3D1x_RTV_DIMENSION_TEXTURE2D).
    • 参考
      • ID3D1xDevice::CreateRenderTargetView method (D3D10 / D3D11)
      • D3D1x_RENDER_TARGET_VIEW_DESC structure (D3D10 / D3D11)
      • D3D1x_RTV_DIMENSION enumeration (D3D10 / D3D11)
  4. ID3D1xRasterizerState 作成時
    描画先が MSAA 対応 (つまりサンプル数>1) ならば,D3D1x_RASTERIZER_DESC の MultisampleEnable および AntialiasedLineEnable メンバで線分描画の MSAA アルゴリズムを選択できる.
    if(MultisampleEnable) {
      四角形線分 (quadrilateral line) AA アルゴリズムを使用する.
      (線分を四角形として描画するという意味らしい.)
    } else if(FeatureLevel ≦ 10.0) {
      (たとえ MSAA 描画先であっても) すべての点,線分,三角形を AA なしで描画する.
    } else { // FeatureLevel≧10.1 (線分描画にのみ影響し,点や三角形には影響しない.)
      if(AntialiasedLineEnable) {
        線分描画に alpha line AA アルゴリズムを使用する.
        (線分画素のアルファ成分を調整して AA を行うという意味か?)
      } else {
        線分描画に AA を使用しない.
      }
    }
    
    • 参考
      • ID3D1xDevice::CreateRasterizerState method (D3D10 / D3D11)
      • D3D1x_RASTERIZER_DESC structure (D3D10 / D3D11)
        FeatureLevel による動作の違いを避けるため,線分を描画しない場合や線分を四角形として描画してもかまわない場合は,常に MultisampleEnable=TRUE としておくことを推奨する.
  5. マルチパスレンダリングにおいて MSAA 描画結果を次のパスの入力として使用する場合
    ID3D10Device::ResolveSubresource() または ID3D11DeviceContext::ResolveSubresource() を用いて,マルチサンプルリソースをシングルサンプルリソースにコピーする.

D2D1 でのアンチエイリアシングの使用方法

参考


参考図書

SHADER GURU with Direct3D10/11(シェーダーを完全にマスターできる本)
鎌田 茂雄
Northbrain
売り上げランキング: 126,941



MESH GURU with Direct3D10/11 (Direct3D10 Direct3D11でメッシュを極めろ!)
鎌田 茂雄
Northbrain
売り上げランキング: 260,820



DirectX11 3Dプログラミング―「Windows Vista/7」&「Visual Studio 2010」対応 (I・O BOOKS)



DirectX10/11プログラミング (ネイティブDirectX10/11の入門から応用まで)
鎌田 茂雄
Northbrain
売り上げランキング: 279,232




サイト内関連ページ


外部へのリンク


更新履歴

  1. 2012/10/18(木) 作成開始
  2. 2012/10/21(日) 準備中だけどこっそり公開 (URL 登録).
  3. 2012/11/07(水) D2D1 追加.
  4. 2012/11/13(火) HLSL Semantics 追加.
  5. 2013/01/05(土) Direct3D11 のインタフェース階層に D3D11_1.h の分を追加.
  6. 2013/01/26(土) DirectWrite のインタフェース階層を追加.
  7. 2013/09/07(土) WIC のインタフェース階層を追加.
  8. 2013/09/15(日)
  9. 2013/10/21(月) SV_Position の行を頂点座標と画素座標に分割.
  10. 2014/04/14(月) Graphics Pipeline を追加開始.
  11. 2014/04/19(土)「アンチエイリアシング (Antialiasing)」を追加.
  12. 2014/04/20(日) 重心座標について追記.
  13. 2014/05/13(火)「D2D1 でのアンチエイリアシングの使用方法」を追加.
  14. 2014/05/31(土) Direct3D10 のインタフェース階層に ID3D10Effect* を追加.
  15. 2014/06/15(日)「D3D10/D3D11 Device Setters/Getters」を追加.
  16. 2014/07/01(火) 「D3DCompiler_xx.dll と SDK バージョンの対応表」を追加.
  17. 2014/08/10(日) Direct3D11 のインタフェース階層Direct3D 11 Video API の分を追加.
  18. 2015/01/19(月) "Practical Rendering and Computation with Direct3D 11" が良さそうなのでリンクを追加.
  19. 2015/04/11(土) Direct3D12 関連リンク集に Intel Developer Zone の記事および日本語訳を追加.
  20. 2015/06/28(日)
  21. 2015/08/09(日) リンクを追加.
  22. 2015/08/30(日)
  23. 2015/08/31(月) D3D と D2D の相互運用に関するリンクを追加.
  24. 2016/07/15(金) DXGI 1.4,1.5 を追加中.
  25. 2016/07/31(日)「D3D10/D3D11 Device Setters/Getters」各表のヘッダ書式を少し変更.
  26. 2019/07/08(月) D3D11.4 を追加.
  27. 2019/07/09(火) DXGI1.6 を追加.
  28. 2020/01/16(木) D3D12 の新しいインタフェースへのリンクを追加.


Copyright © 2012-2020 noocyte.
E-mail: relipmoced (a) yahoo.co.jp
  (" (a) " を半角のアットマークに書き替えてください.)
リンクはご自由に.
「Windows Programming Tips & Memos」に戻る.
「noocyte のプログラミング研究室」トップページに戻る.