// vr.diderot // // volume rendering example in Diderot // input string dataFile; // name of dataset input real stepSz; // size of steps input vec<3> light; input int wid = 640; input int ht = 480; image[3] img = image (dataFile); field#1(3)[3] F = bspln3 ⊛ img; strand RayCast (int row, int col) { vec<3> dir = (real(row), real(col), 0.0); vec<3> pos = (0.0, 0.0, 0.0); real t = 0.0; real[4] color = (0.0, 0.0, 0.0, 0.0); update { vec<3> pt = pos + t*dir; t = t + stepSz; vec<3> g = (D F)(pt); color = over(color, phong(light, g, txf(F(pt)))); if (color[3] >= 0.999) stabilize; } } initially [ RayCast(r, c) | r in 0 .. ht-1, c in 0 .. wid-1 ];
Click to toggle
does not end with </html> tag
does not end with </body> tag
The output has ended thus: >= 0.999) stabilize; } } initially [ RayCast(r, c) | r in 0 .. ht-1, c in 0 .. wid-1 ];