Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/vis12/test/vr-phong.diderot
ViewVC logotype

Diff of /branches/vis12/test/vr-phong.diderot

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 46, Tue Apr 6 17:02:18 2010 UTC revision 54, Tue Apr 20 15:58:46 2010 UTC
# Line 5  Line 5 
5    
6  input string dataFile;          // name of dataset  input string dataFile;          // name of dataset
7  input real stepSz;              // size of steps  input real stepSz;              // size of steps
8  input vec<3> lightDir;  input vec3 lightDir;
9  input vec<3> lightCol;  input vec3 lightCol;
10  input vec<3> eye;               // location of eye point  input vec3 eye;               // location of eye point
11  input vec<3> orig;              // location of pixel (0,0)  input vec3 orig;              // location of pixel (0,0)
12  input vec<3> cVec;              // vector between pixels horizontally  input vec3 cVec;              // vector between pixels horizontally
13  input vec<3> rVec;              // vector between pixels vertically  input vec3 rVec;              // vector between pixels vertically
14  input real pka;  input real pka;
15  input real pkd;  input real pkd;
16  input real pks;  input real pks;
17  input real psh;  input real psh;
18    
19  image[3] img = load (dataFile);  image(3)[] img = load (dataFile);
20    
21  field#1[3] F = convolve (bspln3, img);  field#1(3)[] F = convolve (bspln3, img);
22    
23    field#0(1)[4] txf = convolve (tent, load("txf-rgba.nrrd"));
24    
25  actor RayCast (int row, int col)  actor RayCast (int row, int col)
26  {  {
27      vec<3>      pos = orig + row*rVec + col*cVec;      vec3        pos = orig + row*rVec + col*cVec;
28      vec<3>      dir = pos - eye/|pos - eye|;      vec3        dir = (pos - eye)/|pos - eye|;
29      real        t = 0.0;      real        t = 0.0;
30      vec<3>      rayRGB = (0.0, 0.0, 0.0);      vec3        rayRGB = (0.0, 0.0, 0.0);
31      real        rayTransp = 1.0;      real        rayTransp = 1.0;
32    
33      update      update
34      {      {
35          if (inside (pos,F)) {          if (inside (pos,F)) {
36             real val = F@pos;             real val = F@pos;
37             vec<3> grad = (D F)@pos;             vec3 grad = (D F)@pos;
38             vec<3> norm = grad/|grad|;             vec3 norm = grad/|grad|;
39             vec<3> half = lightDir - dir/|lightDir - dir|;             vec3 half = lightDir - dir/|lightDir - dir|;
40             vec<4> matRGBA = txf(val);             vec4 matRGBA = txf@val;
41             vec<3> matRGB = (matRGBA[0],matRGBA[1],matRGBA[2]);             vec3 matRGB = (matRGBA[0],matRGBA[1],matRGBA[2]);
42             real ldotn = dot(lightDir,norm);             real ldotn = dot(lightDir,norm);
43             real hdotn = dot(halfDir,norm);             real hdotn = dot(halfDir,norm);
44             // hey the per-component multiplication is in matRGB*lightRGB             // hey the per-component multiplication is in matRGB*lightRGB
45             vec<3> pntRGB = (ka + kd*ldotn)*matRGB*lightRGB + ks*pow(hdotn,psh)*lightRGB;             vec3 pntRGB = (ka + kd*ldotn)*matRGB*lightRGB + ks*pow(hdotn,psh)*lightRGB;
46             rayRGB = rayRGB + rayTranps*matRGBA[3]*matRGB;             rayRGB = rayRGB + rayTranps*matRGBA[3]*matRGB;
47             rayTransp = rayTranps*(1.0 - matRGBA[3]);             rayTransp = rayTranps*(1.0 - matRGBA[3]);
48          }          }

Legend:
Removed from v.46  
changed lines
  Added in v.54

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0