我已经google了一下但是找到了一个适合OpenGL的答案。
我想构建一个具有单个对角线和大约9个对角线的稀疏矩阵。这些对角线不一定在主对角线旁边,它们环绕着。每个对角线是行主格式的图像,即大小为N×M的矢量。
矩阵的大小是(N×M)×(N×M)
我的问题如下: 经过一些乱七八糟的数学运算后,我已经到了我操作的基本单位。它涉及两个图像的逐像素乘法(不限制结果的值,即它可以高于1或低于0),存储结果图像,然后添加一堆结果图像(如上所述)。 / p>
如何在OpenGL中逐像素地增加和添加图像? 1.1或2.0更容易吗?使用纹理会导致结果难以达到0到1之间吗?这会最大限度地利用gpu核心吗?
答案 0 :(得分:1)
为了能够存储[0-1]
范围之外的值,您必须使用浮点纹理。 OpenGL ES 1.1中没有支持,对于OpenGL ES 2.0,它是一个可选扩展(参见其他SO question)。
如果您的实现支持它,您可以编写一个片段程序来执行所需的数学运算。
在OpenGL ES 1.1中,您可以使用glTexEnv
调用来设置如何组合来自不同纹理单元的像素。然后,您可以使用“modulate”或“add”来乘以/添加值。结果将被限制在[0,1]
范围内。