home *** CD-ROM | disk | FTP | other *** search
/ ftp.xmission.com / 2014.06.ftp.xmission.com.tar / ftp.xmission.com / pub / lists / fractdev / archive / fractdev.200003 < prev    next >
Internet Message Format  |  2000-03-23  |  35KB

  1. From: Ron Barnett <rbarnett@telenet.net>
  2. Subject: RE: Truecolor support
  3. Date: 01 Mar 2000 11:07:55 -0500
  4.  
  5. Woops! I sent the original with my company email address. Hopefully this 
  6. one will make it to the list :-}.
  7.  
  8. -----Original Message-----
  9. Sent:    March 01 2000 10:55
  10.  
  11. Tim,
  12. Unfortunately, my new job, which started 8 months ago, is totally consuming 
  13. my time. I am responsible for developing a new business in a software 
  14. (Laboratory Information Management Systems) company and taking courses to 
  15. get Oracle DBA certification. I haven't had time to do anything on 
  16. truecolor support, let alone dig much into the code. I thought I might pass 
  17. on a few concerns/issues.
  18.  
  19. It is very unlikely that an algorithm which can be used on the final 
  20. iteration values can be found which is of general use. The Vepstas 
  21. algorithm will work for Mandelbrot type functions, that is, functions which 
  22. are essentially iterated power series. Many of the neat functions which 
  23. have transendentals, involve complicated complex products or or are conv  
  24. ergent fractals like Newton will not yield smooth coloring with the Vepstas 
  25. method. The only general method I have found, and no one else has come up 
  26. with an alternative, is exponential smoothing. Unfortunately, this method 
  27. must be applied at every iteration, starting with the first iteration. I 
  28. have tried all sorts of skipping schemes, and none of them give 
  29. satisfactory results. The bailout also needs to be set very high (as is the 
  30. case with the Vepstas method). For those who aren't familiar with the 
  31. method, the basic scheme is the following. Iterexp is used to reference 
  32. into a continuous color map.
  33.  
  34. for diverent fractals:
  35.      iterexp = iterexp + exp(-cabs(z))
  36.  
  37. for convergent fractals:
  38.      iterexp = iterexp + exp(-1/(cabs(zold - z)))
  39. where zold is the z value from the previous iteration.
  40.  
  41. I assume this code fragment would have to go in an assembly language 
  42. routine for performance. Is anyone actually working on truecolor (and 
  43. truecolor is nearly worthless, in my opinion, if you can't make it smooth). 
  44. Decomposition and/or potential methods  have some utility (Damien has done 
  45. some nice stuff here) , but cannot really be a smooth equivalent to 
  46. iteration, which is what, I believe, the users will want.
  47.  
  48. I apologize If I am going over ground those of you on the developer list 
  49. are already aware of. I just wanted to put my 2 cents worth in just in 
  50. case.
  51.  
  52. Ron Barnett
  53.  
  54. Thanks for using Fractdev, The Fractint Developer's Discussion List
  55. Post Message:   fractdev@lists.xmission.com
  56. Get Commands:   majordomo@lists.xmission.com "help"
  57. Administrator:  twegner@swbell.net
  58. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  59.  
  60.  
  61. -------------------------------------------------------------------------------
  62.  
  63. From: "Paul N. Lee" <Paul.N.Lee@Worldnet.att.net>
  64. Subject: REQ:  Fractal Census 2000
  65. Date: 17 Mar 2000 23:29:03 -0600
  66.  
  67. Greetings Fractal Community,
  68.  
  69. If you would be so kind, I would like to impose upon everyone to take a
  70. moment and please supply some information:
  71.  
  72.     1.  The number of individuals in your household 
  73.         that create fractals.
  74.  
  75.     2.  The number and names of fractal generating 
  76.         programs used by each of these individuals.
  77.  
  78.     3.  Which fractal program is considered as the 
  79.         best or most used by each of these individuals.
  80.  
  81. Replys are requested to be sent to the following email address:
  82.     MAILTO:ABPF_Bot@hotmail.com
  83.  
  84. The results will be made available upon completion of the census.
  85.  
  86. Thank you for your support and co-operation.
  87.  
  88. Thanks for using Fractdev, The Fractint Developer's Discussion List
  89. Post Message:   fractdev@lists.xmission.com
  90. Get Commands:   majordomo@lists.xmission.com "help"
  91. Administrator:  twegner@fractint.org
  92. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  93.  
  94.  
  95. -------------------------------------------------------------------------------
  96.  
  97. From: Tim Wegner <twegner@swbell.net>
  98. Subject: Development news
  99. Date: 18 Mar 2000 15:15:44 -0600
  100.  
  101. The source for the float-only version is now at fractint.org at:
  102.  
  103. ftp://ftp.fractint.org/frasrcfo20.0.9.zip
  104.  
  105. The next step is to create an xfractint version based on these 
  106. sources. This should not be too hard, and should be a lot cleaner 
  107. since many #ifdefs are currently needed to eliminate integer math 
  108. from Xfractint.
  109.  
  110. Scott Boyd has offerred to work a bit on the Xfractint user interface.
  111.  
  112. Jonathan Osuch and I are gearing up to launch the 32 bit fractint 
  113. effort.
  114.  
  115. Paul De Leeuw has fractint-based Windows truecolor program he is 
  116. working on.
  117.  
  118. The time has come to work out the PNG fRAc chunk. I am looking 
  119. into this.
  120.  
  121. Tim
  122.  
  123.  
  124. Thanks for using Fractdev, The Fractint Developer's Discussion List
  125. Post Message:   fractdev@lists.xmission.com
  126. Get Commands:   majordomo@lists.xmission.com "help"
  127. Administrator:  twegner@fractint.org
  128. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  129.  
  130.  
  131. -------------------------------------------------------------------------------
  132.  
  133. From: "Paul de Leeuw" <pdeleeuw@deleeuw.com.au>
  134. Subject: Fractal Chunk fRAc for PNG files
  135. Date: 21 Mar 2000 21:50:27 +1100
  136.  
  137. This is a multi-part message in MIME format.
  138.  
  139. ------=_NextPart_000_0017_01BF937F.781C1820
  140. Content-Type: multipart/alternative;
  141.     boundary="----=_NextPart_001_0018_01BF937F.781C1820"
  142.  
  143.  
  144. ------=_NextPart_001_0018_01BF937F.781C1820
  145. Content-Type: text/plain;
  146.     charset="iso-8859-1"
  147. Content-Transfer-Encoding: quoted-printable
  148.  
  149. Hi Team,=20
  150.  
  151. My name is Paul de Leeuw, the author of ManpWin. I am interested in =
  152. getting a definition for a fractal chunk in PNG and am interested in =
  153. getting comments on a definition I'm working on.
  154.  
  155. We should develop a definition which meets the needs of all (and future) =
  156. fractal programs.
  157.  
  158. Please see attached file.
  159.  
  160. Comments and suggestions gratefully appreciated.
  161.  
  162. Many thanks,
  163.  
  164. Paul.
  165.  
  166. ------=_NextPart_001_0018_01BF937F.781C1820
  167. Content-Type: text/html;
  168.     charset="iso-8859-1"
  169. Content-Transfer-Encoding: quoted-printable
  170.  
  171. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  172. <HTML><HEAD>
  173. <META content=3D"text/html; charset=3Diso-8859-1" =
  174. http-equiv=3DContent-Type>
  175. <META content=3D"MSHTML 5.00.2314.1000" name=3DGENERATOR>
  176. <STYLE></STYLE>
  177. </HEAD>
  178. <BODY bgColor=3D#ffffff>
  179. <DIV><FONT size=3D2>Hi Team, </FONT></DIV>
  180. <DIV> </DIV>
  181. <DIV><FONT size=3D2>My name is Paul de Leeuw, the author of ManpWin. I =
  182. am=20
  183. interested in getting a definition for a fractal chunk in PNG and am =
  184. interested=20
  185. in getting comments on a definition I'm working on.</FONT></DIV>
  186. <DIV> </DIV>
  187. <DIV><FONT size=3D2>We should develop a definition which meets the needs =
  188. of all=20
  189. (and future) fractal programs.</FONT></DIV>
  190. <DIV> </DIV>
  191. <DIV><FONT size=3D2>Please see attached file.</FONT></DIV>
  192. <DIV> </DIV>
  193. <DIV><FONT size=3D2>Comments and suggestions gratefully =
  194. appreciated.</FONT></DIV>
  195. <DIV> </DIV>
  196. <DIV><FONT size=3D2>Many thanks,</FONT></DIV>
  197. <DIV> </DIV>
  198. <DIV><FONT size=3D2>Paul.</FONT></DIV></BODY></HTML>
  199.  
  200. ------=_NextPart_001_0018_01BF937F.781C1820--
  201.  
  202. ------=_NextPart_000_0017_01BF937F.781C1820
  203. Content-Type: application/octet-stream;
  204.     name="frachunk.h"
  205. Content-Transfer-Encoding: quoted-printable
  206. Content-Disposition: attachment;
  207.     filename="frachunk.h"
  208.  
  209. /***********************************************************************
  210. FRACHUNK.H
  211. Definition of all fractal data to be written to the fRAc chunk
  212. Written by Paul de Leeuw 21/3/2000
  213. ***********************************************************************/
  214.  
  215. #ifndef FRACHUNK_H
  216. #define FRACHUNK_H
  217.  
  218.  
  219. struct fractal_info         // for saving data in PNG file
  220. {
  221. /*
  222. This next pointer is to allow the iteration count for each pixel to be =
  223. saved for resumption
  224. of the fractal. As there is no simple reverse method for calculating =
  225. iteration count from
  226. true colour images, the lot needs to be saved. This is very large for a =
  227. standard 1024*768
  228. screen will be 1.57 MBytes if ints are used or 3.15 MBytes if longs are =
  229. used. Hence=20
  230. compression is needed for this data. HELP????????
  231. */
  232. #ifdef ALLOW_32BIT_ITERATION
  233.     long  *PixelData;
  234. #else
  235.     int   *PixelData;
  236. #endif
  237.    =20
  238. // standard FRACTINT stuff (based on FRACTINT v20.0)
  239.  
  240.     char  info_id[8];       // Unique identifier for info block
  241.     short iterationsold;    // Pre version 18.24
  242.     short fractal_type;     // 0=3DMandelbrot 1=3DJulia 2=3D ...
  243.     double xmin;
  244.     double xmax;
  245.     double ymin;
  246.     double ymax;
  247.     double creal;
  248.     double cimag;
  249.     short videomodeax;
  250.     short videomodebx;
  251.     short videomodecx;
  252.     short videomodedx;
  253.     short dotmode;
  254.     short xdots;
  255.     short ydots;
  256.     short colors;
  257.     short version;          // used to be 'future[0]'
  258.     float parm3;
  259.     float parm4;
  260.     float potential[3];
  261.     short rseed;
  262.     short rflag;
  263.     short biomorph;
  264.     short inside;
  265.     short logmapold;
  266.     float invert[3];
  267.     short decomp[2];
  268.     short symmetry;
  269.                         // version 2 stuff
  270.     short init3d[16];
  271.     short previewfactor;
  272.     short xtrans;
  273.     short ytrans;
  274.     short red_crop_left;
  275.     short red_crop_right;
  276.     short blue_crop_left;
  277.     short blue_crop_right;
  278.     short red_bright;
  279.     short blue_bright;
  280.     short xadjust;
  281.     short eyeseparation;
  282.     short glassestype;
  283.                         // version 3 stuff, release 13
  284.     short outside;
  285.                         // version 4 stuff, release 14
  286.     double x3rd;          // 3rd corner
  287.     double y3rd;
  288.     char stdcalcmode;     // 1/2/g/b
  289.     char useinitorbit;    // init Mandelbrot orbit flag
  290.     short calc_status;    // resumable, finished, etc
  291.     long tot_extend_len;  // total length of extension blocks in .gif =
  292. file
  293.     short distestold;
  294.     short floatflag;
  295.     short bailoutold;
  296.     long calctime;
  297.     BYTE trigndx[4];      // which trig functions selected
  298.     short finattract;
  299.     double initorbit[2];  // init Mandelbrot orbit values
  300.     short periodicity;    // periodicity checking
  301.                         // version 5 stuff, release 15
  302.     short pot16bit;       // save 16 bit continuous potential info
  303.     float faspectratio;   // finalaspectratio, y/x
  304.     short system;         // 0 for dos, 1 for windows
  305.     short release;        // release number, with 2 decimals implied
  306.     short flag3d;         // stored only for now, for future use
  307.     short transparent[2];
  308.     short ambient;
  309.     short haze;
  310.     short randomize;
  311.                         // version 6 stuff, release 15.x
  312.     short rotate_lo;
  313.     short rotate_hi;
  314.     short distestwidth;
  315.                         // version 7 stuff, release 16
  316.     double dparm3;
  317.     double dparm4;
  318.                         // version 8 stuff, release 17
  319.     short fillcolor;
  320.                         // version 9 stuff, release 18
  321.     double mxmaxfp;
  322.     double mxminfp;
  323.     double mymaxfp;
  324.     double myminfp;
  325.     short zdots;
  326.     float originfp;
  327.     float depthfp;
  328.     float heightfp;
  329.     float widthfp;
  330.     float distfp;
  331.     float eyesfp;
  332.     short orbittype;
  333.     short juli3Dmode;
  334.     short maxfn;
  335.     short inversejulia;
  336.     double dparm5;
  337.     double dparm6;
  338.     double dparm7;
  339.     double dparm8;
  340.     double dparm9;
  341.     double dparm10;
  342.                         // version 10 stuff, release 19
  343.     long bailout;
  344.     short bailoutest;
  345.     long iterations;
  346.     short bf_math;
  347.     short bflength;
  348.     short yadjust;        // yikes! we left this out ages ago!
  349.     short old_demm_colors;
  350.     long logmap;
  351.     long distest;
  352.     double dinvert[3];
  353.     short logcalc;
  354.     short stoppass;
  355.     short quick_calc;
  356.     double closeprox;
  357.     short future[19];     // for stuff we haven't thought of yet
  358.  
  359. // ManpWin stuff (based on ManpWin v2.6x)
  360. // Note that we could use fractint fields for many of these but I'll put =
  361. in a bit anyhow
  362. // Things like fractal type, inside.. are taken from FRACTINT definition
  363.  
  364. #ifdef MANPWIN
  365.             // start with complex plane definition
  366.     char *BigHor;        // pointer to BigNum horizontal
  367.     char *BigVert;        // pointer to BigNum vertical
  368.     char *BigWidth;        // pointer to BigNum width
  369.     double hor;
  370.     double vert;
  371.     double width;
  372.     double JuliaReal;
  373.     double JuliaImag;
  374.             // Fractal stuff
  375.     WORD special;        // used for special colours in certain fractals
  376.     BYTE degree;        // for Newton, Power etc
  377.     int LogValue;
  378.     char FractalSubType;    // Some examples of sub types:
  379.                 // Newton    B=3Dbasin, S=3Dstripe, N=3Dnormal
  380.                 // Bifurcation    Q =3D quad mand, B =3D bifurcation
  381.                 // Cubic    B =3D CBIN, C =3D CCIN, F =3D CFIN, K =3D CKIN
  382.                 // Rational Map    3 =3D RAT34, 4 =3D RAT44
  383.             // Plotting stuff
  384.     char BlockIndex;        // Higher numbers good for quick view of slow =
  385. fractals
  386.     BYTE PairFlag;        // Pairflag is used to inhibit unwanted rows and =
  387. columns=20
  388.                 // to remove excess processing.=20
  389.     int AutoStereoValue;    // AutoStereo depth value
  390.     int biomorph;        // biomorph colour
  391.     int decomp;            // number of decomposition colours
  392.             // 3D stuff
  393.     BYTE _3dflag;        // replay saved file 3D
  394.     double x_rot;        // angle display plane to x axis
  395.     double y_rot;        // angle display plane to y axis
  396.     double z_rot;        // angle display plane to z axis
  397.     double sclx, scly, sclz;    // scale
  398.             // Colour stuff
  399.     BYTE TrueColourFlag;    // Use TrueColour palette generation
  400.     WORD RedStartInt;        // True colour parameters
  401.     WORD GreenStartInt;
  402.     WORD BlueStartInt;
  403.     WORD RedIncInt;
  404.     WORD GreenIncInt;
  405.     WORD BlueIncInt;
  406.     char *PaletteFileName;    // to store palette file name
  407. #endif            // MANPWIN
  408. #ifdef FUTURE_STUFF
  409.     int FilterType;        // Teirazon filter type
  410.     int ConvolutionType;    // Teirazon convolution type
  411.     int ColourType;        // Teirazon colour type: RGB, RBG, BGR, BRG, GRB, =
  412. GBR
  413.     int FDimesnsion;        // More Teirazon stuff
  414. #endif            // FUTURE_STUFF
  415. #ifdef USER_STUFF
  416.     char UserChar1;        // User info
  417.     char UserChar2;
  418.     char UserChar3;
  419.     char UserChar4;
  420.     char *UserCharPtr1;
  421.     char *UserCharPtr2;
  422.     char *UserCharPtr3;
  423.     char *UserCharPtr4;
  424.     int UserInt1;
  425.     int UserInt2;
  426.     int UserInt3;
  427.     int UserInt4;
  428.     long UserLong1;
  429.     long UserLong2;
  430.     long UserLong3;
  431.     long UserLong4;
  432.     float UserFloat1;
  433.     float UserFloat2;
  434.     float UserFloat3;
  435.     float UserFloat4;
  436.     double UserDouble1;
  437.     double UserDouble2;
  438.     double UserDouble3;
  439.     double UserDouble4;
  440. #endif            // USER_STUFF
  441.  
  442. };
  443.  
  444.  
  445. ------=_NextPart_000_0017_01BF937F.781C1820--
  446.  
  447.  
  448. Thanks for using Fractdev, The Fractint Developer's Discussion List
  449. Post Message:   fractdev@lists.xmission.com
  450. Get Commands:   majordomo@lists.xmission.com "help"
  451. Administrator:  twegner@fractint.org
  452. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  453.  
  454.  
  455. -------------------------------------------------------------------------------
  456.  
  457. From: Tim Wegner <twegner@swbell.net>
  458. Subject: Re: Fractal Chunk fRAc for PNG files
  459. Date: 21 Mar 2000 07:20:54 -0600
  460.  
  461. Paul wrote:
  462.  
  463. > My name is Paul de Leeuw, the author of ManpWin. I am interested in =
  464. > getting a definition for a fractal chunk in PNG and am interested in =
  465. > getting comments on a definition I'm working on.
  466.  
  467. I have been corresponding for a while with Paul about his program 
  468. Manpwin. The time is right to work on the PNG chunk. I'm glad he's 
  469. pushing us to get this done :-)
  470.  
  471. The first job is to define the content. Then there are some technical 
  472. issues as to how the chunk should be put together. We don't need 
  473. to solve these first (the first job is just to decide what to put in), but 
  474. let me get them on the table so everyone is aware, even though the 
  475. first job is not the technicalities but the content.
  476.  
  477. 1. PNG has a design philosophy not to use revision numbers. This 
  478. means that once a chunk is defined it doesn't change. If you need 
  479. something later, a new chunk is created. When fRAc was first 
  480. proposed, I discussed this with the PNG team. It isn't practical to 
  481. define everything we'll ever need for fractals up front, so I proposed 
  482. that the fRAc chunk be designed with "subchunks". Each one of 
  483. these would be permanent. That way we wouldn't litter the PNG 
  484. chunk  name space with multiple chunks, because all these would 
  485. be inside fRAc. This implies that we should identify reasonable 
  486. subchunks. The generalized center-mag coordinates would be an 
  487. example of something that deserves its own subchunk. We don't 
  488. have to do this just because it was the original idea, but it would be 
  489. very un-PNG-like to have a chunk with an internal revsion number 
  490. and a constantly increasing number of parameters, so we should 
  491. try to avoid this. I'll raise this on the PNG list and see if the years 
  492. of experience have altered thinking on this.
  493.  
  494. 2. A huge problem with Fractint parameter storage in GIFs is that 
  495. we just wrote binary numbers to the GIF file. Anyone familiar with 
  496. Xfractint knows that Ken Shirriff had to write all kinds of byte-order 
  497. and IEEE floating point conversion routines to decode the fractint 
  498. binary numbers. For this reason values should be probably be 
  499. written in text. This also would allow seemless support for arbitrary 
  500. precision.
  501.  
  502. 3. I do not favor just putting the old fractint parameters in fRAc. 
  503. There are some problems in the way we originally did things and 
  504. this is a good time to break with the past. 
  505.  
  506. 4. Let me point out that PNG does have a system for preserving 
  507. GIF extension blocks. I don't know if anyone uses this :-) This 
  508. might or might not be a good idea, but for starters we could use 
  509. this feature. The original intent was to allow a way to non-
  510. destructively convert GIF to PNG without losing the extension 
  511. blocks. It also allows conversion software that doesn't know about 
  512. Fractint to convert PNG to GIF. The downside is that time has 
  513. gone by, and it might not be worth the trouble to mess with the GIF 
  514. extension block chunks. Once fRAc is defined, the conversion 
  515. program could convert straight to fRAc. This is another issue we 
  516. need to think about.
  517.  
  518. I have suggested to Paul that he use either a text comment chunk 
  519. or make his own Manpwin chunk for now.  You could do a lot 
  520. worse than put PAR files in a text block. Note that PNG has 
  521. mechanisms for compressed text chunks.
  522.  
  523. I'll look at this some more this weekend.
  524.  
  525. Tim
  526.  
  527.  
  528. Thanks for using Fractdev, The Fractint Developer's Discussion List
  529. Post Message:   fractdev@lists.xmission.com
  530. Get Commands:   majordomo@lists.xmission.com "help"
  531. Administrator:  twegner@fractint.org
  532. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  533.  
  534.  
  535. -------------------------------------------------------------------------------
  536.  
  537. From: Phil McRevis <legalize@xmission.com>
  538. Subject: Re: Fractal Chunk fRAc for PNG files 
  539. Date: 21 Mar 2000 10:35:56 -0700
  540.  
  541.  
  542. In article <38D722D6.16261.24C10F@localhost>,
  543.     Tim Wegner <twegner@swbell.net>  writes:
  544.  
  545. > I have suggested to Paul that he use either a text comment chunk 
  546. > or make his own Manpwin chunk for now.  You could do a lot 
  547. > worse than put PAR files in a text block. Note that PNG has 
  548. > mechanisms for compressed text chunks.
  549.  
  550. My suggestion is this:
  551.  
  552. Include (as text, with an option for compression) everything needed to
  553. regenerate the image:
  554.  
  555.     colormap
  556.     formula definition
  557.     L-system definition
  558.     IFS definition
  559.     parameter settings
  560.  
  561. One weakness of the previous method of storing information in the
  562. image file was that if the image was generated from a formula, you had
  563. to have the .frm file in order to zoom the image.
  564.  
  565. I know some artists have relied on this fact to "hide" their formulas
  566. and keep them proprietary.  If that is desired, simply remove the
  567. parameter chunk from the PNG file rather than store an incomplete or
  568. brain-dead parameter block.
  569. --
  570. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  571.     ``Ain't it funny that they all fire the pistol,     
  572.       at the wrong end of the race?''--PDBT     
  573. legalize@xmission.com    <http://www.xmission.com/~legalize/who/>
  574.  
  575. Thanks for using Fractdev, The Fractint Developer's Discussion List
  576. Post Message:   fractdev@lists.xmission.com
  577. Get Commands:   majordomo@lists.xmission.com "help"
  578. Administrator:  twegner@fractint.org
  579. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  580.  
  581.  
  582. -------------------------------------------------------------------------------
  583.  
  584. From: "Paul de Leeuw" <pdeleeuw@deleeuw.com.au>
  585. Subject: Re: Fractal Chunk fRAc for PNG files 
  586. Date: 22 Mar 2000 23:34:05 +1100
  587.  
  588. Team,
  589.  
  590. I am currently using a tEXt chunk for ManpWin to store local versions of the
  591. parameter file and it works fine. The real difficulty I am having is that
  592. true colour images have 16.777 Million possibilities per pixel for 24 bit
  593. colour. Reversable algorithms for determining the iteration count per pixel
  594. is very difficult. Hence it is necessary to store 16 (or 32) bits per pixel
  595. to enable regeneration of the iteration count matrix. This info needs to go
  596. into a special chunk. See below.
  597.  
  598. Any comments appreciated,
  599.  
  600. Thanks,
  601.  
  602. Paul.
  603.  
  604. /***********************************************************************
  605. FRACHUNK.H
  606. Definition of all fractal data to be written to the fRAc chunk
  607. Written by Paul de Leeuw 21/3/2000
  608. ***********************************************************************/
  609.  
  610. #ifndef FRACHUNK_H
  611. #define FRACHUNK_H
  612.  
  613.  
  614. struct fractal_info         // for saving data in PNG file
  615. {
  616. /*
  617. This next pointer is to allow the iteration count for each pixel to be saved
  618. for resumption
  619. of the fractal. As there is no simple reverse method for calculating
  620. iteration count from
  621. true colour images, the lot needs to be saved. This is very large for a
  622. standard 1024*768
  623. screen will be 1.57 MBytes if ints are used or 3.15 MBytes if longs are
  624. used. Hence
  625. compression is needed for this data. HELP????????
  626. */
  627. #ifdef ALLOW_32BIT_ITERATION
  628.     long  *PixelData;
  629. #else
  630.     short *PixelData;
  631. #endif
  632.  
  633. bla bla bla
  634. ----- Original Message -----
  635. Sent: Wednesday, 22 March 2000 04:35
  636.  
  637.  
  638. >
  639. > In article <38D722D6.16261.24C10F@localhost>,
  640. >     Tim Wegner <twegner@swbell.net>  writes:
  641. >
  642. > > I have suggested to Paul that he use either a text comment chunk
  643. > > or make his own Manpwin chunk for now.  You could do a lot
  644. > > worse than put PAR files in a text block. Note that PNG has
  645. > > mechanisms for compressed text chunks.
  646. >
  647. > My suggestion is this:
  648. >
  649. > Include (as text, with an option for compression) everything needed to
  650. > regenerate the image:
  651. >
  652. >     colormap
  653. >     formula definition
  654. >     L-system definition
  655. >     IFS definition
  656. >     parameter settings
  657. >
  658. > One weakness of the previous method of storing information in the
  659. > image file was that if the image was generated from a formula, you had
  660. > to have the .frm file in order to zoom the image.
  661. >
  662. > I know some artists have relied on this fact to "hide" their formulas
  663. > and keep them proprietary.  If that is desired, simply remove the
  664. > parameter chunk from the PNG file rather than store an incomplete or
  665. > brain-dead parameter block.
  666. > --
  667. > <http://www.xmission.com/~legalize/> Legalize Adulthood!
  668. >     ``Ain't it funny that they all fire the pistol,
  669. >       at the wrong end of the race?''--PDBT
  670. > legalize@xmission.com <http://www.xmission.com/~legalize/who/>
  671. >
  672. > --------------------------------------------------------------
  673. > Thanks for using Fractdev, The Fractint Developer's Discussion List
  674. > Post Message:   fractdev@lists.xmission.com
  675. > Get Commands:   majordomo@lists.xmission.com "help"
  676. > Administrator:  twegner@fractint.org
  677. > Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  678.  
  679.  
  680. Thanks for using Fractdev, The Fractint Developer's Discussion List
  681. Post Message:   fractdev@lists.xmission.com
  682. Get Commands:   majordomo@lists.xmission.com "help"
  683. Administrator:  twegner@fractint.org
  684. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  685.  
  686.  
  687. -------------------------------------------------------------------------------
  688.  
  689. From: Phil McRevis <legalize@xmission.com>
  690. Subject: Re: Fractal Chunk fRAc for PNG files 
  691. Date: 22 Mar 2000 13:15:53 -0700
  692.  
  693.  
  694. In article <002501bf93fa$fe27ee00$0200a8c0@BigPond.com>,
  695.     "Paul de Leeuw" <pdeleeuw@deleeuw.com.au>  writes:
  696.  
  697. > struct fractal_info         // for saving data in PNG file
  698. > {
  699. > /*
  700. > This next pointer is to allow the iteration count for each pixel to be saved
  701. > for resumption
  702. > of the fractal. As there is no simple reverse method for calculating
  703. > iteration count from
  704. > true colour images, the lot needs to be saved. This is very large for a
  705. > standard 1024*768
  706. > screen will be 1.57 MBytes if ints are used or 3.15 MBytes if longs are
  707. > used. Hence
  708. > compression is needed for this data. HELP????????
  709. > */
  710.  
  711. You can store the iteration count per-pixel as a PNG image with
  712. 1-channel and 16-bits/channel for 16-bit iteration counts.
  713.  
  714. You can pack 32-bits/pixel if you store it as a 2-channel image
  715. (grayscale w/alpha) and store the two 16-bit chunks of a 32-bit
  716. quantity in the two channels.  Similarly for higher bits/pixel.
  717.  
  718. There is compressible coherency in the iteration count, so by storing
  719. the iteration count as its own PNG image you reduce the disk storage
  720. costs of the iteration count considerably.
  721.  
  722. However, this leads to two PNG streams: one for the color data and
  723. another for the iteration count data.  Once the image is finished
  724. rendering you can get rid of the iteration count data and just keep
  725. the colors.  (It could be re-used on a zoom if you have a zooming
  726. algorithm that exploits zoom-to-zoom coherency, but watch out for
  727. aliasing; you'll have to do some manual infinite mipmap like tricks to
  728. pull it off correctly.)
  729.  
  730. You can package the two PNG streams into a single file.  If you do
  731. this, I'd suggest a raw concatenation of the two PNG images with the
  732. color image first.  Then the two PNG streams can't be separated on the
  733. hard drive and the image stream can always be read by PNG aware
  734. clients.  I suppose you could even package up the second PNG stream as
  735. an application specific data chunk inside the first stream, but that
  736. seems more complicated.  I don't know how the png library or image
  737. viewing programs deal with extraneous appended data to the PNG stream;
  738. if lots of programs complain about this unexpected data, it might be
  739. better to wrap the PNG iteration count 'image' inside one or more
  740. application chunks.  (You may need more than one if you overflow the
  741. valid size of a chunk, but I can't recall what that limit is right
  742. now.)
  743. --
  744. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  745.     ``Ain't it funny that they all fire the pistol,     
  746.       at the wrong end of the race?''--PDBT     
  747. legalize@xmission.com    <http://www.xmission.com/~legalize/who/>
  748.  
  749. Thanks for using Fractdev, The Fractint Developer's Discussion List
  750. Post Message:   fractdev@lists.xmission.com
  751. Get Commands:   majordomo@lists.xmission.com "help"
  752. Administrator:  twegner@fractint.org
  753. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  754.  
  755.  
  756. -------------------------------------------------------------------------------
  757.  
  758. From: "Scott D. Boyd" <sdboyd@fastlane.net>
  759. Subject: Xfractint menu questions
  760. Date: 23 Mar 2000 22:43:25 -0600
  761.  
  762. This message is directed to all the Xfractint users out there.
  763.  
  764. I am working on cleaning up the user interface of Xfractint so that the prompts
  765. are more appropriate to Linux/Unix users. (Such as changing the function-key
  766. prompts to Shift-n prompts. I have a couple of questions for other people
  767. running Xfractint with Linux (or other Unix-based OS's):
  768.  
  769. 1.Can anyone use the `Delete' key for the Main Menu selection: "select video
  770. mode   <del>". In my case, `Delete' doesn't work. I have to press the `Enter'
  771. key only when this menu item is highlighted. (I know we can't select a video
  772. mode, but still I have to press `Enter' to draw the fractal.) If the delete key
  773. works for you, please also let me know what OS you are using. (Linux, HP-UX,
  774. Solaris, *BSD, etc.) I just want to make sure that this isn't happening only to
  775. me because of some hidden, arcane setting in some keyboard-map file.
  776.  
  777. 2. While going thru one of the source files that deals with the main menu, I
  778. realized that everything below "restart Fractint  <ins>" is missing, such as
  779. color-cycling, pallette editing, make starfield, etc. Is this common to all
  780. Xfractint installations? I can remove a certain condition in the source file,
  781. re-compile, and the menu items will show up. Color-cycling still won't work,
  782. (when I press the C key, I get a beep) but the others will.
  783.  
  784. Please email me with your results. I realize that there may not be many
  785. Xfractint users subscribed to the fractint-development mailing list, so I'm
  786. also posting this to the regular fractint users mailing list. If you are
  787. reading this on *that* list, please respond directly to me, so as not to
  788. clutter up the regular fractint list with answers to a development question.
  789.  
  790. Thanks,
  791. Scott D. Boyd
  792. -- 
  793. email:  sdboyd@fastlane.net
  794. http://www.fastlane.net/~sdboyd/
  795. Introducing Windows 2000 !! -- Now reduced to only 65,000 bugs !!
  796.  
  797.  
  798.  
  799. Thanks for using Fractdev, The Fractint Developer's Discussion List
  800. Post Message:   fractdev@lists.xmission.com
  801. Get Commands:   majordomo@lists.xmission.com "help"
  802. Administrator:  twegner@fractint.org
  803. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  804.  
  805.  
  806. -------------------------------------------------------------------------------
  807.  
  808. From: "Scott D. Boyd" <sdboyd@fastlane.net>
  809. Subject: Follow up to my prev. Xfractint questions
  810. Date: 24 Mar 2000 12:21:25 -0600
  811.  
  812. On Thu, 23 Mar 2000, I asked:
  813. > 1.Can anyone use the `Delete' key for the Main Menu selection: "select video
  814. > mode   <del>". In my case, `Delete' doesn't work. I have to press the `Enter'
  815. > key only when this menu item is highlighted. (I know we can't select a video
  816. > mode, but still I have to press `Enter' to draw the fractal.) If the delete key
  817. > works for you, please also let me know what OS you are using. (Linux, HP-UX,
  818. > Solaris, *BSD, etc.) I just want to make sure that this isn't happening only to
  819. > me because of some hidden, arcane setting in some keyboard-map file.
  820. I failed to mention that I can also press "D" for this menu item. But the
  821. original question still stands: "Can anyone use the "Delete" key? (My "Insert"
  822. key works, but not the "Delete" key.)
  823.  
  824. > 2. While going thru one of the source files that deals with the main menu, I
  825. > realized that everything below "restart Fractint  <ins>" is missing, such as
  826. > color-cycling, pallette editing, make starfield, etc. Is this common to all
  827. > Xfractint installations? I can remove a certain condition in the source file,
  828. > re-compile, and the menu items will show up. Color-cycling still won't work,
  829. > (when I press the C key, I get a beep) but the others will.
  830. >
  831. I have discovered that I was having this problem because I wasn't using the
  832. `-private' option when I start Xfractint. I was using `-fixcolors 256' instead.
  833. So no need to answer question #2.
  834.  
  835. Thanks,
  836. Scott D. Boyd
  837. -- 
  838. email:  sdboyd@fastlane.net
  839. http://www.fastlane.net/~sdboyd/
  840. Introducing Windows 2000 !! -- Now reduced to only 65,000 bugs !!
  841.  
  842. Thanks for using Fractdev, The Fractint Developer's Discussion List
  843. Post Message:   fractdev@lists.xmission.com
  844. Get Commands:   majordomo@lists.xmission.com "help"
  845. Administrator:  twegner@fractint.org
  846. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  847.  
  848.  
  849. -------------------------------------------------------------------------------
  850.  
  851. From: "Paul de Leeuw" <pdeleeuw@deleeuw.com.au>
  852. Subject: Re: Fractal Chunk fRAc for PNG files 
  853. Date: 25 Mar 2000 09:03:52 +1100
  854.  
  855. Phil,
  856.  
  857. I like the sound of this one. If I can get compression, it would be great. I
  858. would insist that if it were to be saved as a PNG file that it would be
  859. viewable by any standard PNG viewer.
  860.  
  861. Would the two images (real colours and iteration count per pixel) conflict?
  862. How would I set this up (I am a bit new to PNG and have only used the
  863. standard PNGLIB library functions)?
  864.  
  865. Any help gratefully appreciated.
  866.  
  867. Many thanks,
  868.  
  869. Paul.
  870. ----- Original Message -----
  871. Sent: Thursday, 23 March 2000 07:15
  872.  
  873.  
  874. bla bla
  875.  
  876. >
  877. > You can store the iteration count per-pixel as a PNG image with
  878. > 1-channel and 16-bits/channel for 16-bit iteration counts.
  879. >
  880. > You can pack 32-bits/pixel if you store it as a 2-channel image
  881. > (grayscale w/alpha) and store the two 16-bit chunks of a 32-bit
  882. > quantity in the two channels.  Similarly for higher bits/pixel.
  883.  
  884. bla bla
  885.  
  886. > --------------------------------------------------------------
  887. > Thanks for using Fractdev, The Fractint Developer's Discussion List
  888. > Post Message:   fractdev@lists.xmission.com
  889. > Get Commands:   majordomo@lists.xmission.com "help"
  890. > Administrator:  twegner@fractint.org
  891. > Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  892. >
  893.  
  894.  
  895. Thanks for using Fractdev, The Fractint Developer's Discussion List
  896. Post Message:   fractdev@lists.xmission.com
  897. Get Commands:   majordomo@lists.xmission.com "help"
  898. Administrator:  twegner@fractint.org
  899. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  900.  
  901.  
  902. -------------------------------------------------------------------------------
  903.  
  904. From: Phil McRevis <legalize@xmission.com>
  905. Subject: Re: Fractal Chunk fRAc for PNG files 
  906. Date: 24 Mar 2000 15:31:58 -0700
  907.  
  908.  
  909. In article <105201bf95dc$da936620$0200a8c0@BigPond.com>,
  910.     "Paul de Leeuw" <pdeleeuw@deleeuw.com.au>  writes:
  911.  
  912. > I like the sound of this one. If I can get compression, it would be great. I
  913. > would insist that if it were to be saved as a PNG file that it would be
  914. > viewable by any standard PNG viewer.
  915.  
  916. Then you have two choices -- either embed the iteration counts inside
  917. the PNG color image as an application-specific chunk that really
  918. contains another PNG image (watch out for chunk size overflow); or
  919. save two files: one for the color and another for the iteration count.
  920. PNG applications are supposed to skip chunks they don't understand, so
  921. a custom chunk shouldn't throw off a well written viewer or utility
  922. program.
  923.  
  924. If you save two files, it has the advantage that someone can share
  925. their partially computed with someone else without having to send all
  926. the iteration count data as well.  Of course the other person can't
  927. continue the calculation where the first person left off in that case.
  928. If that is desired, they can simply send the two files and not just
  929. the color image.
  930.  
  931. > Would the two images (real colours and iteration count per pixel) conflict?
  932.  
  933. I'm not sure what you're asking here?
  934.  
  935. > How would I set this up (I am a bit new to PNG and have only used the
  936. > standard PNGLIB library functions)?
  937.  
  938. Probably the easiest thing to do while you're developing is to store
  939. two files: one for the color image and another for the iteration count
  940. data.  When storing the iteration count data (are you using 16-bit
  941. iteration counts or 32?), you just extract the bytes from the
  942. iteration count and "pretend" they are color channels.
  943.  
  944. For 16-bit iteration counts you can simply create a 16-bit grayscale
  945. image file and you don't have to worry about the byte extraction.
  946. That's probably the easiest to start with and 64K iterations is a
  947. lot-- but I know how you fractal guys are, you always want more... like
  948. me :-).
  949. --
  950. <http://www.xmission.com/~legalize/>    Legalize Adulthood!
  951.     ``Ain't it funny that they all fire the pistol,     
  952.       at the wrong end of the race?''--PDBT     
  953. legalize@xmission.com    <http://www.xmission.com/~legalize/who/>
  954.  
  955. Thanks for using Fractdev, The Fractint Developer's Discussion List
  956. Post Message:   fractdev@lists.xmission.com
  957. Get Commands:   majordomo@lists.xmission.com "help"
  958. Administrator:  twegner@fractint.org
  959. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractdev"
  960.  
  961.