【发布时间】:2017-07-12 04:55:59
【问题描述】:
大家好, 我在 Panda3D 中操作绑定网格模型时遇到了问题。我加载了一个网格模型,它有一个骨架修改器,由两个相邻的骨骼组成(一个用于手掌,一个用于四个手指的集合,即食指、中指、无名指和小指),看起来像这样original unchanged hand model;然后我使用actor的'controlJoint'方法将后一个骨骼(joint)转换为向内折叠四个手指。代码在这里:
self.handActor = Actor( r'/d/3DModels/TestHand.egg' )
self.handJoint1 = self.handActor.controlJoint( None,
'modelRoot',
'Bone1'
)
self.handJoint2 = self.handActor.controlJoint( None,
'modelRoot',
'Bone2'
)
self.handJoint2.setP( 90 )
然后我访问了当前转换网格的顶点信息,代码如下:
geomNodeCollection = self.handActor.findAllMatches( '**/+GeomNode' )
geomNodePath = geomNodeCollection[ 0 ]
geomNode = geomNodePath.node()
geom = geomNode.getGeom( 0 )
vData = geom.getVertexData()
reader_vertex = GeomVertexReader( vData, 'vertex' )
reader_normal = GeomVertexReader( vData, 'normal' )
vertexList = list()
normalList = list()
for i in xrange( 2000 ) :
vertex = reader_vertex.getData3f()
normal = reader_normal.getData3f()
vertexList.append( vertex )
normalList.append( normal )
然后我用笑脸球标记了每个位置,期待看到这些笑脸云的位置正好适合变形的手。但是,我得到了一个原始手形的点云,它是扁平的,像这样:deformed hand model and vertices obtained shown a point cloud 关于如何获得与变形的手网格完全匹配的顶点位置的任何想法?谢谢!
【问题讨论】:
标签: opengl mesh vertex panda3d