首页 > 解决方案 > 在 texture2D 中绘制线条和字符(DirectCompute HLSL 编程)

问题描述

我进行了很多搜索,但没有找到如何让计算着色器在纹理 2D 中绘制线条和字符。

我的应用程序必须进行大量处理并在 texture2D 中生成位图,然后在屏幕上渲染并下载回 CPU 并最终保存在文件中。生成位图后,我必须绘制线条(和其他简单的几何形状)以及字符串来注释位图。我被困在了这个阶段。

顺便说一句:我正在使用 MSVC2015、DirectX/DirectCompute11、NVidia K4200 GPU。

任何帮助表示赞赏。

标签: c++directx-11hlsldirectcompute

解决方案


我终于通过实施经典算法在光栅化图像上画线解决了我的问题。我从这段代码开始,它是 C 代码,但很容易翻译成 HLSL。这个实现产生任何粗细的线。

我还编写了代码以旧方式将字符写入纹理 2D:我得到了一个点阵字体(互联网上有很多免费的),存储在 ByteAddressBuffer 中并将像素从该字体复制到纹理 2D。我通过编写一些函数来“打印”texture2D 中给定坐标处的各种数据,使其易于使用。这非常适合我需要的东西。


推荐阅读