123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #include <tchar.h>
- #pragma hdrstop
- #include "Unit1.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma link "GLS.BaseClasses"
- #pragma link "GLS.Cadencer"
- #pragma link "GLS.Coordinates"
- #pragma link "GLS.Graph"
- #pragma link "GLS.Material"
- #pragma link "GLS.Objects"
- #pragma link "GLS.Scene"
- #pragma link "GLS.SimpleNavigation"
- #pragma link "GLS.VectorFileObjects"
- #pragma link "GLS.SceneViewer"
- #pragma link "GLS.FileMD2"
- #pragma link "GLS.File3DS"
- #pragma link "GLSL.cgBombShader"
- #pragma resource "*.dfm"
- TForm1 *Form1;
- //---------------------------------------------------------------------------
- __fastcall TForm1::TForm1(TComponent* Owner)
- : TForm(Owner)
- {
- }
- void __fastcall TForm1::ResetPositions()
- {
- TrackBar1->Position = InterpolateCombinedSafe(0.01, 10, MyShader->Displacement, 0, 100, 1, itLinear);
- TrackBar2->Position = InterpolateCombinedSafe(-0.13, 10, MyShader->Sharpness, 0, 100, 1, itLinear);
- TrackBar3->Position = InterpolateCombinedSafe(0.01, 6, MyShader->ColorSharpness, 0, 100, 1, itLinear);
- TrackBar4->Position = InterpolateCombinedSafe(0.1, 1, MyShader->Speed, 0, 100, 1, itLinear);
- TrackBar5->Position = InterpolateCombinedSafe(0.01, 8, MyShader->TurbDensity, 0, 100, 1, itLinear);
- TrackBar6->Position = InterpolateCombinedSafe(-0.5, 0.5, MyShader->ColorRange, 0, 100, 1, itLinear);
- TrackBar7->Position = InterpolateCombinedSafe(0, 1, MyShader->Alpha, 0, 100, 1, itLinear);
- TrackBar8->Position = InterpolateCombinedSafe(0, 2, MyShader->MainTextureShare, 0, 100, 1, itLinear);
- TrackBar9->Position = InterpolateCombinedSafe(0, 2, MyShader->GradientTextureShare, 0, 100, 1, itLinear);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::FormCreate(TObject *Sender)
- {
- // First load models from media directory
- SetGLSceneMediaDir();
- GLActor1->LoadFromFile("waste.md2"); //Fighter
- GLActor1->SwitchToAnimation(0, True);
- GLActor1->AnimationMode = aamLoop;
- GLActor1->Scale->Scale(0.05);
- ffTeapot->LoadFromFile("Teapot.3ds");
- ffSphere1->LoadFromFile("Sphere_little.3DS");
- ffSphere2->LoadFromFile("Sphere_big.3DS");
- ffSphere2->Scale->Scale(20);
- GLMaterialLibrary1->LibMaterialByName("marbles1")->
- Material->Texture->Image->LoadFromFile("beigemarble.jpg");
- GLMaterialLibrary1->LibMaterialByName("marbles2")->
- Material->Texture->Image->LoadFromFile("marbletiles.jpg");
- GLMaterialLibrary1->LibMaterialByName("snow")->
- Material->Texture->Image->LoadFromFile("snow512.jpg");
- GLMaterialLibrary1->LibMaterialByName("Fire")->
- Material->Texture->Image->LoadFromFile("FireGrade.bmp");
- GLMaterialLibrary1->LibMaterialByName("FighterTexture")->
- Material->Texture->Image->LoadFromFile("waste.jpg");
- MyShader = new TCgBombShader(this);
- MyShader->MainTexture = GLMaterialLibrary1->LibMaterialByName("FighterTexture")->Material->Texture;
- MyShader->Cadencer = GLCadencer1;
- // All models are linked with this material
- GLMaterialLibrary1->LibMaterialByName("LibMaterial")->Shader = MyShader;
- ResetPositions();
- ComboBox1Change(Sender);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::ComboBox1Change(TObject *Sender)
- {
- MyShader->GradientTexture = GLMaterialLibrary1->LibMaterialByName(ComboBox1->Text)->Material->Texture;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::CheckBox1Click(TObject *Sender)
- {
- GLActor1->Visible = CheckBox1->Checked;
- ffTeapot->Visible = CheckBox2->Checked;
- ffSphere1->Visible = CheckBox3->Checked;
- ffSphere2->Visible = CheckBox4->Checked;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::TrackBar1Change(TObject *Sender)
- {
- if (MyShader == NULL)
- exit;
- MyShader->Displacement = InterpolateCombinedSafe(0, 100, TrackBar1->Position, 0.01, 10, 1, itLinear);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::TrackBar2Change(TObject *Sender)
- {
- MyShader->Sharpness = InterpolateCombinedSafe(0, 100, TrackBar2->Position, -0.13, 10, 1, itLinear);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::TrackBar3Change(TObject *Sender)
- {
- MyShader->ColorSharpness = InterpolateCombinedSafe(0, 100, TrackBar3->Position, 0.01, 6, 1, itLinear);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::TrackBar4Change(TObject *Sender)
- {
- MyShader->Speed = InterpolateCombinedSafe(0, 100, TrackBar4->Position, 0.1, 1, 1, itLinear);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::TrackBar5Change(TObject *Sender)
- {
- MyShader->TurbDensity = InterpolateCombinedSafe(0, 100, TrackBar5->Position, 0.1, 8, 1, itLinear);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::TrackBar6Change(TObject *Sender)
- {
- MyShader->ColorRange = InterpolateCombinedSafe(0, 100, TrackBar6->Position, -0.5, 0.5, 1, itLinear);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::TrackBar7Change(TObject *Sender)
- {
- MyShader->Alpha = InterpolateCombinedSafe(0, 100, TrackBar7->Position, 0, 1, 1, itLinear);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::TrackBar8Change(TObject *Sender)
- {
- MyShader->MainTextureShare = InterpolateCombinedSafe(0, 100, TrackBar8->Position, 0, 2, 1, itLinear);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::TrackBar9Change(TObject *Sender)
- {
- MyShader->GradientTextureShare = InterpolateCombinedSafe(0, 100, TrackBar9->Position, 0, 2, 1, itLinear);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime,
- const double newTime)
- {
- GLSceneViewer1->Invalidate();
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::ShaderEnabledCheckBoxClick(TObject *Sender)
- {
- MyShader->Enabled = ShaderEnabledCheckBox->Checked;
- }
- //---------------------------------------------------------------------------
|