示例#1
0
    cury = cury + 1
    if cury == endy:
        return 0
#x = pixel_size * (curx + w2)
#y = pixel_size * (cury + h2)

x = pixel_size * (w2 + curx)
y = pixel_size * (w2 + cury)
sam.x = x
sam.y = y
sam.ix = curx
sam.iy = cury
return 1
"""

args1 = arg_map([('endx', 0), ('endy', 0), ('tilex', 0), ('tiley', 0),
    ('pixel_size', 1.0), ('curx', 0), ('cury', 0), ('w2', 0.0), ('h2', 0.0)])
args2 = arg_list([('sam', sample)])
sample_shader = create_shader("generate_sample", code2, args1, args2, func=True)
#print(sample_shader._code)


arg_map1 = arg_map([('x', 0.0)])
code = """
sam = sample()
ret = 1
while ret != 0:
    ret = generate_sample(sam)
x = sam.y
"""

runtimes = [Runtime()]
示例#2
0
from tdasm import Runtime
from renmas3.base import create_shader, arg_map, Integer, Float, Vec3
from renmas3.base import create_function, arg_list

arg_map1 = arg_map([('v1', Vec3), ('v2', Vec3), ('f1', Float), ('i1', Integer)])
code = """
p3 = (3.4, 3.3, 2.2)
v1 = p3
mm = 4.4
f1 = mm
gg = 44
i1 = gg + 88
p55 = 33
p55 = 4.4
"""
shader = create_shader("test", code, arg_map1)
print (shader._code)
runtimes = [Runtime()]
shader.prepare(runtimes)
shader.execute()

print(shader.get_value('v1'))
print(shader.get_value('v2'))
print(shader.get_value('f1'))
print(shader.get_value('i1'))

示例#3
0
import time
from tdasm import Runtime
from renmas3.base import ImagePRGBA, arg_map, create_shader

arg_map1 = arg_map([('image1', ImagePRGBA)])

img1 = ImagePRGBA(1024, 768)

code = """
value = (0.5, 0.5, 0.5)
y = image1.height - 1
while y >= 0:
    x = image1.width - 1
    while x >= 0:
        set_rgb(image1, x, y, value)
        x = x - 1
    y = y - 1
"""
shader = create_shader("test", code, arg_map1)
runtimes = [Runtime()]
shader.prepare(runtimes)
shader.set_value('image1', img1)

start = time.clock()
shader.execute()
end = time.clock()
print("Execution time of shader = ", end - start)

start = time.clock()
for y in range(img1.height):
    for x in range(img1.width):
示例#4
0
from tdasm import Runtime
from renmas3.base import ImagePRGBA, arg_map, create_shader, Vec3

arg_map1 = arg_map([('image1', ImagePRGBA), ('value', Vec3)])

img1 = ImagePRGBA(1024, 768)

img1.set_pixel(10, 10, 0.4, 0.3, 0.2)
code = """
value = get_rgb(image1, 10, 10)

color = (0.1, 0.5, 0.6)
set_rgb(image1, 20, 20, color)
"""

shader = create_shader("test", code, arg_map1)
runtimes = [Runtime()]
shader.prepare(runtimes)
shader.set_value('image1', img1)
shader.execute()

print(shader.get_value('value'))
print(img1.get_pixel(20, 20))


示例#5
0
import time
from tdasm import Runtime
from renmas3.base import ImagePRGBA, arg_map, create_shader

arg_map1 = arg_map([('image1', ImagePRGBA)])

img1 = ImagePRGBA(1024, 768)

code = """
value = (0.5, 0.5, 0.5)
y = image1.height - 1
while y >= 0:
    x = image1.width - 1
    while x >= 0:
        set_rgb(image1, x, y, value)
        x = x - 1
    y = y - 1
"""
shader = create_shader("test", code, arg_map1)
runtimes = [Runtime()]
shader.prepare(runtimes)
shader.set_value('image1', img1)

start = time.clock()
shader.execute()
end = time.clock()
print("Execution time of shader = ", end-start)

start = time.clock()
for y in range(img1.height):
示例#6
0
    if cury == endy:
        return 0
#x = pixel_size * (curx + w2)
#y = pixel_size * (cury + h2)

x = pixel_size * (w2 + curx)
y = pixel_size * (w2 + cury)
sam.x = x
sam.y = y
sam.ix = curx
sam.iy = cury
return 1
"""

args1 = arg_map([('endx', 0), ('endy', 0), ('tilex', 0), ('tiley', 0),
                 ('pixel_size', 1.0), ('curx', 0), ('cury', 0), ('w2', 0.0),
                 ('h2', 0.0)])
args2 = arg_list([('sam', sample)])
sample_shader = create_shader("generate_sample",
                              code2,
                              args1,
                              args2,
                              func=True)
#print(sample_shader._code)

