我正在做一个项目,我希望有一个顶点缓冲区(在opengl中),其中我有顶点,形成一个图像的网格。意味着图像的每个像素由两个三角形(正方形像素)组成。我想通过简单地初始化一个具有图像大小的窗口然后使用具有图像大小(宽度和高度的网格)的顶点网格的vbo来实现这一点。
对于该图像,我还有一个视差/对应图(矢量场),它想要插入并用于使该图像网格变形(使图像/顶点网格变形)。这个想法来自这篇文章http://graphics.tu-bs.de/media/publications/stich08VTI.pdf(第5节),这本质上就是我想要做的。
我希望用网格物体表示图像,并通过矢量场将其变形以获得新的虚拟视图。怎么能这么容易呢?我无法完全理解我是如何在顶点着色器中移动顶点的。
首先,它是像素对应(在矢量场中),但我只能移动顶点,一个顶点属于两个像素,所以我该如何处理这个(移动像素)?
其次,短语“每顶点网格变形”只是通过某些坐标(在本例中为矢量场)移动顶点着色器中的顶点?
第三,如果我设法使网格变形,我如何正确地采样原始图像以获得“新视图”?我是否只使用与图像网格相同的矢量场对一组UV坐标进行变形,然后将原始图像作为片段着色器中的纹理进行采样?