[动画Mesh重建报错解决/pybind11/numpy] incompatible function arguments. Invoked with: {

前言

在安装手物交互的代码时报了以下错误:
在这里插入图片描述

sp_m.add_mesh_with_normals(m.v.astype(np.float32),m.estimate_vertex_normals().astype(np.float32),m.f,m.vc.astype(np.float32))
TypeError: add_mesh_with_normals(): incompatible function arguments. The following argument types are supported:
    1. (self: scenepic._scenepic.Mesh, vertices: numpy.ndarray[numpy.float32[m, 3], flags.c_contiguous], normals: numpy.ndarray[numpy.float32[m, 3], flags.c_contiguous], triangles: numpy.ndarray[numpy.uint32[m, 3], flags.c_contiguous], colors: numpy.ndarray[numpy.float32[m, 3], flags.c_contiguous] = array([], shape=(0, 3), dtype=float32), uvs: numpy.ndarray[numpy.float32[m, 2], flags.c_contiguous] = array([], shape=(0, 2), dtype=float32), transform: numpy.ndarray[numpy.float32[4, 4]] = array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]], dtype=float32), reverse_triangle_order: bool = False, fill_triangles: bool = True, add_wireframe: bool = False) -> None

Invoked with: {
	"CameraSpace": false,
	"CommandType": "DefineMesh",
	"Definition": 
	{
		"IndexBufferType": "UInt16",
		"LineBuffer": "eAEDAAAAAAEAAAAAAg==",
		"PrimitiveType": "MultiColorMesh",
		"TriangleBuffer": "eAEDAAAAAAEAAAAAAw==",
		"VertexBuffer": "eAEDAAAAAAEAAAAACQ=="
	},
	"DoubleSided": false,
	"IsBillboard": false,
	"IsLabel": false,
	"LayerId": "refined_grasp",
	"MeshId": "Mesh-0"
}
, array([[0.44010776, 1.102836  , 0.3594451 ],
       [0.4411273 , 1.100206  , 0.35626718],
       [0.4413275 , 1.1008232 , 0.35573846],
       ...,
       [0.38605005, 1.0967678 , 0.45902026],
       [0.38805935, 1.0965946 , 0.45762292],
       [0.38996518, 1.0959445 , 0.45622495]], dtype=float32), array([[ 0.6386571 ,  0.29692566, -0.70989597],
       [ 0.4416749 ,  0.724088  , -0.5297357 ],
       [ 0.01698366,  0.7839792 , -0.62055475],
       ...,
       [ 0.05409202,  0.99331456,  0.10198127],
       [ 0.18289949,  0.9831139 , -0.00590737],
       [ 0.3254221 ,  0.93929446, -0.10874928]], dtype=float32), array([[    3,     1,     0],
       [    7,     5,     4],
       [   12,    14,    13],
       ...,
       [ 9944, 10097, 10084],
       [ 9940, 10084, 10071],
       [10071, 10058,  9932]], dtype=uint32), array([[0., 1., 0.],
       [0., 1., 0.],
       [0., 1., 0.],
       ...,
       [0., 1., 0.],
       [0., 1., 0.],
       [0., 1., 0.]], dtype=float32)

这个方法挺冷门的,只有外网上有解决方案,故搬运过来方便后来者。
外网解决连接:https://github.com/microsoft/scenepic/issues/34

解决方法

这个问题是由于pybind11和numpy==1.23版本冲突原因导致的,
故执行以下命令降级numpy即可解决问题:

pip install numpy==1.22
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bartender_Jill

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值