1.ti.field()
a global N-d arrary of elements
一般将field理解成是一个场或者域
heat_field = ti.field(dtype = ti.f32, shape = (256,256))
pixel = ti.field(dtype = float, shape=(16,8))
pixel[1,2] = 42.0
vf = ti.Vector.field(3, ti.f32, shape = 4) # field是4*1的向量场,每一个元素都是3*1的Vector
@ti.kernel
def foo():
v = ti.Vector([1, 2, 3])
vf[0] = v
global_scalar = ti.field(dtype = ti.f32, shape=()) # 通过0维的field定义一个全局变量
为了提高运行效率,可以将field改成下面的结构,原理是将运行顺序和存在在内存的顺序调整到一致。
2.ti.init()
packed的用法,数据结构的shape自动补齐到2的n次幂。
ti.init() # default: packed = False
a = ti.field(ti.i32,shape=(18,65)) # padded to (32,128)
ti.init(packed = True)
a = ti.field(ti.i32,shape=(18,65)) # no padding
3.ti.GUI()
2D: ti.GUI