シーンをテクスチャにレンダリングして、後処理効果のためにシェーダーで使用しようとしています。私はこの種のことについてあまり経験していないので、ここでいくつか質問があります..まず第一に:
OnCreateDevice() メソッドに次のコードがあります。
D3D11_TEXTURE2D_DESC textureDesc;
D3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDesc;
D3D11_SHADER_RESOURCE_VIEW_DESC shaderResourceViewDesc;
ZeroMemory(&textureDesc, sizeof(textureDesc));
textureDesc.Width = 800/2;
textureDesc.Height = 600/2;
textureDesc.MipLevels = 1;
textureDesc.ArraySize = 1;
textureDesc.Format = DXGI_FORMAT_R32G32B32A32_FLOAT;
textureDesc.SampleDesc.Count = 1;
textureDesc.Usage = D3D11_USAGE_DEFAULT;
textureDesc.BindFlags = D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE;
textureDesc.CPUAccessFlags = 0;
textureDesc.MiscFlags = 0;
pd3dDevice->CreateTexture2D(&textureDesc, NULL, &renderTargetTextureMap);
renderTargetViewDesc.Format = textureDesc.Format;
renderTargetViewDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D;
renderTargetViewDesc.Texture2D.MipSlice = 0;
pd3dDevice->CreateRenderTargetView(renderTargetTextureMap, &renderTargetViewDesc, &renderTargetViewMap);
shaderResourceViewDesc.Format = textureDesc.Format;
shaderResourceViewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
shaderResourceViewDesc.Texture2D.MostDetailedMip = 0;
shaderResourceViewDesc.Texture2D.MipLevels = 1;
pd3dDevice->CreateShaderResourceView(renderTargetTextureMap, &shaderResourceViewDesc, &shaderResourceViewMap);
テクスチャ、renderView、および resourceView を作成しています。しかし、ここからどこへ行けばいいですか?別のバッファを定義する必要がありますか、それとも結局これは機能しますか?
具体的には、
したがって、OMRenderTargets を renderTargetViewMap と depthStencilView で設定する必要があることはわかっていると思います。しかし、これをどこに設定する必要がありますか?すべてのフレーム レンダー コールで? シーン内の他のオブジェクトをレンダリングする前か後か? 私の推測では、このテクスチャを操作するために作成した新しいシェーダーを作成する必要があると思います。
洞察をありがとう:/