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
def test_set(): mgr = ColorManager() ASM = "\n #DATA \n " + mgr.spectrum_struct() + """ spectrum sp1 float value = 0.3 #CODE macro mov ebx, sp1 macro eq32 xmm0 = value macro spectrum ebx = xmm0 #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']) print(col.set(0.3))
def test_sum(): mgr = ColorManager() ASM = "\n #DATA \n " + mgr.spectrum_struct() + """ spectrum sp1 float sum #CODE macro mov ebx, sp1 macro spectrum sum ebx macro eq32 sum = xmm0 {xmm7} #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['sum']) if col.sampled: print(sum(col.samples)) else: print(col.r + col.g + col.b)
def test_arithmetic(): mgr = ColorManager() ASM = "\n #DATA \n " + mgr.spectrum_struct() + """ spectrum sp1, sp2, sp3 #CODE macro mov ebx, sp1 macro mov eax, sp2 macro mov ecx, sp3 macro spectrum ecx = eax + ebx #END """ mc = mgr.assembler.assemble(ASM) #mc.print_machine_code() runtime = Runtime() ds = runtime.load("test", mc) col1 = mgr.create_spectrum((0.3, 0.2, 0.4)) col2 = mgr.create_spectrum((0.1, 0.5, 0.1)) ds['sp1.values'] = col1.to_ds() ds['sp2.values'] = col2.to_ds() runtime.run('test') print(ds['sp3.values']) print(col1+col2) pass
import platform from tdasm import Runtime from renmas3.core import ColorManager, ShadePoint, Material, Factory from renmas3.materials import Lambertian col_mgr = ColorManager(False) mat = Material(col_mgr.zero_spectrum()) lamb = Lambertian(col_mgr.create_spectrum((0.3, 0.4, 0.6))) mat.add(lamb) factory = Factory() sp = factory.shade_point() sp.normal = factory.vector3(0, 1, 0) sp.wi = factory.vector3(2, 2, 2) print(mat.brdf(sp)) runtime = Runtime() mat.brdf_asm([runtime], col_mgr.assembler) bits = platform.architecture()[0] if bits == '64bit': ASM = "#DATA \n" + col_mgr.zero_spectrum().struct() + ShadePoint.struct( ) + """ shadepoint sp1 uint64 ptr_brdf #CODE macro mov eax, sp1
import platform from tdasm import Runtime from renmas3.core import ColorManager, ShadePoint, Material, Factory from renmas3.materials import Lambertian col_mgr = ColorManager(False) mat = Material(col_mgr.zero_spectrum()) lamb = Lambertian(col_mgr.create_spectrum((0.3, 0.4, 0.6))) mat.add(lamb) factory = Factory() sp = factory.shade_point() sp.normal = factory.vector3(0, 1, 0) sp.wi = factory.vector3(2, 2, 2) print(mat.brdf(sp)) runtime = Runtime() mat.brdf_asm([runtime], col_mgr.assembler) bits = platform.architecture()[0] if bits == "64bit": ASM = ( "#DATA \n" + col_mgr.zero_spectrum().struct() + ShadePoint.struct() + """ shadepoint sp1