19 |
|
|
20 |
field#4(3)[] V = bspln5 ⊛ image("canny.nrrd"); |
field#4(3)[] V = bspln5 ⊛ image("canny.nrrd"); |
21 |
|
|
|
|
|
22 |
input real gmin = 1; // NOTISO (canny & ref) |
input real gmin = 1; // NOTISO (canny & ref) |
23 |
|
|
|
// no other fields can be defined in NOTISO NOTCANNY (ref) |
|
|
|
|
|
// field#1(3)[] S = ∇⊗∇M • D • D; // NOTISO |
|
|
// input real smax = -1;// NOTISO |
|
|
|
|
24 |
function real alpha(real v, real g) = clamp(0, 1, 1.2*(1 - |v|/(g*thickness))); |
function real alpha(real v, real g) = clamp(0, 1, 1.2*(1 - |v|/(g*thickness))); |
25 |
field#0(1)[3] cmap = tent ⊛ image("isobow.nrrd"); |
field#0(1)[3] cmap = tent ⊛ image("isobow.nrrd"); |
26 |
function vec3 color(vec3 x) = cmap(clamp(-3,1,V(x))); |
function vec3 color(vec3 x) = cmap(clamp(-3,1,V(x))); |
48 |
update { |
update { |
49 |
vec3 x = camEye + rayN*rayVec; |
vec3 x = camEye + rayN*rayVec; |
50 |
if (inside(x,V) && |∇V(x)| > gmin) { // NOTISO (canny & ref) |
if (inside(x,V) && |∇V(x)| > gmin) { // NOTISO (canny & ref) |
|
|
|
|
|
|
51 |
vec3 g = ∇V(x); // NOTISO NOTCANNY (ref) |
vec3 g = ∇V(x); // NOTISO NOTCANNY (ref) |
52 |
tensor[3,3] H = ∇⊗∇V(x); // NOTISO NOTCANNY (ref) |
tensor[3,3] H = ∇⊗∇V(x); // NOTISO NOTCANNY (ref) |
53 |
tensor[3,3,3] J = ∇⊗∇⊗∇V(x); // NOTISO NOTCANNY (ref) |
tensor[3,3,3] J = ∇⊗∇⊗∇V(x); // NOTISO NOTCANNY (ref) |