c++ - 在 texture2D 中绘制线条和字符(DirectCompute HLSL 编程)
问题描述
我进行了很多搜索,但没有找到如何让计算着色器在纹理 2D 中绘制线条和字符。
我的应用程序必须进行大量处理并在 texture2D 中生成位图,然后在屏幕上渲染并下载回 CPU 并最终保存在文件中。生成位图后,我必须绘制线条(和其他简单的几何形状)以及字符串来注释位图。我被困在了这个阶段。
顺便说一句:我正在使用 MSVC2015、DirectX/DirectCompute11、NVidia K4200 GPU。
任何帮助表示赞赏。
解决方案
我终于通过实施经典算法在光栅化图像上画线解决了我的问题。我从这段代码开始,它是 C 代码,但很容易翻译成 HLSL。这个实现产生任何粗细的线。
我还编写了代码以旧方式将字符写入纹理 2D:我得到了一个点阵字体(互联网上有很多免费的),存储在 ByteAddressBuffer 中并将像素从该字体复制到纹理 2D。我通过编写一些函数来“打印”texture2D 中给定坐标处的各种数据,使其易于使用。这非常适合我需要的东西。
推荐阅读
- python - 在 Jupyter Notebook 的命令行语句中循环遍历列表值
- php - 简单的 PHP 错误,但我被难住了(PHP 解析错误:语法错误,意外的 '<',期待文件结束)
- powershell - 使用 Powershell 从日志文件中提取数据
- javascript - 使用 Switch 语句计算一行文本中任意两 (2) 个元音即 ae、ai、ou 等连续出现的次数?
- html - 无法在我的 URL 中传递两个参数以使用按钮在我的视图中检索
- javascript - 列出 github 问题修订 - octokit
- reactjs - 从发出 api 请求的函数调用中取回响应或错误
- python - python 装饰器的多个条件
- regex - 如何从删除中排除组
- python - 必要时使用线程和锁?