ds = runtime.load('test', mc) def ray_ds(ds, ray, name): ds[name+ ".origin"] = ray.origin.to_ds() ds[name+ ".dir"] = ray.dir.to_ds() ray_ds(ds, ray, 'ray1') runtime.run('test') print (hit, hit.t) print (hit.normal) print (ds['ret'], ds['hp1.t']) print (ds['hp1.normal']) print ('------------------') shader = linear.isect_shader([runtime]) hit2 = HitPoint() props = {'hit': hit2, 'ret': 0, 'ray': ray} code = """ ret = isect(ray, hit) """ bs = BasicShader(code, props) bs.prepare([runtime], [shader]) bs.execute() print (bs.shader.get_value('ret')) print (bs.shader.get_value('hit.t')) print (bs.shader.get_value('hit.normal')) linear.visibility_asm([runtime], 'visibility')
def ray_ds(ds, ray, name): ds[name + ".origin"] = ray.origin.to_ds() ds[name + ".dir"] = ray.dir.to_ds() ray_ds(ds, ray, 'ray1') runtime.run('test') print(hit, hit.t) print(hit.normal) print(ds['ret'], ds['hp1.t']) print(ds['hp1.normal']) print('------------------') shader = linear.isect_shader([runtime]) hit2 = HitPoint() props = {'hit': hit2, 'ret': 0, 'ray': ray} code = """ ret = isect(ray, hit) """ bs = BasicShader(code, props) bs.prepare([runtime], [shader]) bs.execute() print(bs.shader.get_value('ret')) print(bs.shader.get_value('hit.t')) print(bs.shader.get_value('hit.normal')) linear.visibility_asm([runtime], 'visibility') code = """