纹理映射一个NGon?

Posted

技术标签:

【中文标题】纹理映射一个NGon?【英文标题】:Texture mapping an NGon? 【发布时间】:2010-05-07 15:03:46 【问题描述】:

我不知道如何确定如何为 2D NGon(N 边多边形)映射纹理坐标,如何做到这一点?

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

【问题讨论】:

【参考方案1】:

请记住,在 OpenGL 中渲染 ngon 时,它只是一堆三角形。此外,您正在制作某种形状并尝试将其映射到矩形,因此您必须非常严格地确定您希望如何做到这一点,因为从任何形状到矩形纹理都有许多不同的映射。

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

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

【讨论】:

以上是关于纹理映射一个NGon?的主要内容,如果未能解决你的问题,请参考以下文章

opengl 把纹理映射到立方体的六个面。

OpenGL纹理映射总结

opengl 纹理映射

OpenGL_Qt学习笔记之_05(纹理映射)(转)

OpenGL 纹理未正确映射

opengl纹理映射总结