将纹理应用于模型的方式取决于模型中每个顶点的UV值。
如果考虑立方体的一个平面-它是由4个顶点组成的矩形。如果顶点的UV值像::
(0,0), (1,0), (1,1),(0,1)那么整个纹理将在整个平面上渲染一次(如现在一样)。
您需要将某些UV值更改为4而不是1-您应该使用类似方法
(0,0), (1,0), (1,4), (0,4)-这样,您的纹理将重复4次。
不幸的是,我不知道如何更改Libgdx中的UV,也许其他人会在这里提供帮助。
编辑评论中的问题:
您知道渲染的每个顶点都有自己的3D位置矢量,该矢量由
x,y,z组件组成。这表示3D空间中的位置。
如果要添加纹理,则需要告诉顶点在纹理的哪个点。您可以定义一些2D向量来表示纹理中的一个点(您也可以使用3D纹理,但现在让我们继续使用2D示例)。
您也可以命名您的纹理矢量分量
x,y,但是为了避免与位置数据混淆,有人决定将它们称为它们
u,v(在数学中,经常这样做,即使您存储相同类型的数据,也使得某些方程式更易于阅读和理解。理解)。这些向量称为
texturecoordinates或
UVs简称。
现在,想象一下您的纹理在您的面前,它的一个角在
(0,0),相反的在在
(1,1)。取一个三角形的3个顶点,对于每个顶点,取其UV,并在纹理上标记该点。然后,当您连接所有三个点时,您将获得与渲染相同的三角形。
但是,如果您的UV成分之一大于
1或小于
0?为了简单起见,我们可以说GPU将采用相同的纹理并在原始纹理之后复制它(它不能完全以这种方式工作,但结果是相同的)。这回答了有关
4数字的问题-
如果我们使用纹理坐标,
(1,4)就意味着我们要从原点移动4 * textureHeight,这样您的纹理将重复4次。
我认为目前您应该找到一种将UV添加到顶点的方法,并对此进行一些试验。尝试将0、0.1、1、10等设置为纹理坐标,然后看它能给您带来什么。这样,您应该对UV的工作原理有一些基本的了解。



