If you bind the entire texture of a volume (or TextureArray), you really need to use a Geometry Shader to write to a specific fragment.
GS :
struct GSOutput
{
float4 pos : SV_Position;
uint slice : SV_RenderTargetArrayIndex;
};
, , , , , .
, Geometry Shader.
rendertargetview , , ( Texture2DArray, , Texture3D):
D3D11_RENDER_TARGET_VIEW_DESC rtvd;
rtvd.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DARRAY;
rtvd.Texture2DArray.ArraySize = 1;
rtvd.Texture2DArray.FirstArraySlice = yourslice;
, .
, , ( ), . .