diff options
author | Anthony LaTorre <telatorre@gmail.com> | 2011-05-18 18:29:43 -0400 |
---|---|---|
committer | Anthony LaTorre <telatorre@gmail.com> | 2011-05-18 18:29:43 -0400 |
commit | 3a0571534185505a38dc992a7e21a3eb027aae97 (patch) | |
tree | c60b21f5b6fcc803a9f59c2fcd2d70a42c148600 /view.py | |
parent | 9306f888fea903accf827870a122a2f6f76e472e (diff) | |
download | chroma-3a0571534185505a38dc992a7e21a3eb027aae97.tar.gz chroma-3a0571534185505a38dc992a7e21a3eb027aae97.tar.bz2 chroma-3a0571534185505a38dc992a7e21a3eb027aae97.zip |
added test likelihood
Diffstat (limited to 'view.py')
-rwxr-xr-x | view.py | 36 |
1 files changed, 26 insertions, 10 deletions
@@ -4,11 +4,14 @@ import numpy as np import pygame from pygame.locals import * +import layout from camera import * from geometry import * from transform import * -from gpu import * +from pycuda import autoinit +from pycuda.compiler import SourceModule +from pycuda import gpuarray def view(geometry, name=''): """ @@ -23,11 +26,14 @@ def view(geometry, name=''): scale = np.linalg.norm(upper_bound-lower_bound) - gpu = GPU() - gpu.load_geometry(geometry) - cuda_raytrace = gpu.get_function('ray_trace') - cuda_rotate = gpu.get_function('rotate') - cuda_translate = gpu.get_function('translate') + print 'device %s' % autoinit.device.name() + + source = open(layout.source + '/kernel.cu').read() + module = SourceModule(source, options=['-I' + layout.source], no_extern_c=True, cache_dir=False) + texrefs = geometry.load(module) + cuda_raytrace = module.get_function('ray_trace') + cuda_rotate = module.get_function('rotate') + cuda_translate = module.get_function('translate') pygame.init() size = width, height = 800, 600 @@ -44,14 +50,24 @@ def view(geometry, name=''): camera.position(point) - origin, direction = camera.get_rays() + origins, directions = camera.get_rays() + + origins_float3 = np.empty(origins.shape[0], dtype=gpuarray.vec.float3) + origins_float3['x'] = origins[:,0] + origins_float3['y'] = origins[:,1] + origins_float3['z'] = origins[:,2] + + directions_float3 = np.empty(directions.shape[0], dtype=gpuarray.vec.float3) + directions_float3['x'] = directions[:,0] + directions_float3['y'] = directions[:,1] + directions_float3['z'] = directions[:,2] + + origins_gpu = cuda.to_device(origins_float3) + directions_gpu = cuda.to_device(directions_float3) pixels = np.empty(width*height, dtype=np.int32) pixels_gpu = cuda.to_device(pixels) - origins_gpu = cuda.to_device(make_vector(origin)) - directions_gpu = cuda.to_device(make_vector(direction)) - nblocks = 64 gpu_kwargs = {'block': (nblocks,1,1), 'grid':(pixels.size/nblocks+1,1)} |