Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
经历垂直变形的多边形网格中的恒定水平带高度(OpenGL ES 1.1)_Opengl_Mesh_Texture Mapping_Artifacts - Fatal编程技术网

经历垂直变形的多边形网格中的恒定水平带高度(OpenGL ES 1.1)

经历垂直变形的多边形网格中的恒定水平带高度(OpenGL ES 1.1),opengl,mesh,texture-mapping,artifacts,Opengl,Mesh,Texture Mapping,Artifacts,使用常用算法在标准多边形网格上实现纹理贴图时,您可能会遇到与沿y轴的变形相关的问题,因为变形沿着四边形的恒定高度行的带,而不是与沿x轴的变形相比,该方向上的顶点能够独立拉伸 我之所以会遇到这种情况,是因为在定义网格顶点时,每一行同时定义一个底部顶点和一个顶部顶点,从而导致一行的顶部顶点行共享其上一行的底部顶点行 如果仅沿x轴或z轴变形网格,这是可以的,但如果沿y轴变形网格而不考虑这一点,则会看到四边形的行作为恒定高度的带而不是独立点的行一起作用。您将看到网格沿y轴的变形,但也会看到纹理撕裂,因为

使用常用算法在标准多边形网格上实现纹理贴图时,您可能会遇到与沿y轴的变形相关的问题,因为变形沿着四边形的恒定高度行的带,而不是与沿x轴的变形相比,该方向上的顶点能够独立拉伸

我之所以会遇到这种情况,是因为在定义网格顶点时,每一行同时定义一个底部顶点和一个顶部顶点,从而导致一行的顶部顶点行共享其上一行的底部顶点行

如果仅沿x轴或z轴变形网格,这是可以的,但如果沿y轴变形网格而不考虑这一点,则会看到四边形的行作为恒定高度的带而不是独立点的行一起作用。您将看到网格沿y轴的变形,但也会看到纹理撕裂,因为这些条带的宽度不会改变,从而导致网格中出现间隙

有没有其他人遇到过这种情况,他们会对如何最好地将(x,y)置换贴图过滤器应用于以这种方式构造的多边形网格提出建议?或者定义网格的方法必须以某种基本方式改变吗

上可以看到网格生成算法的示例


谢谢。

好的,让我们先看看我是否理解这个问题

如果我理解正确,您正在尝试渲染纹理贴图面片。但是,当你试图在垂直方向拉伸面片,使其变得更高时,网格中不同的水平带撕裂,你最终得到几个水平带的面片

是这样吗

如果是这样,问题在于网格生成算法,纹理贴图本身必须保持不变。从我在提供的链接上看到的情况来看,每个水平标注栏之间的顶点不是共享的,而是重复的。因此,如果缩放顶部顶点之间的间距,还需要缩放标注栏高度,以便底部顶点适合下一行顶部顶点

算法的基础工作,您只需要调整行间距和行高度。当您稍微了解基本体列表的工作原理时,您可能希望了解索引基本体。这些实际上可以让您共享顶点,而不是为每个基本体复制顶点


希望有帮助。

是的,您正确理解了问题,感谢您的洞察力。这应该让我找到正确的方向。我相信我用我使用的置换过滤器解决了我的特殊问题。因为它是圆形的,基于任意点,所以在移动顶部/底部顶点之前,我没有检查y轴位移是否大于0或小于0。撕裂现在消除了。