arg_map1 = arg_map([('x', 0.0)])
code = """
sam = sample()
ret = 1
while ret != 0:
    ret = generate_sample(sam)
示例#7
0
from renmas3.base import create_shader, arg_map

eye = Vector3(2.2, 3.3, 4.4)
lookat = Vector3(1.1, 2.2, 0.0)
distance = 3.3
sample = Sample(2.2, 3.3, 5, 6, 1.0)

camera = create_perspective_camera(eye, lookat, distance)

runtimes = [Runtime()]
camera.prepare(runtimes)

call_code = """
generate_ray(sample, ray)
"""
args = arg_map([('sample', Sample), ('ray', Ray)])
shader = create_shader('test', call_code, args=args, shaders=[camera.shader])

shader.prepare(runtimes)
shader.set_value('sample', sample)

ray = camera.execute_py(sample)
shader.execute()


def cmp_vec3(vec1, vec2):
    if round(vec1.x - vec2.x, 3) != 0:
        raise ValueError("Vectors are different", vec1, vec2)
    if round(vec1.y - vec2.y, 3) != 0:
        raise ValueError("Vectors are different", vec1, vec2)
    if round(vec1.z - vec2.z, 3) != 0:
示例#8
0
from tdasm import Runtime
from renmas3.base import ImagePRGBA
import renmas3.base
from renmas3.base import create_shader, create_argument, create_user_type
from renmas3.base import arg_map, arg_list
from renmas3.base import register_user_type
from renmas3.base import Vector3


point = create_user_type(typ="point", fields=[('x', 10), ('y', 20)])
size = create_user_type(typ="size", fields=[('w', 0.0), ('h', 0.0), ('k', (3,4,5))])
register_user_type(point)
register_user_type(size)

arg_map1 = arg_map([('p1', 3), ('p2', 4), ('ps', point), ('pm', point),('p3', 0.3),
    ('p4', (4,5,6)), ('rect', size), ('slika', ImagePRGBA)])

code = """
p1 = 484
ps.x = 14
p3 = 3.3
p4 = (92,3,3)
p5 = 55
p1 = ps.x
p7 = 8.8
p3 = p7
pm.x = ps.y
p11 = (6,7,8)
p4 = p11
p3 = p1
rect.w = 4.4
示例#9
0
from renmas3.base import create_shader, arg_map

eye = Vector3(2.2, 3.3, 4.4)
lookat = Vector3(1.1, 2.2, 0.0)
distance = 3.3
sample = Sample(2.2, 3.3, 5, 6, 1.0)

camera = create_perspective_camera(eye, lookat, distance)

runtimes = [Runtime()]
camera.prepare(runtimes)

call_code = """
generate_ray(sample, ray)
"""
args = arg_map([("sample", Sample), ("ray", Ray)])
shader = create_shader("test", call_code, args=args, shaders=[camera.shader])

shader.prepare(runtimes)
shader.set_value("sample", sample)

ray = camera.execute_py(sample)
shader.execute()


def cmp_vec3(vec1, vec2):
    if round(vec1.x - vec2.x, 3) != 0:
        raise ValueError("Vectors are different", vec1, vec2)
    if round(vec1.y - vec2.y, 3) != 0:
        raise ValueError("Vectors are different", vec1, vec2)
    if round(vec1.z - vec2.z, 3) != 0:
示例#10
0
from tdasm import Runtime
from renmas3.base import create_shader, arg_map, Integer, Float, Vec3
from renmas3.base import create_function, arg_list

runtimes = [Runtime()]
code2 = """
#input a = float, b = int
a = b
return a
"""
arg_lst1 = arg_list([('a', Float), ('b', Integer)])
sh1 = create_function('conv_int', code2, input_args=arg_lst1)
sh1.prepare(runtimes)


arg_map1 = arg_map([('a', Integer), ('b', Float), ('c', Vec3),
    ('f', Vec3)])
code = """
a = 2
b = 2.2
c = (2, 3, 4)
f = [6,7,7.7]
b = conv_int(b, a)
int(55)
b = 3 + pow(2,3) * 2.5
#b = pow(2,3) * 2.5 + 3
"""


shader = create_shader("test", code, arg_map1, shaders=[sh1])
shader.prepare(runtimes)
shader.execute()
示例#11
0
from tdasm import Runtime
from renmas3.base import create_shader, arg_map, Integer, Float, Vec3
from renmas3.base import create_function, arg_list

runtimes = [Runtime()]
code2 = """
#input a = float, b = int
a = b
return a
"""
arg_lst1 = arg_list([('a', Float), ('b', Integer)])
sh1 = create_function('conv_int', code2, input_args=arg_lst1)
sh1.prepare(runtimes)

arg_map1 = arg_map([('a', Integer), ('b', Float), ('c', Vec3), ('f', Vec3)])
code = """
a = 2
b = 2.2
c = (2, 3, 4)
f = [6,7,7.7]
b = conv_int(b, a)
int(55)
b = 3 + pow(2,3) * 2.5
#b = pow(2,3) * 2.5 + 3
"""

shader = create_shader("test", code, arg_map1, shaders=[sh1])
shader.prepare(runtimes)
shader.execute()
print(shader._code)