summaryrefslogtreecommitdiff
path: root/camera.py
diff options
context:
space:
mode:
Diffstat (limited to 'camera.py')
-rwxr-xr-xcamera.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/camera.py b/camera.py
index d2d5d6c..0045ae1 100755
--- a/camera.py
+++ b/camera.py
@@ -70,7 +70,7 @@ class Camera(Thread):
self.gpu = GPU(self.device_id)
self.gpu.load_geometry(geometry)
- self.kernels = CUDAFuncs(self.gpu.module, ['ray_trace', 'rotate', 'rotate_around_point', 'translate', 'update_xyz_lookup', 'update_xyz_image', 'process_image', 'init_rng'])
+ self.kernels = CUDAFuncs(self.gpu.module, ['ray_trace', 'ray_trace_alpha', 'rotate', 'rotate_around_point', 'translate', 'update_xyz_lookup', 'update_xyz_image', 'process_image', 'init_rng'])
self.width, self.height = size
@@ -94,6 +94,7 @@ class Camera(Thread):
self.directions_gpu = gpuarray.to_gpu(directions.astype(np.float32).view(gpuarray.vec.float3))
self.pixels_gpu = gpuarray.zeros(self.width*self.height, dtype=np.int32)
+ self.alpha = True
self.movie = False
self.movie_index = 0
self.movie_dir = None
@@ -205,7 +206,10 @@ class Camera(Thread):
self.update_image()
self.process_image()
else:
- self.kernels.ray_trace(np.int32(self.pixels_gpu.size), self.origins_gpu, self.directions_gpu, self.pixels_gpu, block=(self.nblocks,1,1), grid=(self.pixels_gpu.size//self.nblocks+1,1))
+ if self.alpha:
+ self.kernels.ray_trace_alpha(np.int32(self.pixels_gpu.size), self.origins_gpu, self.directions_gpu, self.pixels_gpu, block=(self.nblocks,1,1), grid=(self.pixels_gpu.size//self.nblocks+1,1))
+ else:
+ self.kernels.ray_trace(np.int32(self.pixels_gpu.size), self.origins_gpu, self.directions_gpu, self.pixels_gpu, block=(self.nblocks,1,1), grid=(self.pixels_gpu.size//self.nblocks+1,1))
pygame.surfarray.blit_array(self.screen, self.pixels_gpu.get().reshape(self.size))
pygame.display.flip()
@@ -304,6 +308,10 @@ class Camera(Thread):
self.clear_image()
self.update()
+ elif event.key == K_F8:
+ self.alpha = not self.alpha
+ self.update()
+
elif event.key == K_m:
if self.movie:
encode_movie(self.movie_dir)