是否有办法将ti.field转化为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

你好:wave: 从一个 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 来实现。