是否有办法将ti.field转化为ti.Vector.field呢?
例如:
a = ti.field(i32, shape=(2, 4, 5))
转化为:
b = ti.Vector(2, i32, shape=(4, 5))
并且,是否也可以从nparray用ti.field(nparray)构造ti.Vector.field
是否有办法将ti.field转化为ti.Vector.field呢?
例如:
a = ti.field(i32, shape=(2, 4, 5))
转化为:
b = ti.Vector(2, i32, shape=(4, 5))
并且,是否也可以从nparray用ti.field(nparray)构造ti.Vector.field
你好 从一个 scalar field 到一个 vector field 是没有“显然”的转换方式的。你可能期待的是 a
中第一个 axis 的数值填充到 vector 的元素中去;如果是这样的话可以用如下 kernel 来实现
@ti.kernel
def s2v():
for j,k in v:
v[j,k] = ti.Vector([a[0,j,k], a[1,j,k]])
如果是不同的规则,则可以编写不同的 kernel 来实现。