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

# SCM Repository

[diderot] Annotation of /branches/fem/test/mandel.diderot
 [diderot] / branches / fem / test / mandel.diderot

# Annotation of /branches/fem/test/mandel.diderot

Revision 1971 - (view) (download)
Original Path: branches/vis12/test/mandel.diderot

 1 : jhr 1938 /*! \file mandel.diderot 2 : * 3 : * \author Gordon Kindlmann 4 : */ 5 : glk 1904 6 : jhr 1938 /* 7 : * COPYRIGHT (c) 2012 The Diderot Project (http://diderot-language.cs.uchicago.edu) 8 : * All rights reserved. 9 : */ 10 : glk 1904 11 : glk 1894 // ../bin/diderotc --exec mandel.diderot && ./mandel && unu quantize -b 8 -i rgb.nrrd -o mandel.png 12 : glk 1893 13 : // Global definitions 14 : glk 1904 input int reso = 2000; 15 : jhr 1971 input real escape = 4; 16 : glk 1904 input int maxiter = 2000; 17 : input vec2 center = [-1.2, -0.3]; // [0.0,0.0] for whole thing 18 : glk 1948 input real fov = 0.16; // 2.0 for whole thing 19 : glk 1893 20 : // Strand definition 21 : jhr 1971 strand mandel (vec2 c) { 22 : vec2 z = [0, 0]; 23 : glk 1893 int iter = 0; 24 : jhr 1971 output vec3 rgb = [0, 0, 0]; 25 : glk 1893 update { 26 : z = [z[0]^2 - z[1]^2, 2.0*z[0]*z[1]] + c; // z = z^2 + c 27 : iter += 1; 28 : glk 1948 if (|z| > escape) { 29 : // point has escaped; set continuous color from iter and radius 30 : jhr 1971 real t = 4*log(real(iter) - log2(log(|z|)/log(escape))); 31 : glk 1948 rgb = [sin(-t), cos(t), sin(t)]; 32 : rgb = ([1.8, 1.8, 1.8] + rgb)/2.8; 33 : glk 1893 stabilize; 34 : } 35 : if (iter > maxiter) { 36 : jhr 1971 rgb = [0, 0, 0]; 37 : glk 1893 stabilize; 38 : } 39 : } 40 : } 41 : 42 : // Strand initialization 43 : jhr 1971 initially [ mandel([lerp(center[0]-fov, center[0]+fov, 1, crIdx, reso), 44 : lerp(center[1]-fov, center[1]+fov, 1, ciIdx, reso)]) 45 : glk 1897 | ciIdx in 1..reso, crIdx in 1..reso ];

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