如果这个问题已经在其他地方得到回答或者这是错误的站点,我请你原谅,但是我在使用 Direct3D 11 渲染纹理时遇到了一个严重的问题。
使用 Cinema 4D R17,我创建了一个简单的球体,对所有多边形进行三角剖分,然后我对纹理进行了 UV 映射,正如您在此处看到的那样:它可以正确渲染。
接下来,我将文件导出为 .x,因为我创建了一个更简单的网格格式,而 .x 非常适合获取顶点、索引、法线、纹理坐标等。这种转换非常完美,因为源文件中的所有数据都成功传输到我的文件(我检查并仔细检查了它)。
然而,当我在我的游戏引擎中上传文件时,我得到了以下结果: 行星的所有侧面都被正确渲染,除了在纹理的末端,那里形成了奇怪的图案。看起来好像整个纹理再次映射到那一小块三角形上。
这不是我第一次得到这样的东西。我对立方体纹理立方体也有类似的问题:
它应该看起来像这样:
这是立方体的顶点数据:
8 // Number of vertices.
-0.01 -0.01 -0.01 -0.01 0.01 -0.01 0.01 -0.01 -0.01 0.01 0.01 -0.01 0.01 -0.01 0.01 0.01 0.01 0.01 -0.01 -0.01 0.01 -0.01 0.01 0.01 // Vertices stored in X, Y, Z.
1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 // Texture coordinates.
36 // Indices count.
0 1 3 2 3 5 4 5 7 6 7 1 1 7 5 6 0 2 0 3 2 2 5 4 4 7 6 6 1 0 1 5 3 6 2 4 // Indices.
tex_1.bmp // Texture file name
我读到在不同面之间共享的顶点的纹理坐标之间可能存在冲突,解决这个问题意味着不使用索引缓冲区。
我不确定这里有什么问题。有人可以帮助我吗?谢谢你。