欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Direct3D渲染到纹理的一点技巧

程序员文章站 2022-04-01 11:14:42
...

在Direct3D开发中,HLSL文件中往往需要多个pass,这就需要渲染到纹理的技术。目前开发的一个D3D系统中,一个Effect文件有3个technique,总共有10个pass,也就是需要9次渲染到纹理,需要申请多个Texture2D,RenderTargetView和ShaderResourceView,按照9次渲

在Direct3D开发中,HLSL文件中往往需要多个pass,这就需要渲染到纹理的技术。目前开发的一个D3D系统中,一个Effect文件有3个technique,总共有10个pass,也就是需要9次渲染到纹理,需要申请多个Texture2D,RenderTargetView和ShaderResourceView,按照9次渲染,以上三种纹理资源就需要各申请9个,申请资源非常多,而且每个纹理都是RGBA格式,占用显存较多。后来,经过测试琢磨到了一些渲染到纹理的一点技巧,可以减少申请的纹理数,那就是纹理复用。可以总结为以下三点:

1. 在一个pass中,使用到的纹理不能作为渲染纹理;

2. Effect文件中的纹理变量与应用程序中的纹理是一一绑定关系,应用程序中的纹理改变了,Effect文件中的也会改变。
3. 已经渲染的纹理,在当前及以后的pass中没有使用到,那么该纹理资源可以使用来渲染,不用再申请新的纹理资源,从而节省资源。