Пример #1
0
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
Пример #2
0
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))
Пример #3
0
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)
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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