本文整理汇总了Python中tdasm.Runtime.run方法的典型用法代码示例。如果您正苦于以下问题:Python Runtime.run方法的具体用法?Python Runtime.run怎么用?Python Runtime.run使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tdasm.Runtime
的用法示例。
在下文中一共展示了Runtime.run方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_isect_b
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test_isect_b(self):
point = Vector3(0.0, 0.0, 55.92)
e1 = Vector3(55.28, 0.0, 0.0)
e2 = Vector3(0.0, 54.88, 0.0)
normal = Vector3(0.0, 0.0, -1.0)
rectangle = Rectangle(point, e1, e2, normal)
origin = Vector3(3.0, 2.5, 0.0)
direction = Vector3(0.0, 0.1, 0.88)
direction.normalize()
ray = Ray(origin, direction)
runtime = Runtime()
rectangle.isect_asm_b([runtime], "ray_rectangle_intersection")
assembler = create_assembler()
mc = assembler.assemble(self.asm_code_bool())
ds = runtime.load("test", mc)
Ray.populate_ds(ds, ray, 'ray1')
Rectangle.populate_ds(ds, rectangle, 'rec1')
runtime.run("test")
hp = rectangle.isect(ray)
if hp is False: self.assertFalse(ds["ret"]!=0)
if ds["ret"] == 0: self.assertFalse(hp)
示例2: test_sincos_ps
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test_sincos_ps(self):
asm = Tdasm()
mc = asm.assemble(SINCOS_CODE_PS)
runtime = Runtime()
load_math_func("fast_sincos_ps", runtime)
ds = runtime.load("sincos_ps", mc)
for x in range(1000):
num1 = random.random() * 2000
num2 = random.random() * 2000
num3 = random.random() * 2000
num4 = random.random() * 2000
ds["v1"] = (num1, num2, num3, num4)
runtime.run("sincos_ps")
rez_asm_sin = ds["v1"]
rez_asm_cos = ds["v2"]
rez_py1_sin = math.sin(num1)
rez_py2_sin = math.sin(num2)
rez_py3_sin = math.sin(num3)
rez_py4_sin = math.sin(num4)
rez_py1_cos = math.cos(num1)
rez_py2_cos = math.cos(num2)
rez_py3_cos = math.cos(num3)
rez_py4_cos = math.cos(num4)
self.assertAlmostEqual(rez_asm_sin[0], rez_py1_sin, 3)
self.assertAlmostEqual(rez_asm_sin[1], rez_py2_sin, 3)
self.assertAlmostEqual(rez_asm_sin[2], rez_py3_sin, 3)
self.assertAlmostEqual(rez_asm_sin[3], rez_py4_sin, 3)
self.assertAlmostEqual(rez_asm_cos[0], rez_py1_cos, 3)
self.assertAlmostEqual(rez_asm_cos[1], rez_py2_cos, 3)
self.assertAlmostEqual(rez_asm_cos[2], rez_py3_cos, 3)
self.assertAlmostEqual(rez_asm_cos[3], rez_py4_cos, 3)
示例3: test_addsample
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test_addsample(self):
ren = renmas2.Renderer()
runtime = Runtime()
#ren.spectrum_rendering = True
ren.film.nsamples = 2
ren.prepare()
ren.converter.to_rgb_asm("spectrum_to_rgb", [runtime])
ren.film.add_sample_asm([runtime], "add_sample", "spectrum_to_rgb")
mc = ren.assembler.assemble(self.asm_code(ren))
ds = runtime.load("test", mc)
ds["sp1.ix"] = 10
ds["sp1.iy"] = 10
ds["sp1.xyxy"] = (10.4, 10.4, 10.4, 10.4)
sample = renmas2.samplers.Sample(10.4, 10.4, 10, 10, 0.5)
spec = ren.converter.create_spectrum((0.70, 0.2, 0.3))
ren.film.add_sample(sample, spec)
ds["spec1.values"] = spec.to_ds()
runtime.run("test")
ds["sp1.ix"] = 15
ds["sp1.iy"] = 19
ds["sp1.xyxy"] = (15.7, 19.4, 15.7, 19.4)
sample = renmas2.samplers.Sample(10.4, 10.4, 15, 19, 0.5)
spec = ren.converter.create_spectrum((0.50, 0.4, 0.1))
ren.film.add_sample(sample, spec)
ds["spec1.values"] = spec.to_ds()
runtime.run("test")
print(ren.film._ds[0]["temp"])
示例4: test_shader1
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test_shader1(self):
factory = renmas2.Factory()
ren = renmas2.Renderer()
irender = renmas2.IRender(ren)
#ren.spectral_rendering = True
runtime = Runtime()
irender.add_light(type="pointlight", name="light1", source=(4.0,4.0,4.0), position=(10.1,10,10))
irender.add_shape(type="sphere", name="Sphere00", radius=3.0, position=(0.0, 0.0, 0.0))
ren.prepare()
ren.intersector.visibility_asm([runtime], "ray_scene_visibility")
ren.shader.shade_asm([runtime], "shade", "ray_scene_visibility")
mc = ren.assembler.assemble(self.asm_code1(ren))
ds = runtime.load("test", mc)
ds["hp.hit"] = (4.4, 2.2, 1.0, 0.0)
ds["hp.t"] = 2.2
ds["hp.normal"] = (0.0, 1.0, 0.0, 0.0)
ds["hp.mat_index"] = 0
runtime.run("test")
hit = renmas2.Vector3(4.4, 2.2, 1.0)
normal = renmas2.Vector3(0.0, 1.0, 0.0)
hp = renmas2.shapes.HitPoint(2.2, hit, normal, 0)
ret = ren.shader.shade(hp)
print(ret)
print (ds["hp.l_spectrum.values"])
示例5: test_isect1
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test_isect1(self):
factory = renmas2.Factory()
ren = renmas2.Renderer()
runtime = Runtime()
ply = renmas2.core.Ply()
ply.load("I:/Ply_files/Horse97K.ply")
vb = ply.vertex_buffer
tb = ply.triangle_buffer
mesh = factory.create_mesh(vb, tb)
mesh.isect_asm([runtime], "ray_smooth_mesh_intersection", ren.assembler, ren.structures)
mc = ren.assembler.assemble(self.asm_code1(ren))
ds = runtime.load("test", mc)
for i in range(1000):
ray = self.random_ray()
self.ray_ds(ds, ray, "ray1")
self.smooth_mesh_ds(ds, mesh, "mesh1")
runtime.run("test")
hp = mesh.isect(ray)
if hp:
# print(hp.t, ds["hp1.t"])
n1 = hp.normal
n2 = ds["hp1.normal"]
self.assertAlmostEqual(n1.x, n2[0], 3)
self.assertAlmostEqual(n1.y, n2[1], 3)
self.assertAlmostEqual(n1.z, n2[2], 3)
示例6: test_light_sample
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test_light_sample(self):
runtime = Runtime()
ren = renmas2.Renderer()
factory = renmas2.Factory()
rectangle = factory.create_rectangle(point=(0,0,55.92), e1=(55.28,0,0), e2=(0,54.88,0.0), normal=(0.0,0.0,-1.0))
ren.macro_call.set_runtimes([runtime])
mc = rectangle.light_sample_asm('light_rect', ren.assembler, ren.structures)
ds_rect = runtime.load('light_sample_name', mc)
rectangle.populate_ds(ds_rect)
mc = ren.assembler.assemble(self.asm_code1(ren))
ds = runtime.load("test", mc)
runtime.run("test")
print(ds['hp.light_sample'])
print(ds['hp.light_normal'])
print(ds['hp.light_pdf'])
normal = factory.vector(2.9, 1.2, 4.5)
normal.normalize()
hit_point = factory.vector(2.2, 3.3, 4.4)
hp = renmas2.shapes.HitPoint(1.0, hit_point, normal, 0)
rectangle.light_sample(hp)
print(hp.light_sample)
print(hp.light_normal)
print(hp.light_pdf)
示例7: test_hemisphere_cos
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test_hemisphere_cos(self):
factory = renmas2.Factory()
ren = renmas2.Renderer()
runtime = Runtime()
spec = ren.converter.create_spectrum((0.2, 0.3, 0.1))
mat1 = renmas2.core.material.Material(ren.converter.zero_spectrum())
phong = factory.create_phong(spec, 2.0)
lam_sampling = renmas2.materials.LambertianSampling()
mat1.add(phong)
mat1.add(lam_sampling)
normal = factory.vector(2, 4, 5)
normal.normalize()
hit_point = factory.vector(3, 5, 6)
hp = renmas2.shapes.HitPoint(1.5, hit_point, normal, 0)
ren.macro_call.set_runtimes([runtime])
mat1.next_direction_asm([runtime], ren.structures, ren.assembler)
mc = ren.assembler.assemble(self.asm_code1(ren))
ds = runtime.load("test", mc)
ds["next_dir_ptr"] = runtime.address_module(mat1.nd_asm_name)
ds["hp.normal"] = (normal.x, normal.y, normal.z, 0.0)
ds["hp.t"] = 1.5
ds["hp.hit"] = (hit_point.x, hit_point.y, hit_point.z)
runtime.run("test")
print(ds['hp.wi'])
print(ds['hp.ndotwi'])
print(ds['hp.pdf'])
mat1.next_direction(hp)
print(hp.ndotwi)
print(hp.wi)
print(hp.pdf)
示例8: test_phong1
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test_phong1(self):
factory = renmas2.Factory()
ren = renmas2.Renderer()
runtime = Runtime()
mat = renmas2.core.material.Material(ren.converter.zero_spectrum())
spec = ren.converter.create_spectrum((0.2, 0.3, 0.1))
ren.macro_call.set_runtimes([runtime])
phong = factory.create_phong(spec, 2.0)
mat.add(phong)
t = 2.3
hit_point = factory.vector(2.2, 3.1, 4.4)
normal = factory.vector(2.9, 1.2, 4.5)
normal.normalize()
ray = factory.create_ray(origin=(4,4,4), direction=(6,7,8))
hp = renmas2.shapes.HitPoint(t, hit_point, normal, 0, ray)
wi = factory.vector(-6,8,-3.8)
wi.normalize()
hp.wo = ray.dir * -1.0
hp.wi = wi
hp.ndotwi = normal.dot(wi)
mat.f_asm([runtime], ren.assembler, ren.structures)
mc = ren.assembler.assemble(self.asm_code1(ren))
ds = runtime.load("test", mc)
self.populate_ds(ds, hp)
ds["brdf_ptr"] = runtime.address_module(mat.f_asm_name)
runtime.run("test")
spectrum = mat.f(hp)
print(spectrum)
print(ds["hp.f_spectrum.values"])
示例9: test_clamp
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test_clamp():
mgr = ColorManager()
ASM = "\n #DATA \n " + mgr.spectrum_struct() + """
spectrum sp1
float low =0.25
float high = 0.35
#CODE
macro mov ebx, sp1
macro eq32 xmm0 = low
macro eq32 xmm1 = high
macro spectrum clamp ebx
#END
"""
mc = mgr.assembler.assemble(ASM)
#mc.print_machine_code()
runtime = Runtime()
ds = runtime.load("test", mc)
col = mgr.create_spectrum((0.3, 0.2, 0.4))
ds['sp1.values'] = col.to_ds()
runtime.run('test')
print(ds['sp1.values'])
col.clamp(low=0.25, high=0.35)
if col.sampled:
print(col)
else:
print(col.r, col.g, col.b)
pass
示例10: test_transmission_sampling
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test_transmission_sampling(self):
factory = renmas2.Factory()
ren = renmas2.Renderer()
runtime = Runtime()
mat = renmas2.core.material.Material(ren.converter.zero_spectrum())
eta_in = 1.3
eta_out = 1.0
sampling = renmas2.materials.PerfectTransmissionSampling(eta_in, eta_out)
mat.add(sampling)
eta_in = ren.converter.zero_spectrum().set(1.3)
eta_out = ren.converter.zero_spectrum().set(1.0)
fresnel = renmas2.materials.FresnelDielectric(eta_in, eta_out)
spec = ren.converter.create_spectrum((0.5, 0.5, 0.5))
perf_spec = renmas2.materials.PerfectTransmission(spec, fresnel, 1.0)
mat.add(perf_spec)
ref_sam = renmas2.materials.PerfectSpecularSampling()
mat.add(ref_sam)
spec2 = ren.converter.create_spectrum((0.9, 0.9, 0.9))
fresnel2 = renmas2.materials.FresnelDielectric(eta_in, eta_out)
perf_ref = renmas2.materials.PerfectSpecular(spec2, fresnel2, 1.0)
mat.add(perf_ref)
normal = factory.vector(2, 4.5, 5)
normal.normalize()
hit_point = factory.vector(3, 5, 6)
wo = factory.vector(-2, 1, 0)
wo.normalize()
hp = renmas2.shapes.HitPoint(1.5, hit_point, normal, 0)
hp.wo = wo
hp.fliped = False
ren.macro_call.set_runtimes([runtime])
mat.next_direction_bsdf_asm([runtime], ren.structures, ren.assembler)
mc = ren.assembler.assemble(self.asm_code1(ren))
ds = runtime.load("test", mc)
ds["next_dir_ptr"] = runtime.address_module(mat.nd_asm_name)
ds["hp.normal"] = (normal.x, normal.y, normal.z, 0.0)
ds["hp.t"] = 1.5
ds["hp.hit"] = (hit_point.x, hit_point.y, hit_point.z, 0.0)
ds["hp.wo"] = (wo.x, wo.y, wo.z, 0.0)
ds["hp.fliped"] = 0
runtime.run("test")
mat.next_direction_bsdf(hp)
print ("Python")
print (hp.wi)
print (hp.ndotwi)
print (hp.specular)
print (hp.f_spectrum)
print ("ASM")
print (ds["hp.wi"])
print (ds["hp.ndotwi"])
print (ds["hp.specular"])
print (ds["hp.f_spectrum.values"])
示例11: test_isect1
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test_isect1(self):
factory = renmas2.Factory()
ren = renmas2.Renderer()
runtime = Runtime()
irender = renmas2.IRender(ren)
#irender.add_shape(type="mesh", name="cube1", filename="I:/Ply_files/Horse97K.ply")
#irender.add_shape(type="mesh", name="cube1", filename="I:/Obj_files/auto1.obj")
triangle = factory.create_triangle(v0=(2,2,2), v1=(5,2,2), v2=(3.5,5,2))
ray = factory.create_ray(origin=(3,2.5,0), direction=(0,0.1,0.88))
ren.add("triangle1", triangle)
ray = factory.create_ray(origin=(10,10,10), direction=(-1,-1,-1))
ren.intersector.prepare()
ren.intersector.isect_asm([runtime], "ray_scene_intersection")
mc = ren.assembler.assemble(self.asm_code(ren))
ds = runtime.load("test", mc)
ren.intersector.visibility_asm([runtime], "ray_scene_intersection_bool")
self.ray_ds(ds, ray, "ray1")
runtime.run("test")
print(ds["hp1.t"])
hp = ren.intersector.isect(ray)
print(hp.t)
示例12: test1
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test1(self):
mgr = ColorManager()
sampler = RandomSampler(2, 2, pixel=1.0)
tile = Tile(0, 0, 3, 3)
tile.split(1)
runtime = Runtime()
mgr.macro_call.set_runtimes([runtime])
sampler.get_sample_asm([runtime], "get_sample", mgr.assembler)
mc = mgr.assembler.assemble(self.asm_code())
ds = runtime.load('test', mc)
sampler.set_tile(tile)
while True:
sample = sampler.get_sample()
if sample is None:
break
runtime.run('test')
self.show_samples(sample, ds)
runtime.run('test')
ret = ds['kraj']
self.assertFalse(ret)
示例13: Dtest_isect2
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def Dtest_isect2(self):
factory = renmas2.Factory()
ren = renmas2.Renderer()
runtime = Runtime()
ply = renmas2.core.Ply()
ply.load("I:/Ply_files/cube.ply")
#ply.load("I:/Ply_files/dragon_vrip.ply")
vb = ply._vertex_buffer
tb = ply._triangle_buffer
mesh = factory.create_mesh(vb, tb)
triangles = self.create_triangle_list(vb, tb)
mesh.isect_asm([runtime], "ray_flat_mesh_intersection", ren.assembler, ren.structures)
mc = ren.assembler.assemble(self.asm_code2(ren))
ds = runtime.load("test", mc)
for i in range(100):
ray = self.random_ray()
self.ray_ds(ds, ray, "ray1")
self.flat_mesh_ds(ds, mesh, "mesh1")
runtime.run("test")
hp = mesh.isect(ray)
if hp:
print(hp.t)
print(ds["hp1.t"])
print(ds["ret"])
示例14: test_hemisphere_cos
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def test_hemisphere_cos(self):
factory = renmas2.Factory()
ren = renmas2.Renderer()
runtime = Runtime()
mat1 = ren.shader.material("default")
sam = renmas2.materials.HemisphereCos(1.5)
mat1.add(sam)
normal = factory.vector(2, 4, 5)
normal.normalize()
hit_point = factory.vector(3, 5, 6)
hp = renmas2.shapes.HitPoint(1.5, hit_point, normal, 0)
ren.macro_call.set_runtimes([runtime])
mat1.next_direction_asm([runtime], ren.structures, ren.assembler)
mc = ren.assembler.assemble(self.asm_code1(ren))
ds = runtime.load("test", mc)
ds["next_dir_ptr"] = runtime.address_module(mat1.nd_asm_name)
ds["hp.normal"] = (normal.x, normal.y, normal.z, 0.0)
ds["hp.t"] = 1.5
ds["hp.hit"] = (hit_point.x, hit_point.y, hit_point.z)
runtime.run("test")
print(ds['hp.wi'])
print(ds['hp.ndotwi'])
print(ds['hp.pdf'])
mat1.next_direction(hp)
print(hp.ndotwi)
print(hp.wi)
print(hp.pdf)
示例15: intersect_ray_spheres_bool
# 需要导入模块: from tdasm import Runtime [as 别名]
# 或者: from tdasm.Runtime import run [as 别名]
def intersect_ray_spheres_bool(n):
asm = util.get_asm()
mc = asm.assemble(ASM1)
runtime = Runtime()
#Sphere.intersectbool_asm(runtime, "ray_sphere_intersect")
Sphere.intersect_asm(runtime, "ray_sphere_intersect")
ds = runtime.load("test", mc)
for x in range(n):
sphere = generate_sphere()
ray = generate_ray()
ds["sph.origin"] = v4(sphere.origin)
ds["sph.radius"] = sphere.radius
ds["sph.mat_index"] = sphere.material
ds["r1.origin"] = v4(ray.origin)
ds["r1.dir"] = v4(ray.dir)
hp = sphere.intersect(ray, 999999.0)
runtime.run("test")
if hp is not False and ds["hit"] == 0:
print(hp.t, ds["t"], ds["hit"])
if hp is False and ds["hit"] == 1:
print(ds["t"], ds["hit"])
if hp is not False:
print_hitpoint(ds, hp)