home *** CD-ROM | disk | FTP | other *** search
- Disclaimer.
-
- This software was written in MicroSoft Visual Basic version 3.0.
- The Author takes no responsibility for its use, or any
- resultant damage to data, or computers on which it is used,
- or for that matter on the eyes and minds of those people who
- chose to stare at such things.
-
- Introduction.
- The Emperor's New Clothes.
- One Upon A Time while walking in a shopping mall a man saw a
- crowd of people. He rushed over to see what was happening
- and found everybody staring at these funny pictures made up
- of dots. The salesman said "Just keep looking and you will
- see a wonderful picture appear". Suffice to say the man
- couldn't see the picture but played along so as not to look
- dumb.
-
- This was my introduction to the art of 'SIRDS', after some
- time and staring I found I could see the pictures, and yes
- they were interesting, but how were they made? This program
- is the result of my attempts to find out.
-
-
-
- Overview.
-
- This program runs under Windows 3.1 and will accept picture
- files in several formats (BMP,DIB,WMF,RLE,ICO) and translate
- them into random ( or otherwise) dot stereogram images. These
- images can then be looked at on the screen, printed out, or saved
- as bitmap (BMP) files. The normal windows copy and paste is also
- supported.
-
-
-
- Version History.
-
- Version 1.0 Released into the Public Domain by the Author
- Paul McMahon October 1993.
- (CIS 72050,426)
-
- Basic functionality, random patterns, and one algorithm only.
-
-
- Version 1.1 Released November 1993
-
- Added simple user defined pattern ability, and an alternate algorithm.
-
-
- Version 2.0 Released February 1994
-
- Calculations rewritten as DLL for much improved speed.
- Improved user defined pattern setup.
- Number of depth levels now configurable,
- (practical limitations of 16 or
- 256 will apply depending on drivers etc.)
- Random colour palette now fully configurable.
- Ability to save colour vs levels, and random palettes
- for later recall.
- Three new algorithms ( Thanks to RDSGEN )
- Form width limitation expanded
- from approx < 600 to < 1500 pixels.
-
-
-
- Installation.
-
- Required files:
- ENC.EXE (The main windows program )
- ENC.TXT (This help file.)
- ENC.INI (The initialisation file for ENC)
- The above three files should be placed in the same directory,
- but it doesn't matter what or where it is.
-
- ENCDLL.DLL (The bit that does the hard work. Should be placed
- in your windows directory.)
-
- CMDIALOG.VBX ( Should be placed in your windows/system directory)
- VBRUN300.DLL ( This is not normally supplied due to its size
- and the fact that it is readily available on
- most BBS's, if not already on your machine.)
-
- Optional Files:
- *.CVL ( saved colour vs level files)
- *.PAL ( saved random colour palettes)
- There may also be a couple of example input files.
-
- In addition you will need some sort of drawing package such as
- Windows Paintbrush, to create the base pictures to be translated.
-
-
-
- Producing a RDS.
-
- 1. Draw/Load the source.
- Once the files are installed as above. A drawing is done, say in
- Paintbrush, with different colours representing the different
- levels or planes of depth. Which colour is which level etc.
- is configurable, but be careful of limitations of your screen
- drivers etc. What you might think is a different colour may
- actually be a "dithered" one made up of some other colours. If
- this is the case ENC will probably not produce the output you
- expected. If in doubt stick with solid colours. Once a drawing
- is done it can be got into the ENC main screen via the File/Open
- dialogue (BMP,DIB,WMF,RLE,ICO formats), or via the standard windows
- cut and paste. The main ENC window can be resized to suit the
- required final image size. Note. if a non bitmap image is used then
- it will resize to fit the form, a bitmap will stay the same size.
-
- 2. Set the Colour vs Levels.
- The colours vs levels currently used can be seen via the options
- form. You can set these colours before you draw your source image,
- or it is sometimes more convenient to set them after.
-
- Colours for each level can be configured in a number of ways:
- (If the number of levels is not right you can add or delete to the
- bottom of the list.)
-
- i.
- Select Options/General.
- Click on Set Colours Vs Levels.
- Click on the colour/level you wish to set.
- Click the set button.
-
- ii.
- Select Options/General.
- Click on Set Colours Vs Levels
- Double click on the colour/level you wish to set.
-
- iii. ( I find this the most useful)
- Open the picture you wish to translate.
- Select Options/General.
- Click on the colour/level you wish to set.
- Move/drag the options form out of the way.
- Double click on the source picture over the colour you wish.
-
- iv.
- Select Options/General.
- Click on Set Colours Vs Levels
- Select File/New.
- Select auto greyscale.
- Add the required number of levels.
-
- v.
- Select Options/General.
- Click on Set Colours Vs Levels
- Select File/Open.
- Select a saved .CVL file.
-
-
- Once you have a set of colours/levels you like you can save them for
- latter retrieval.
-
- 3. Select an Algorithm.
- Algorithms are selected from the Options/General screen. Currently
- five options are available.
- i. The original one see below for a description.
- ii. This algorithm is basically taken from a story in the 9th.
- October issue of New Scientist Mag.
- iii,iv,v. These algorithms correspond to the three algorithms
- available in RDSGEN by Fred Feucht.
- The last three algorithms have a depth of field parameter.
-
- 4. Select Random or Pattern.
- All RDS's produced by ENC are based on a key strip which is placed
- down the left hand side of the image. This key strip can be made
- up of either random colour dots, or be a section of a pattern
- produced by some other means. The default is random dot
- s with the
- default colour palette of black and white. The colour palette, can
- be set for any combination of colours. Colours can even be placed
- in the palette more than once to vary the probability of there use.
- The pattern option if chosen must have a pattern selected,
- ie. there is no default pattern. A pattern that I have used that
- seems to work well is a plasma field as produced by Fractint.
- The pattern selection form is fairly self explanatory. The section
- of the base pattern file to be used is selected via a mouse down and
- drag over the required area. Alternately the select all button may
- be used. If a section is made that is of less height than the RDS
- source then the selection will be repeated until it fills the key
- strip.
-
- 5. Set the Strip Width.
- The Options/General screen also contains the strip width parameter.
- This value is in pixels and should be set such that it works out to
- be of the order of one to two inches, AT THE FINAL RESOLUTION.
- ie. if you are going to look at it on a screen which has about 70
- pixels per inch across, then the strip width should be about this
- value. If you were however to use this value, and printed the result
- on something which has say 300 DPI resolution, then it will be pretty
- hard to see unless you use an enlarging photocopier on the result,
- and blow it up by say a factor of four. Note. If you select a
- pattern then ENC will set the strip width equal to the width of
- pattern chosen.
-
-
- All the above can be repeated as desired. Changes made will only
- put into effect after OK on the Options/General form is clicked.
-
- 6. Translate the Source Picture.
- The act of translation can be started once the source picture has been
- opened, by selecting the calculate menu option (under the file menu).
- This is not a rapid process, (sorry), and it is directly related to
- the size of the window, so resize the window to the minimum useable size
- prior to beginning calculations.
- Note. ENC will translate what ever is in the main window when
- calculate is selected, if it contains a previously calculated RDS
- then that is what will be translated leading to garbage on the screen.
-
- In version 2 of ENC calculations are much faster, however at present
- there is no gentle way of interrupting them once started. The cursor
- will go to an hour glass, the key strip will be calculated, and the
- main translation will begin, please be patient it will finish
- eventually.
-
- Once the translation is finished the result can be saved or printed
- using the appropriate menu items under the file menu.
-
- 7. View the result.
- For on screen viewing I find the technique of turning down the screen
- brightness, until you can see your reflection, then slowly turning it
- backup works best.
-
-
-
-
-
-
-
- Have fun
- Paul McMahon.
- (Comments and suggestions to CIS 72050,426 please)
-
-
- Appendix. How does this all work.
-
- The following is a simplistic description of how the simplest
- algorithm (number 1) works.
-
- The basic algorithm used here is as follows:
- A picture to be translated is some number of pixel's wide,
- say 400, and of immaterial depth.
- A width of vertical strip is chosen, which will give a
- physical strip to strip separation of around about 1 to 4 cm.
- Say for this example it is 50 pixel's wide.
- On the first line the first 50 pixel's(from the left) are
- randomly chosen ( or via some pattern etc.) , ie the information
- in the first 50 pixel's of the picture to be translated is lost.
- The value of the 51st pixel is derived based on the level
- that it is to appear at. If it is at level 0 then it will
- simply be the same as the value now at pixel location 1, if
- it is level 1 then it will be the same as that at location
- 2, and so on.
- In general if the level of the pixel to be translated is 'L'
- and the value of the nth pixel is pixel(n), and the
- separation or strip width is 'W' then:
-
- pixel(n) = pixel(n - (W - L))
- for (n-(W-L)) is > W
-
- or
-
- pixel(n) = random
- for n-(W-L) is < = W
-
- This works for both positive and negative levels. ie level 0 is the
- reference plane, -1 is 1 plane behind this and +1 is 1 plane above it etc.
-
-