如果我在已经初始化为texture2d的纹理上从我的像素着色器调用tex1d,它会将数据视为一维数组,然后只需将元素放在指定的位置吗?
例如,如果你有一个10 x 10的纹理(这将是一个100个元素的长度数组)并且你调用tex1d(mySampler,0.95)它会给你回到元素95吗?
答案 0 :(得分:1)
我想你会发现这个引用(关于DirectX 9,这是XNA所基于的)相关:
因为运行时不支持1D纹理,所以编译器将使用2D纹理,并知道y坐标不重要。由于tex1D(s,t)(DirectX HLSL)是作为2D纹理查找实现的,因此编译器可以有效地选择y分量。
换句话说:指定X坐标,Y坐标未定义。
来自here。
所以,不,它不会打开索引。但是你already got an answer about how to do that。