我的OBJ文件阅读器有问题吗?

时间:2018-07-25 00:28:24

标签: file format wavefront

我已经实现了为Ray-Tracer读取.obj文件的代码,构造了一堆三角形并将其发送以由ray-tracer渲染。

它对我尝试的第一种.obj文件有效........ 例如,显示的文件。像这样的行:

  

f 3437 3438 3400 3419

事情似乎很好。

现在包含使用如下行的文件:

  

f -107 / -138 / -105 -116 / -149 / -114 -119 / -156 / -121 -112 / -143 / -110

它正在渲染这样的东西(应该是一辆车):

image.jpg

然后我开始检查构建的三角形是否有意义。例如该行:

  

f -107 / -138 / -105 -116 / -149 / -114 -119 / -156 / -121 -112 / -143 / -110

首先将使用顶点107,138,105创建一个三角形 然后它将使用顶点107,105,116创建另一个 然后另一个使用顶点138,116和149。 因此,除了第一个三角形外,它将始终选择一个顶点x,两个顶点x + 2和一个顶点x + 3。 它将以这种方式进行,直到构造出最后一个三角形。

此程序有什么问题吗?它与第一个文件一起工作。

我知道程序也在使用正确的顶点,因为我从上一行创建了一个重复的.obj文件:

  

f -107 / -138 / -105 -116 / -149 / -114 -119 / -156 / -121 -112 / -143 / -110

在每个顶点线处,例如

  

v -4.3773 9.1046 33.4049 107

可以看出,我记下了行号,以便于查看三角形构造算法选择的顶点是否正确。他们是。

根据我在旧帖子中阅读的算法,三角形的构建似乎是正确的,并且似乎是从读取顶点的文件中选择正确的行。

那还有什么可能是原因。有可能会根据这些子组来构建三角形?

三角形1

  

107 / -138 / -105

三角形2

  

-116 / -149 / -114

....

文件中没有一行没有3个顶点的倍数。

0 个答案:

没有答案
相关问题