
     TStereogram ver. 0.8 beta  (Freeware)
     (c) Copyright 1999      Andrej Olejnik

     email olej@atlas.cz  or olej@asset.sk
     Any comments and BUG reports are welcome.

     TStereogram create fast Single Image Random Dot Stereograms (SIRDS),
     or Single Image Stereograms (SIS) depending on whether the picture
     contains random dots as a base for the 3D effect, or a repetitive
     image pattern. Unfortunately, each commercial company has labelled
     them differently. Shop owners generally don't know what you mean,
     unless you say "Hollusion" or one of the many other specific names.

     See some descriptions on WWW - http://www.ucl.ac.uk/~ucapwas/stech.html

     This unit & sample is Freeware.
     for use with Delphi 3/4  (I don't try with Delphi 2.0)
     this component is for private use only,
     You must not sell the component or the source code


     TStereogram uses TFastBmp from
     Gordon Alex Cowie <gfody@jps.net>
     www.jps.net/gfody


     Install: Install TStereogram component and try demo


     TStereogram implements two algorithms

     1. Simple random algorithm
        used in sgtFastRandomDot and sgtColoredDot stereogram types

        This is fast asymmetric algorithm drawing from left to right
        NO Hidden-surface removal
        with complicated images raises echoes


     2. Slower (50% then first) but faithful algorithm
        used in sgtRandomDotTextured and sgtTextured types

        Fully symmetric algorithm for perfect image geometry
        Hidden-surface removal
        Absence of artifactual 'echoes'
        Oversampling
        From-the-centre-outwards pattern application




       To Start generating call  Generate
       result bitmap is saved in ResultMap and FastResultMap


      Property description:


      property ResultMap: TBitmap read ReadResultMap;
 
        After Generate can get result Bitmap


      property FastResultMap: TFastBmp read FFastResultMap;

        Like ResultMap, but result is TFastBmp


      property OnGenerate: TNotifyEvent read FOnGenerate write FOnGenerate;

        Enable set Generate event and display progress


      property DepthMap: TBitmap read FDepthMap write SetDepthMap;

        You must set DepthMap, whitch contains gray bitmap
        lighter points are further, darker are far


      property Height: Integer read GetHeight write SetHeight default 600;

        Height of result bitmap


      property MaskMap: TBitmap read FMaskMap write SetMaskMap;

        Bitmap used to texture in SIS stereograms


      property Separation: Integer read GetSeparation write SetSeparation default 90;

        Maximum distance between two points, which represents maximal depth


      property StereoType: TStereoGramType read GetType write SetType;

        sgtFastRandomDot - Fast random dot algorithm, don't use MapMask
                           Dot can be Black & White or RGB - See RandomDotColor
                           Dot Intensity B&W sets with DotIntensity


        sgtColoredDot -    Fast random dot algorithm, MaskMap used
                           to colorize background

        sgtRandomDotTextured - Exact algorithm with similar results like
                               sgtFastRandomDot,  random dot texture
                               is prepared first in MaskMap, then is image
                               compute like with real texture

        sgtTextured  -      Exact algorithm, MapMask is used to texture
                            result image, use Oversampling for smooth images,
                            this gets nice fast results

      property Width: Integer read GetWidth write SetWidth default 800;

        Width of result bitmap


      property DotIntensity: Integer read FDotIntensity write SetDotIntensity default 50;

        Random dot intensity in percent used for generating SIRDs
        Random image stereograms


      property DPI: Integer read FDPI write SetDPI default 72;

        Display device resolution


      property Blur: TBlurType read FBlur write FBlur;

        Good for random dot stereograms


      property RandomDotColor: TRandomDotColorType read FRandomDotColor write FRandomDotColor;

        Type of random dot - black & white  or  RGB


      property Oversampling: Integer read Foversam write Setoversam;

        For smooth results use Oversapling with Textured & RandomDotTexturef


      property ObservDistance: Double read FobsDist write SetobsDist;

        Observer distance from canvas/screen in inches


      property Max3Ddepth: Double read Fmaxdepth write Setmaxdepth;

        Maximal distance from canvas/screen in inches for projected 3D object


      property Min3Ddepth: Double read Fmindepth write Setmindepth;

        Minimal distance from canvas/screen in inches for projected 3D object

     TStereogram ver. 0.8 beta  (Freeware)
     (c) Copyright 1999      Andrej Olejnik

     email olej@atlas.cz  or olej@asset.sk
     Any comments and BUG reports are welcome.

     TStereogram create fast Single Image Random Dot Stereograms (SIRDS), 
     or Single Image Stereograms (SIS) depending on whether the picture 
     contains random dots as a base for the 3D effect, or a repetitive 
     image pattern. Unfortunately, each commercial company has labelled 
     them differently. Shop owners generally don't know what you mean, 
     unless you say "Hollusion" or one of the many other specific names.

     See some descriptions on WWW - http://www.ucl.ac.uk/~ucapwas/stech.html

     This unit & sample is Freeware.
     for use with Delphi 3/4  (I don't try with Delphi 2.0)
     this component is for private use only,
     You must not sell the component or the source code


     TStereogram uses TFastBmp from
     Gordon Alex Cowie <gfody@jps.net>
     www.jps.net/gfody

    
     TStereogram implements two algorithms

     1. Simple random algorithm 
        used in sgtFastRandomDot and sgtColoredDot stereogram types

        This is fast asymmetric algorithm drawing from left to right
        NO Hidden-surface removal
        with complicated images raises echoes


     2. Slower (50% then first) but faithful algorithm 
        used in sgtRandomDotTextured and sgtTextured types

        Fully symmetric algorithm for perfect image geometry
        Hidden-surface removal
        Absence of artifactual 'echoes'
        Oversampling
        From-the-centre-outwards pattern application



      Property description:


      property ResultMap: TBitmap read ReadResultMap;
 
        After Generate can get result Bitmap


      property FastResultMap: TFastBmp read FFastResultMap;

        Like ResultMap, but result is TFastBmp


      property OnGenerate: TNotifyEvent read FOnGenerate write FOnGenerate;

        Enable set Generate event and display progress


      property DepthMap: TBitmap read FDepthMap write SetDepthMap;

        You must set DepthMap, whitch contains gray bitmap
        lighter points are further, darker are far


      property Height: Integer read GetHeight write SetHeight default 600;

        Height of result bitmap


      property MaskMap: TBitmap read FMaskMap write SetMaskMap;

        Bitmap used to texture in SIS stereograms


      property Separation: Integer read GetSeparation write SetSeparation default 90;

        Maximum distance between two points, which represents maximal depth


      property StereoType: TStereoGramType read GetType write SetType;

        sgtFastRandomDot - Fast random dot algorithm, don't use MapMask
                           Dot can be Black & White or RGB - See RandomDotColor
                           Dot Intensity B&W sets with DotIntensity
                      

        sgtColoredDot -    Fast random dot algorithm, MaskMap used
                           to colorize background

        sgtRandomDotTextured - Exact algorithm with similar results like
                               sgtFastRandomDot,  random dot texture
                               is prepared first in MaskMap, then is image 
                               compute like with real texture                     

        sgtTextured  -      Exact algorithm, MapMask is used to texture
                            result image, use Oversampling for smooth images,
                            this gets nice fast results        

      property Width: Integer read GetWidth write SetWidth default 800;

        Width of result bitmap


      property DotIntensity: Integer read FDotIntensity write SetDotIntensity default 50;

        Random dot intensity in percent used for generating SIRDs
        Random image stereograms


      property DPI: Integer read FDPI write SetDPI default 72;

        Display device resolution


      property Blur: TBlurType read FBlur write FBlur;

        Good for random dot stereograms


      property RandomDotColor: TRandomDotColorType read FRandomDotColor write FRandomDotColor;

        Type of random dot - black & white  or  RGB


      property Oversampling: Integer read Foversam write Setoversam;

        For smooth results use Oversapling with Textured & RandomDotTexturef


      property ObservDistance: Double read FobsDist write SetobsDist;

        Observer distance from canvas/screen in inches


      property Max3Ddepth: Double read Fmaxdepth write Setmaxdepth;

        Maximal distance from canvas/screen in inches for projected 3D object


      property Min3Ddepth: Double read Fmindepth write Setmindepth;

        Minimal distance from canvas/screen in inches for projected 3D object


