0

如果这个问题已经在其他地方得到回答或者这是错误的站点,我请你原谅,但是我在使用 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

我读到在不同面之间共享的顶点的纹理坐标之间可能存在冲突,解决这个问题意味着不使用索引缓冲区。

我不确定这里有什么问题。有人可以帮助我吗?谢谢你。

4

1 回答 1

0

我终于明白了!Cinema 4D 导出器坏了,我不知道为什么。我切换到 .obj 并使用 Microsoft 提供的解析器,但它仍然无法正常工作。然后,我切换到 Blender,添加纹理,对面进行三角剖分并导出它,它按预期工作。

于 2016-07-04T08:49:56.990 回答