记录使用fbx sdk过程中所踩得一些坑;
版本问题
不同的fbx sdk版本,要配合不同的vs studio版本使用;sdk版本对应的VS studio版本在下载时会有显示,所有的fbx sdk版本下载点击fbx sdk archives;
Mesh的创建流程小结
vertex与index的创建流程相对固定,如下:
|
|
uv、color、normal、tangent、binormal的创建会多一个环节,首先创建对应的Element,然后设置MappingMode与ReferenceMode,最后再设置对应的DirectArray与IndexArray;
|
|
MappingMode常用的为FbxGeometryElement::eByControlPoint与FbxGeometryElement::eByPolygonVertex;以uv为例,若使用FbxGeometryElement::eByControlPoint,获取顶点uv的索引,与controlpoint一致;若使用FbxGeometryElement::eByPolygonVertex,获取顶点的索引单独递增即可,与controlpoint无关;
ReferenceMode常用的为FbxGeometryElement::eDirect与FbxGeometryElement::eIndexToDirect;以uv为例,若使用FbxGeometryElement::eDirect,则表示没有IndexArray,前面获取的索引可直接获取DirectArray;若使用FbxGeometryElement::eIndexToDirect,则表示有IndexArray,前面获取的索引是IndexArray的索引,从IndexArray获取的索引才可用来获取DirectArray;
从实际使用来看,对于vertex color的创建,需要绑定到FbxLayer0上,才能有效的创建与修改,即:
|
|
Mesh的读取与显示
在fbx sdk中有大量的Sample,其中Sample中的ImportScene展示了如何完整显示fbx的所有信息;这里以显示一个mesh的uv信息为例:
|
|
关于fbx sdk应用上的文章,可以阅读Working with FBX SDK;