游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2978|回复: 3

DX10 渲染到纹理

[复制链接]

23

主题

64

帖子

64

积分

注册会员

Rank: 2

积分
64
发表于 2010-10-24 16:22:00 | 显示全部楼层 |阅读模式
下面渲染到纹理代码:
创建一个纹理分别绑定到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);
              渲染其他

大家帮看看有什么问题吗?渲染到纹理的那张纹理一直渲染不出来、、、

15

主题

54

帖子

518

积分

高级会员

Rank: 4

积分
518
QQ
发表于 2010-10-24 17:17:00 | 显示全部楼层

Re:DX10 渲染到纹理

没有渲染矩阵方式?

1

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2010-10-28 19:21:00 | 显示全部楼层

Re:DX10 渲染到纹理

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 | D3D10_BIND_SHADER_RESOURCE;  //modified
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;

//modified begin
ID3D10ShaderResourceView* ppTexRV = NULL;
hr = m_pd3dDevice->CreateShaderResourceView(*ppTexture2D, NULL, &ppTexRV);
if(FAILED(hr)) return hr;
// end.

g_pd3dDevice->OMSetRenderTargets(1, &g_pRenderTextureView, NULL);
     这样试试,应该没问题。                     

1

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2010-10-28 19:24:00 | 显示全部楼层

Re:DX10 渲染到纹理

render时,不要忘记调用SetResource(ppTexRV)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-18 08:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表