次の方法で共有


HolographicCameraRenderingParameters.CommitDirect3D11DepthBuffer メソッド

定義

このフレームの深度バッファーをホログラフィック表示パイプラインに提供し、ユーザーの頭の動きに対するフレームの深度ベースの安定化を可能にします。

public:
 virtual void CommitDirect3D11DepthBuffer(IDirect3DSurface ^ value) = CommitDirect3D11DepthBuffer;
void CommitDirect3D11DepthBuffer(IDirect3DSurface const& value);
public void CommitDirect3D11DepthBuffer(IDirect3DSurface value);
function commitDirect3D11DepthBuffer(value)
Public Sub CommitDirect3D11DepthBuffer (value As IDirect3DSurface)

パラメーター

value
IDirect3DSurface

アプリの深度バッファーを含む Direct3D 11 サーフェス。

Windows の要件

デバイス ファミリ
Windows 10 Creators Update (10.0.15063.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v4.0 で導入)

注釈

アプリがフレームの深度バッファーを提供し、SetFocusPoint の呼び出しをスキップした場合、フォーカス ポイントと標準は深度バッファーに基づいて推論されます。 通常、アプリは、指定した近距離平面と遠方平面を使用してピクセルをメートルにマップし直し、SetFocusPoint を呼び出さない正確な深度バッファーをコミットすることで、最適なビジュアル品質を実現します。

このメソッドは、HolographicSpace に指定した Direct3D デバイスを使用します。 デバイスで D3D11_CREATE_DEVICE_SINGLETHREADED フラグを指定した場合は、未定義の動作を回避するために、1 つの Direct3D スレッドからこのメソッドを呼び出してください。

次のコード例は、深度バッファー リソースをネイティブ ID3D11Texture2D から、CommitDirect3D11DepthBuffer に渡すことができる WinRT IDirect3DSurface インターフェイスに変換する方法を示しています。 ID3D11Texture2D は、システムが読み取るD3D11_BIND_SHADER_RESOURCEで作成されている必要があります。

inline winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface CreateDepthTextureInteropObject(
        const Microsoft::WRL::ComPtr<ID3D11Texture2D> spTexture2D)
{
    // Direct3D interop APIs are used to provide the buffer to the WinRT API.
    Microsoft::WRL::ComPtr<IDXGIResource1> depthStencilResource;
    winrt::check_hresult(spTexture2D.As(&depthStencilResource));
    Microsoft::WRL::ComPtr<IDXGISurface2> depthDxgiSurface;
    winrt::check_hresult(depthStencilResource->CreateSubresourceSurface(0, &depthDxgiSurface));
    winrt::com_ptr<::IInspectable> inspectableSurface;
    winrt::check_hresult(
        CreateDirect3D11SurfaceFromDXGISurface(
            depthDxgiSurface.Get(),
            reinterpret_cast<IInspectable**>(winrt::put_abi(inspectableSurface))
        ));

    return inspectableSurface.as<winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface>();
}

この例に示す CreateDepthTextureInteropObject メソッドは、Windows Mixed Reality アプリ テンプレートに含まれています。

適用対象