1、我的显卡只有64M显存,我需要按页随数据的增删实时渲染纹理,渲染速度很快能超过100帧,而可渲染纹理只能建立在显存,页太多的话必然会占满显存。
    2、所以我希望保存所有渲染结果到系统内存动态纹理,可渲染纹理又不能锁定,所以我试了600*600的纹理,先保存到内存文件时间为0.2秒,再由内存文件创建动态纹理时间为0.016秒,如此实时修改数据帧速率太低,并且一个页更改后,可能后面的页都需要更新,那就更没法想象了!
    3、那有没有什么好方法,将渲染后的纹理的数据快速复制给动态纹理?

解决方案 »

  1.   

    LZ为什么要复制纹理呢?
    直接用D3D纹理混合(Texture Blending)功能不可以吗,
    D3D最多支持8层纹理混合,LZ可以参考这方面的DXSDK
      

  2.   

    1、IDirect3DDevice9::GetRenderTargetData应该符合你的要求。
    2、渲染纹理A表面AS,动态SM纹理B表面BS,普通VM纹理C,要求ABC尺寸与格式一致
    3、pDev->GetRenderTargetData(AS, BS);
       需要渲染B时
       pDev->UpdateTexture(B, C);
       使用C渲染……