#include "rmannotes.sl" surface jellysurf2(float Kd=.1, Ka=.1, Ks=.1, roughness=.1) { color surface_color, layer_color; color surface_opac; color layer_opac; float fuzz = 0.0025; float fuzz2 = 0.035; float noi = 0; point center; color baby_blue = color (0.15,0.3,0.7); color shiny = color (0.65,0.63, 0.1); color shiny2 = color (0.45,0.63, 0.25); color blue = color (0.2,0,0.8); color red = color (1,0,0); color specularcolor = 2; color red2 = color (0.6,0.1,0.2); color red3 = color (1,0.25,0.3); float radius, ss, tt, half_width; float s2, t2; float row, d, d1, d2, d3, d4, d5, d6, d7; float noifreq = 5; float noiscale = 0.4; float freq = 3; float freq2 = 30; float sum = 0; point p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, Nf,V; ss = repeat (s, 2); tt = repeat (t, 2); /* row = whichtile(t, 2); if (even(row)) ss = mod(ss + 0.5, 1);*/ surface_opac = Os; surface_color = color (0.9,0.9,0.85); layer_color = texture("jellybeans01.tex", ss, tt); center = (0.5, 0.5, 0); radius = 0.35; d = distance(center, (ss, tt, 0)); layer_opac = 1 - smoothstep(radius - fuzz, radius, d); surface_color = blend(surface_color, layer_color, layer_opac); layer_color = baby_blue; center = (0.5, 0.5, 0); radius = 0.35; half_width = 0.025; d = distance(center, (ss, tt, 0)); layer_opac = pulse(radius - half_width, radius + half_width, fuzz2, d); surface_color = blend(surface_color, layer_color, layer_opac); /*layer1*/ layer_color = red3; p1 = (0.95, 0.8, 0); p2 = (0.82, 0.65, 0); half_width = 0.025; noi = noise(s * noifreq, t * noifreq); ss = s + snoise(noi + 633) * noiscale * freq; tt = t + snoise(noi + 333) * noiscale * freq; d = (ptlined(p1, p2,(ss, tt, 0)) * freq)* freq; layer_opac = 1 - smoothstep(half_width - fuzz, half_width, d); surface_color = blend(surface_color, layer_color, layer_opac); layer_color = shiny; p3 = (0.05, 0.8, 0); p4 = (0.18, 0.65, 0); half_width = 0.125; noi = noise(s * noifreq, t * noifreq); ss = (s + snoise(noi + 912) * noiscale * freq)* repeat(ss, freq); tt = (t + snoise(noi + 333) * noiscale * freq)* repeat(tt, freq); d1 =(ptlined(p3, p4,(ss, tt, 0) * freq))* freq; layer_opac = 1 - smoothstep(half_width - fuzz, half_width, d1); surface_color = blend(surface_color, layer_color, layer_opac); layer_color = red; p5 = (0.5, 0.85, 0); p6 = (0.5, 1, 0); half_width = 0.125; noi = noise(s * noifreq, t * noifreq); ss = (s + snoise(noi + 912) * noiscale * freq)* repeat(ss, freq); tt = (t + snoise(noi + 412) * noiscale * freq)* repeat(tt, freq); d2 = (ptlined(p5, p6,(ss, tt, 0) * freq))* freq; layer_opac = 1 - smoothstep(half_width - fuzz, half_width, d2); surface_color = blend(surface_color, layer_color, layer_opac); layer_color = red3; p7 = (0.05, 0.2, 0); p8 = (0.18, 0.35, 0); half_width = 0.225; noi = noise(s * noifreq, t * noifreq); ss = (s + snoise(noi + 912) * noiscale * freq)* repeat(ss, freq); tt = (t + snoise(noi + 333) * noiscale * freq)* repeat(tt, freq); d3 = (ptlined(p7, p8,(ss, tt, 0) * freq)) * freq; layer_opac = 1 - smoothstep(half_width - fuzz, half_width, d3); surface_color = blend(surface_color, layer_color, layer_opac); layer_color = red2; p9 = (0.5, 0.15, 0); p10 = (0.5, 0, 0); half_width = 0.025; noi = noise(s * noifreq, t * noifreq); ss = (s + snoise(noi + 912) * noiscale * freq)* repeat(ss, freq2); tt = (t + snoise(noi + 333) * noiscale * freq)* repeat(tt, freq2); d4 = (ptlined(p9, p10,(ss, tt, 0) * freq)* repeat(ss, freq2) * freq2) * freq; rotate2d(s, t, (radians(25)*noi), 0.5, 0.5, ss, tt); layer_opac = 1 - smoothstep(half_width - fuzz, half_width, d4); surface_color = blend(surface_color, layer_color, layer_opac); layer_color = red; p11 = (0.95, 0.2, 0); p12 = (0.82, 0.35, 0); half_width = 0.520; noi = noise(s * noifreq, t * noifreq); ss = (s + snoise(noi + 912) * noiscale * freq)* repeat(ss, freq2/noi); tt = (t + snoise(noi + 333) * noiscale * freq)* repeat(tt, freq2/noi); d5 = (ptlined(p11, p12,(ss, tt, 0)* freq)* repeat(ss, freq2) * freq) * freq; rotate2d(s, t, (radians(45)*noi), 0.5, 0.5, ss, tt); layer_opac = 1 - smoothstep(half_width - fuzz, half_width, d5); surface_color = blend(surface_color, layer_color, layer_opac); /*layer_color = red3; ;;p13 = (0.85, 0.5, 0); ;;p14 = (1, 0.5, 0); ;; half_width = 0.15; ;;noi = noise(s * noifreq, t * noifreq); ;; ss = (s + snoise(noi + 912) * noiscale * freq)* repeat(ss, freq); ;; tt = (t + snoise(noi + 333) * noiscale * freq)* repeat(tt, freq); ;;d6 = (ptlined(p13, p14,(ss, tt, 0)* repeat(tt, freq2)* freq)) * freq; rotate2d(s, t, (radians(45)*noi), 0.5, 0.5, ss, tt); layer_opac = 1 - smoothstep(half_width - fuzz, half_width, d6); surface_color = blend(surface_color, layer_color, layer_opac);*/ layer_color = red3; p15 = (0, 0.5, 0); p16 = (0.15, 0.5, 0); half_width = 0.015; noi = noise(s * noifreq, t * noifreq); ss = (s + snoise(noi + 0.912) * noiscale * freq)* repeat(ss, freq); tt = (t + snoise(noi + 0.333) * noiscale * freq)* repeat(tt, freq); d7 = (ptlined(p15, p16,(ss, tt, 0)* freq)) * repeat(ss, freq2); layer_opac = 1 - smoothstep(half_width - fuzz, half_width, d7); surface_color = blend(surface_color, layer_color, layer_opac); Oi = Os; Ci = surface_color * Os + ((Ka*ambient() + Kd*diffuse(Nf)) + specularcolor * Ks * specular(Nf,V,roughness) ); }