我正在扩展Wavefront OBJ以使用它的骨骼。这是我的例子:
bn my_bone 0.0 0.0 0.0
wgh 1 1.0
wgh 2 1.0
wgh 3 1.0
wgh 4 1.0
wgh 5 1.0
bn my_bone2 1.0 0.0 0.0
prt my_bone
wgh 11 0.1
wgh 12 0.2
wgh 13 0.3
以下是描述:
骨骼:
bn [bone name] [x] [y] [z]
父母:
prt [parent name]
权重:
wgh [vertex index] [weight]
我想问的是:
- 我的新命令会导致与标准冲突吗?
- 我已经在Visual Studio的图形编辑器,混合现实查看器和Blender中测试了我的新OBJ文件,他们只是忽略了我的命令。我想知道在读取我的新 OBJ 文件时是否有任何程序抛出错误。我希望我的新OBJ文件在其他程序中作为普通的OBJ文件运行。
- 实现骨骼时,我必须考虑哪些附加功能?
- 它将用于使用CUDA或Direct3D的游戏。我将通过使用矩阵来实现这一点。有没有更有效的方法,特别是在GPU或Direct3D中?
我知道其他格式,如 FBX,我只想将骨骼与 OBJ 一起使用。
-
只要你的行头不是标准的一部分,那么它就可以了,但见 2(。
-
大多数现有的 OBJ 读取器设计为仅解析标准标头(因为解析器需要知道行格式以及如何处理结果数据(,因此您可能需要推出自己的(不太困难,周围有很多教程(。
-
您需要多个点来指定骨骼。至少您还需要它的端点。如果您计划进行正向或反向运动学,您还需要指定其局部轴和旋转限制。还有一组用于蒙皮的权重(如果您不打算在运行时生成这些权重(。
-
矩阵表示是一种广泛使用的技术,因为它涉及简单的线性代数,可以很容易地进行矢量化和优化;然而,某些应用可能需要更先进的技术,例如双四元数以获得视觉上更具吸引力的皮肤效果。