Directx 如何在DX12中将多个图像像素数据上载到一个纹理中
我有多个像素阵列形式的图像。我想将它们粘贴到一个大纹理中,然后渲染整个纹理。例如,我有一个汽车像素数据和一个喷气式飞机像素数据。我想在大纹理的顶部复制jet的像素数据,在大纹理的底部复制汽车的像素数据。Directx 如何在DX12中将多个图像像素数据上载到一个纹理中,directx,directx-12,Directx,Directx 12,我有多个像素阵列形式的图像。我想将它们粘贴到一个大纹理中,然后渲染整个纹理。例如,我有一个汽车像素数据和一个喷气式飞机像素数据。我想在大纹理的顶部复制jet的像素数据,在大纹理的底部复制汽车的像素数据。 我的想法是创建一个大缓冲区并手动复制这些像素数据。手动意味着计算每行开始像素的偏移量,并在循环中复制行。然后将组合的像素数据提交给GPU。然而,我认为这种方法效率很低,因为CPU正在进行循环。所以我想知道有没有其他方法可以改善这一点。例如,任何D3D函数都已经使我能够高效地做类似的事情。另一方面
我的想法是创建一个大缓冲区并手动复制这些像素数据。手动意味着计算每行开始像素的偏移量,并在循环中复制行。然后将组合的像素数据提交给GPU。然而,我认为这种方法效率很低,因为CPU正在进行循环。所以我想知道有没有其他方法可以改善这一点。例如,任何D3D函数都已经使我能够高效地做类似的事情。另一方面,最正式/正确的方法是什么?到目前为止,您是如何上传纹理数据的?可能来自d3dx12.h。您是否尝试实现类似于此函数的功能?您可以查看源代码-它大致执行以下操作:
memcpy()
序列,用于将像素数据复制到映射的中间资源