HolographicCameraRenderingParameters.CommitDirect3D11DepthBuffer メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このフレームの深度バッファーをホログラフィック表示パイプラインに提供し、ユーザーの頭の動きに対するフレームの深度ベースの安定化を可能にします。
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 アプリ テンプレートに含まれています。