恒定水平带的高度在多边形网格经受垂直变形(OpenGL ES的1.1)
-
21-08-2019 - |
题
当使用通常的算法在标准多边形网格实现纹理映射,可以运行到与沿y轴的变形,所述变形在该方向上沿四边形的而不是顶点的恒定高度的行的条带遵循问题能够相比于沿x轴以独立地伸展。
我定义网格的顶点当运行到这一点,因为,每一行定义了一个底部和顶部的顶点,导致顶点的顶行中的一行共享的顶点的底部行中在其上方的行
虽然这是确定的,如果你只网格沿x或z轴变形,如果变形沿着y轴的网格不考虑这一点,你会看到四边形的行一起作用为恒定的高度,而不是独立的点的行的频带。你会看到沿y轴的网格的变形,但你也将看到纹理撕裂,因为这些条带不宽度变化,导致间隙中的网格。
有没有其他人遇到这个谁将会对如何最好地的(X,Y)置换图滤镜应用到以这种方式构成的多边形网格的建议?抑或是办法,明确网格有一些基本的方法来改变?
网格生成算法的一个例子可以在 ZEUS的OpenGL | ES教程纹理映射。
感谢。
解决方案
确定可以看到,如果我首先了解这个问题。
如果我理解正确的话,你想呈现一个纹理映射的补丁。但是当你试图STRETCH时补丁在垂直方向因此它的高,从您的网撕裂不同水平的乐队和你结束了补丁的几个水平带。
是吗?
如果这样,问题是在网格生成算法,纹理映射本身必须保持不变。从我所提供的链接上看到,每个水平带之间的顶点不被共享,他们被复制。所以,如果缩放顶部顶点之间的距离,还需要缩放带高度,使得底部顶点将适合下一行顶部顶点。
该算法的工作原理,你只需要调整两行间距和行高。当你了解一点点元列表是如何工作的,你可能想了解索引数据。这些实际上将让你分享的顶点,而不是重复他们的每一个原始的。
希望它能帮助。
不隶属于 StackOverflow