纹理映射NGon?

时间:2010-05-07 15:03:46

标签: c++ c opengl texture-mapping

我不知道如何确定如何为2D NGon(N面多边形)绘制纹理cooridnates?如何做到这一点?

我想要达到的效果是让纹理适合多边形并相应地拉伸,以便整个纹理适合它。

由于

1 个答案:

答案 0 :(得分:3)

请记住,在OpenGL中渲染ngon时,它只是一大堆三角形。此外,你正在采取一些形状,并试图将其映射到一个矩形,所以你必须非常批评你希望如何做到这一点,因为有许多不同的映射从任何形状到矩形纹理。

例如,如果我的5-gon形状像一个正方形,两个角之间有一个点,那么很容易映射到纹理。当我提出这一点时会发生什么?当我移动顶点时,纹理坐标是否会改变?

一种方法是将ngon的圆周映射到矩形的圆周,其中ngon上从顶点到顶点的距离被映射到围绕纹理圆周的UV坐标。例如,在它周围的1/4处,给它一个(1,0)的UV坐标,在ngon周围的一半,给顶点一个UV坐标(1,1)和3/4的方式在它周围,给它一个(0,1)的UV - 当然,你需要在点之间插值,因为一个ngon在每个顶点都不会完美排列。