summaryrefslogtreecommitdiff
path: root/view.py
diff options
context:
space:
mode:
authorAnthony LaTorre <telatorre@gmail.com>2011-05-18 18:29:43 -0400
committerAnthony LaTorre <telatorre@gmail.com>2011-05-18 18:29:43 -0400
commit3a0571534185505a38dc992a7e21a3eb027aae97 (patch)
treec60b21f5b6fcc803a9f59c2fcd2d70a42c148600 /view.py
parent9306f888fea903accf827870a122a2f6f76e472e (diff)
downloadchroma-3a0571534185505a38dc992a7e21a3eb027aae97.tar.gz
chroma-3a0571534185505a38dc992a7e21a3eb027aae97.tar.bz2
chroma-3a0571534185505a38dc992a7e21a3eb027aae97.zip
added test likelihood
Diffstat (limited to 'view.py')
-rwxr-xr-xview.py36
1 files changed, 26 insertions, 10 deletions
diff --git a/view.py b/view.py
index 2c37d2e..7e9e815 100755
--- a/view.py
+++ b/view.py
@@ -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)}