|
下面渲染到纹理代码:
创建一个纹理分别绑定到RenderTartet和ShaderResource,然后创建shader resource view 和 render target view!
D3D10_TEXTURE2D_DESC descTexture;
descTexture.Width = width;
descTexture.Height = height;
descTexture.MipLevels = 1;
descTexture.ArraySize = 1;
descTexture.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
descTexture.SampleDesc.Count = 1;
descTexture.SampleDesc.Quality = 0;
descTexture.Usage = D3D10_USAGE_DEFAULT;
descTexture.BindFlags = D3D10_BIND_RENDER_TARGET;
descTexture.CPUAccessFlags = 0;
descTexture.MiscFlags = 0;
ID3D10Texture2D* pRenderTexture;
hr = g_pd3dDevice->CreateTexture2D(&descTexture, NULL, &pRenderTexture);
if(FAILED(hr)) return hr;
hr = g_pd3dDevice->CreateRenderTargetView(pRenderTexture, NULL, &g_pRenderTextureView);
pRenderTexture->Release();
if(FAILED(hr)) return hr;
descTexture.Usage = D3D10_USAGE_DEFAULT;
descTexture.BindFlags = D3D10_BIND_SHADER_RESOURCE;
hr = g_pd3dDevice->CreateTexture2D(&descTexture, NULL, &pRenderTexture);
if(FAILED(hr)) return hr;
D3D10_SHADER_RESOURCE_VIEW_DESC SRVDesc;
ZeroMemory(&SRVDesc, sizeof(SRVDesc));
SRVDesc.Format = descTexture.Format;
SRVDesc.ViewDimension = D3D10_SRV_DIMENSION_TEXTURE2D;
SRVDesc.Texture2D.MipLevels = descTexture.MipLevels;
hr = g_pd3dDevice->CreateShaderResourceView(pRenderTexture, &SRVDesc, &g_pTextureRV);
pRenderTexture->Release();
if(FAILED(hr)) return hr;
然后我在渲染的时候先设置渲染目标位纹理进行渲染,渲染到纹理后再把渲染目标设置为后缓存!
g_pd3dDevice->OMSetRenderTargets(1, &g_pRenderTextureView, NULL);
渲染到纹理函数
g_pd3dDevice->OMSetRenderTargets(1, &g_pRenderTargetView, NULL);
渲染其他
大家帮看看有什么问题吗?渲染到纹理的那张纹理一直渲染不出来、、、 |
|