// 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 = load (dataFile); field#1[3] F = convolve (bspln3, img); actor 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 ];