summaryrefslogtreecommitdiff
path: root/solids
AgeCommit message (Collapse)Author
2011-09-10new alpha rendering scheme.Anthony LaTorre
2011-09-10change color of pmt shell.Anthony LaTorre
2011-09-09chroma-cam script now used to view geometries.Anthony LaTorre
2011-08-17move useful bits from view.py into camera.py and get rid of view.pyAnthony LaTorre
2011-08-17import chroma modules from subpackages with import chroma.module_nameAnthony LaTorre
2011-08-16add linear_extrude() function to make.py. rotate_extrude() now takes the ↵Anthony LaTorre
number of rotational steps to extrude instead of the angle step size. updated documention in make.py.
2011-08-08add a simple event viewer. view events by running ./camera.py ↵Anthony LaTorre
<detector_name> -i <name_of_io_file>.
2011-08-05speedup bounding volume construction of leaf nodes by taking the min and max ↵Anthony LaTorre
of ungrouped instead of grouped vertices from a mesh
2011-08-03Merge with TonyStan Seibert
2011-07-30you can rotate just the camera by holding the control key and take movies by ↵Anthony LaTorre
pressing the m key.
2011-07-30when throwing photons from the light source out onto the scene, photons are ↵Anthony LaTorre
now thrown randomly across each triangle instead of only at the center of each triangle. all of the rendering kernels have been rewritten so that they operate additively; for example, you may now throw photons from the light source onto the scene, render from the camera to the scene, then throw more photons and render again.
2011-07-28Oops, forgot to include the reduced 8" PMT profile.Stan Seibert
2011-07-27Use the more realistic SNO database and add PMT concentrators.Stan Seibert
2011-07-26Preliminary SNO detector.Stan Seibert
PMTs in the right place and acrylic vessel. No new material properties yet.
2011-07-26added a camera class which is able to render using the simple ray tracer or ↵Anthony LaTorre
the hybrid monte carlo ray tracer in a separate thread. the camera object is initialized by passing a pycuda.driver.Context object and a threading.Lock object; you can then run kernels and copy arrays to and from the device in the same context as that used by the camera by acquiring the lock, calling context.push(), executing the kernel and/or copying arrays, calling context.pop(), and then releasing the lock. fixed mistakes in both build_rgb_lookup() and render() where I had accidently switched the green and blue photons. updated the lbne geometry with the latest specifications. added profiles for the sno pmt and concentrator.
2011-07-20pulled a lot of the photon propagation code out of src/kernel.cu into ↵Anthony LaTorre
src/photon.h so that photon propagation by propagate() in kernel.cu and the hybrid monte carlo ray tracing use the same code. instead of a single state, photons now carry the history of the processes they've undergone. this history is stored as a bitmask; see src/photon.h. start_node and first_node of the mesh are now stored as global variables in mesh.h instead of being passed to kernel functions.
2011-07-19removed STL pmt models; pmt models are now built by calling rotate_extrude() ↵Anthony LaTorre
on a profile of the PMT model (see build_pmt() in solids/pmts.py). triangle intersection now allows one of the two coefficients multiplying the vectors which span the triangle to float slightly negative (up to -EPSILON; EPSILON is defined in src/intersect.h) in order to eliminate rays passing through the line between two triangles. cleaned up a lot of unused code. pulled duplicate code in view() and render() into functions in view.py. in order to allow view.py and render.py to search pre-defined geometries, solids, meshes, etc. without requiring them to be pre-built, pre-defined geometries, solids, meshes, etc. should be returned by a function tagged by the decorator @buildable(identifier) defined in view.py, where identifier is a string used to identify the object as an argument to either view.py or render.py. optical materials and surfaces are now defined in optics.py. added an image directory to save cool screenshots.
2011-07-10added a hybrid monte carlo ray tracing rendering algorithmAnthony LaTorre
2011-06-24argument '-j' to threadtest.py now specifies a list of device ids to be ↵Anthony LaTorre
used. GPUThread objects now shallow copy the geometry so that threads are not writing to the same memory when the geometry is loaded onto the gpu. the model number for the 12" Hamamatsu PMT is R11708, not r7081 (which is the model for the 10" PMT); all references to the 12" PMT were changed accordingly. only allocate space for 20 materials and 20 surfaces on the gpu instead of 100 to save some space. started to modify track.py to build its own photons and module since the GPUThread object only copies photon hit times back from the gpu (not track information), but I am waiting to find out if pycuda GPUArrays can be used with vector types.
2011-06-21Create a r7081_cut mesh that uses the cut PMT model.Stan Seibert
Modify LBNE class to take a cut_pmt option to switch to cut PMT model. Add corresponding lbne_cut, minilbne_cut, microlbne_cut detectors.
2011-06-20pack material and surface indices into the fourth byte of the triangle array ↵Anthony LaTorre
on the GPU. you can now take a screenshot of an image rendered with view.py() by pressing the f12 key.
2011-06-18forgot to initialize gpu random number states in gputhread.run()Anthony LaTorre
2011-06-18moved class definitions for Solid, Mesh, Material, and Surface into ↵Anthony LaTorre
geometry.py and moved instances of these classes into separate folders. the Solid object no longer contains a rotation, displacement, or id variable; instead, they are passed to a geometry object when calling add_solid().