FBX SDK的环境配置与FbxLine结构的输出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26066883/article/details/79613612

FBX SDK的环境配置与FbxLine结构的输出

近期项目中,用到了FBX SDK,根据官网教程与博客等相关资料,在使用过程中主要发现了两点问题:
1. FBX SDK的环境配置网上说法不一
2. FbxLine结构体官网教程没有给出具体例子
因此,本文在这里稍作总结。

一、FBX SDK的环境配置

FBX SDK官网教程对这一块内容有非常详细的介绍,附上链接FBX SDK。我在这里主要介绍一下FBX SDK文件夹中动态库与静态库的不同所带来的环境配置的差别。打开其官网可以看到已经发布了2018版本(不明白自己当初为什么一直用VS2013的2015版本的SDK),针对你的VS不同版本,下载不同的SDK就可以了,这里要求非常严格,不然会导致库编译失败。本文使用的是win8+VS2015+FBX SDK2018。
这里写图片描述
下载解压之后,得到一个exe文件,安装之后,会得到带有bin,include,lib等文件内容。
这里写图片描述
主要使用的便是include,lib两个文件夹。在配置环境的时候,需要用到的头文件在include的里就不详细说明了,主要说一下lib。本文使用64位的库,因此选用x64。文件夹中主要有三种类型的库文件:
这里写图片描述
官网这里没有问题,只不过漏掉了Debug情况下的编译,这是运行库应该选//MDd。否则会编译错误

二、FbxLine结构体的导出

这个问题从年前一直拖到了现在才解决,真的十分感谢FBX Forum上热心的程序员Mike,在他的帮助下才解决了这个问题。在官方教程上搜索FbxLine类,只有这样的描述:
这里写图片描述
大致意思就是说用那几个函数就可以实现线实体的输出。但是并没有给具体例子,因为我在官方给出的例子代码中搜了n遍了。所以才在论坛上求助。幸好得到了解决。一下贴出核心代码,如果你也和我一样苦恼过,那么肯定一眼就能看懂。
`C++
FbxNode* root = FbxNode::Create(scene->GetRootNode(), "TestLine");
if (root)
{
FbxLine* fbxLine = FbxLine::Create(root->GetScene(), "TestLineGeo");
if (fbxLine)
{
int32_t index = 0;
root->SetNodeAttribute(fbxLine);
fbxLine->InitControlPoints(4);
fbxLine->SetIndexArraySize(4);
fbxLine->SetControlPointAt(FbxVector4(0.0, 0.0, 0.0), index);
fbxLine->SetPointIndexAt(index, index);
++index;
fbxLine->SetControlPointAt(FbxVector4(800.0, 0.0, 0.0), index);
fbxLine->SetPointIndexAt(index, index);
++index;
fbxLine->SetControlPointAt(FbxVector4(800.0, 800.0, 0.0), index);
fbxLine->SetPointIndexAt(index, index);
++index;
fbxLine->SetControlPointAt(FbxVector4(0.0, 800.0, 0.0), index);
fbxLine->SetPointIndexAt(index, index, true); // Make sure the line segment has an end point.
++index;
}
}
`
其实,关键就是在线实体最后一个顶点point上注明其为end point ,即SetPointIndexAt(index, index, true)
最后附上我输出的线吧!!
这里写图片描述
不过还缺少颜色,日后研究再加上。希望对其他人有所帮助,再次感谢Mike!

猜你喜欢

转载自blog.csdn.net/qq_26066883/article/details/79613612
今日推荐