123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- unit fMultiTexture;
- interface
- uses
- Winapi.OpenGL,
- System.SysUtils,
- System.Classes,
- Vcl.Graphics,
- Vcl.Controls,
- Vcl.Forms,
- Vcl.Dialogs,
- Vcl.ComCtrls,
- Vcl.StdCtrls,
- Vcl.ExtCtrls,
- Vcl.ExtDlgs,
- Vcl.Imaging.Jpeg,
- GLS.Scene,
- GLS.VectorTypes,
- GLS.Objects,
- GLS.Texture,
- GLS.SceneViewer,
- GLS.Material,
- GLS.Coordinates,
-
- GLS.BaseClasses,
- GLS.Utils;
- type
- TForm1 = class(TForm)
- GLScene1: TGLScene;
- GLSceneViewer1: TGLSceneViewer;
- Plane1: TGLPlane;
- GLCamera1: TGLCamera;
- GLMaterialLibrary1: TGLMaterialLibrary;
- Image1: TImage;
- Image2: TImage;
- Label1: TLabel;
- Label2: TLabel;
- Label3: TLabel;
- TrackBar1: TTrackBar;
- Label4: TLabel;
- OpenPictureDialog1: TOpenPictureDialog;
- CBClampTex2: TCheckBox;
- procedure FormCreate(Sender: TObject);
- procedure Image1Click(Sender: TObject);
- procedure Image2Click(Sender: TObject);
- procedure TrackBar1Change(Sender: TObject);
- procedure CBClampTex2Click(Sender: TObject);
- private
- public
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.DFM}
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- SetGLSceneMediaDir();
- // prepare images to merge in the multitexture
- with GLMaterialLibrary1 do begin
- Image1.Picture.LoadFromFile('ashwood.jpg');
- Materials[0].Material.Texture.Image.Assign(Image1.Picture);
- Image2.Picture.LoadFromFile('Flare1.bmp');
- Materials[1].Material.Texture.Image.Assign(Image2.Picture);
- end;
- end;
- procedure TForm1.Image1Click(Sender: TObject);
- begin
- // load a new Image1
- if OpenPictureDialog1.Execute then
- begin
- Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
- GLMaterialLibrary1.Materials[0].Material.Texture.Image.Assign(Image1.Picture);
- end;
- end;
- procedure TForm1.Image2Click(Sender: TObject);
- begin
- // load a new Image2
- if OpenPictureDialog1.Execute then
- begin
- Image2.Picture.LoadFromFile(OpenPictureDialog1.FileName);
- GLMaterialLibrary1.Materials[1].Material.Texture.Image.Assign(Image2.Picture);
- end;
- end;
- procedure TForm1.TrackBar1Change(Sender: TObject);
- begin
- // adjust scale
- with GLMaterialLibrary1.Materials[1].TextureScale do
- begin
- X:=TrackBar1.Position/10;
- Y:=TrackBar1.Position/10;
- end;
- end;
- procedure TForm1.CBClampTex2Click(Sender: TObject);
- begin
- with GLMaterialLibrary1.Materials[1].Material.Texture do
- if CBClampTex2.Checked then
- TextureWrap:=twNone
- else TextureWrap:=twBoth;
- end;
- end.
|