使用着色器模型 5/D3D11/HLSL。
我想将 texel 的 2D 数组视为 Vectors 的 2D 矩阵。
u
v (1,4,3,9) (7, 5.5, 4.9, 2.1)
(每个纹素是一个 4 分量向量)。对于不同的着色器,我需要访问纹理中数据的特定范围。因此,纹理中要访问的范围自然应该被索引为 u,v 分量。
我将如何在 HLSL 中做到这一点?我在想以下几点:
- 按照正常方式创建纹理
- 将向量值加载到纹理中(每个纹素 1 个向量)
- 关闭纹理采样的所有线性插值(“最近邻”)
- 在着色器中,使用纹理坐标查找您需要的向量
唯一让我感到不安的是,当我使用浮点 u's 和 v's 索引纹理时是否会引入奇怪的错误。
如果纹理是 1024x1024 纹素,并且我正在尝试索引 (3,2)->(3,7),那将是 u=(3/1024,2/1024)->(3/1024,7/ 1024)感觉有点摇晃。有没有办法通过 int 组件索引纹理?或者它会很好地工作吗?
不想为此使用 GPGPU 框架(所以请不要 CUDA 建议 :)。