Если вам нужна текстура 1x1 в формате DXGI_FORMAT_R32_FLOAT
с красным пикселем, вы можете просто создать ее в коде:
using Microsoft::WRL::ComPtr;
static const float s_pixel = 1.f;
D3D11_SUBRESOURCE_DATA initData = { &s_pixel, sizeof(float), 0 };
D3D11_TEXTURE2D_DESC desc = {};
desc.Width = desc.Height = desc.MipLevels = desc.ArraySize = 1;
desc.Format = DXGI_FORMAT_R32_FLOAT;
desc.SampleDesc.Count = 1;
desc.Usage = D3D11_USAGE_IMMUTABLE;
desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
ComPtr<ID3D11Texture2D> tex;
HRESULT hr = mDevice->CreateTexture2D(&desc, &initData, tex.GetAddressOf());
if (SUCCEEDED(hr))
{
D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc = {};
SRVDesc.Format = desc.Format;
SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
SRVDesc.Texture2D.MipLevels = 1;
hr = mDevice->CreateShaderResourceView(tex.Get(), &SRVDesc, pResult);
}
return hr;
Причина «черной текстуры» уже рассмотрена здесь . Вы используете неправильный вид текстур и флагов карты.