3d 扩展骨骼波前OBJ

3d 扩展骨骼波前OBJ,3d,mesh,direct3d,wavefront,3d,Mesh,Direct3d,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] [we

我正在扩展波前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]
家长:

bn [bone name] [x] [y] [z]
prt [parent name]
wgh [vertex index] [weight]
权重:

bn [bone name] [x] [y] [z]
prt [parent name]
wgh [vertex index] [weight]
我想问的是:

  • 我的新命令是否会导致与标准冲突
  • 我已经在VisualStudio的图形编辑器、混合现实查看器和混合器中测试了我的新OBJ文件,它们只是忽略了我的命令。我想知道是否有任何程序在读取我的新OBJ文件时抛出错误。我希望我的新OBJ文件在其他程序中像普通OBJ文件一样运行
  • 实现骨骼需要考虑哪些附加功能?
  • 它将用于使用CUDA或Direct3D的游戏。我将使用矩阵来实现这一点。有没有更有效的方法,特别是在GPU或Direct3D中
  • 我知道其他格式,比如FBX,我只想用骨骼和OBJ

  • 只要您的行标题不是标准的一部分,那么就完全可以了,但请参见2)

  • 大多数现有的OBJ阅读器都设计为只解析标准头(因为解析器需要知道行格式以及如何处理结果数据),所以您可能需要推出自己的(不太难,有很多教程)

  • 您需要多个点来指定骨骼。至少您还需要它的端点。如果计划执行正向或反向运动学,则还需要指定其局部轴和旋转限制。如果您不打算在运行时生成这些权重,那么还需要一组用于蒙皮的权重

  • 矩阵表示是一种广泛使用的技术,因为它涉及简单的线性代数,易于向量化和优化;但是,某些应用可能需要更先进的技术,例如双四元数,以获得更具视觉吸引力的蒙皮效果