【发布时间】:2018-04-06 10:28:08
【问题描述】:
好的,这个代码很长很复杂,所以我必须仔细描述这个问题。
假设您正在通过围绕轴车削一组点来创建 3D 对象。您现在要为这些点生成球形纹理贴图。现在有一个困难的二分法:
如果您创建一个完全循环的网格,其中最后一个点连接到第一个点,并且没有两个多边形面不共享的边,那么您无法创建真正的球面贴图。这是因为顶点与纹理点是 1:1 映射的。第一个面的最左边的顶点需要映射到 U 值 0;最后一个面的最右边的顶点将映射到 1 - 但它们是相同的顶点!结果是网格的一部分被纹理化,大部分纹理贴图从右到左,而所有其他部分从左到右正确映射。
理论上你可以通过复制第一组顶点来解决这个问题,这样它们就可以根据它们所涉及的多边形具有不同的纹理坐标,但这会带来另一个问题。如果我这样做并将细分级别应用于生成的几何图形,则会出现难看的折痕,并且纹理似乎严重扭曲。在静止图像上不是很明显,但请查看图像的右下角。
理想情况下,我希望能够将纹理贴图和细分应用到同一个网格,而不会遇到这些丑陋的效果。有人有什么想法吗?
【问题讨论】: