首先需要强烈吐槽一下OSG这个设计,在加载obj模型的时候,会默认将模型绕x轴逆时针旋转90度,让我整整找了两天的原因。。。。这个设计真的太智障了。。。。
我们来看一下,有一个正方体的obj模型,用记事本打开以后,里面的内容如下:
# cube.obj
#
g cube
v 0.0 0.0 0.0
v 0.0 0.0 1.0
v 0.0 1.0 0.0
v 0.0 1.0 1.0
v 1.0 0.0 0.0
v 1.0 0.0 1.0
v 1.0 1.0 0.0
v 1.0 1.0 1.0
vn 0.0 0.0 1.0
vn 0.0 0.0 -1.0
vn 0.0 1.0 0.0
vn 0.0 -1.0 0.0
vn 1.0 0.0 0.0
vn -1.0 0.0 0.0
f 1//2 7//2 5//2
f 1//2 3//2 7//2
f 1//6 4//6 3//6
f 1//6 2//6 4//6
f 3//3 8//3 7//3
f 3//3 4//3 8//3
f 5//5 7//5 8//5
f 5//5 8//5 6//5
f 1//4 5//4 6//4
f 1//4 6//4 2//4
f 2//1 6//1 8//1
f 2//1 8//1 4//1
然后我们读取这个模型,然后把他不做任何操作,再另存成一个obj文件(可能有人要问,为什么要这样搞,其实有应用场景的,比如你拿到一个obj模型,然后在osg中做了某些处理以后,再把他另存为obj模型,然后去其他软件中处理),这个过程的代码应该是这样的: