/
ArtemSls
/
O3DM
Обзор
Документация
Войти
/
ArtemSls
/
O3DM
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
patch
Lab7/fSkyBox.cpp
112 строк
6 KB
ArtemSls
upload files
24 янв 2025, 03:36
24 янв 2025, 03:36
c45b34a
Код
Авторство
О чём код?
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "fSkyBox.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "GLS.BaseClasses" #pragma link "GLS.Scene" #pragma link "GLS.SceneViewer" #pragma link "GLS.Cadencer" #pragma link "GLS.Material" #pragma link "GLS.SimpleNavigation" #pragma link "GLS.Coordinates" #pragma link "GLS.LensFlare" #pragma link "GLS.SkyDome" #pragma link "GLS.Objects" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { LoadTexture("Left", "../../Assets/hills_negx.bmp"); GLMaterialLibrary1->Materials->Items[0]->Material->Texture->TextureMode = tmDecal; LoadTexture("Right", "../../Assets/hills_posx.bmp"); GLMaterialLibrary1->Materials->Items[1]->Material->Texture->TextureMode = tmDecal; LoadTexture("Top", "../../Assets/hills_posy.bmp"); GLMaterialLibrary1->Materials->Items[2]->Material->Texture->TextureMode = tmDecal; LoadTexture("Bottom", "../../Assets/hills_negy.bmp"); GLMaterialLibrary1->Materials->Items[3]->Material->Texture->TextureMode = tmDecal; LoadTexture("Front", "../../Assets/hills_posz.bmp"); GLMaterialLibrary1->Materials->Items[4]->Material->Texture->TextureMode = tmDecal; LoadTexture("Back", "../../Assets/hills_negz.bmp"); GLMaterialLibrary1->Materials->Items[5]->Material->Texture->TextureMode = tmDecal; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->Material->BlendingMode = bmTransparency; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->Material->FrontProperties->Diffuse->Alpha = 0.3; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->Material->FrontProperties->Diffuse->Red = 255; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->Material->FrontProperties->Diffuse->Green = 255; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->Material->FrontProperties->Diffuse->Blue = 255; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->Material->FrontProperties->Ambient->Red = 255; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->Material->FrontProperties->Ambient->Green = 255; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->Material->FrontProperties->Ambient->Blue = 255; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->Material->FrontProperties->Emission->Red = 255; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->Material->FrontProperties->Emission->Green = 255; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->Material->FrontProperties->Emission->Blue = 255; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->TextureScale->X = 8; LoadTexture("Clouds_b", "../../Assets/clouds_b.jpg")->TextureScale->Y = 8; LoadTexture("Clouds_m", "../../Assets/clouds_m.jpg")->Material->BlendingMode = bmTransparency; LoadTexture("Clouds_m", "../../Assets/clouds_m.jpg")->Material->FrontProperties->Diffuse->Alpha = 0.25; LoadTexture("Clouds_m", "../../Assets/clouds_m.jpg")->Material->FrontProperties->Diffuse->Red = 255; LoadTexture("Clouds_m", "../../Assets/clouds_m.jpg")->Material->FrontProperties->Diffuse->Green = 255; LoadTexture("Clouds_m", "../../Assets/clouds_m.jpg")->Material->FrontProperties->Diffuse->Blue = 255; LoadTexture("Clouds_m", "../../Assets/clouds_m.jpg")->Material->FrontProperties->Ambient->Red = 255; LoadTexture("Clouds_m", "../../Assets/clouds_m.jpg")->Material->FrontProperties->Ambient->Green = 255; LoadTexture("Clouds_m", "../../Assets/clouds_m.jpg")->Material->FrontProperties->Ambient->Blue = 255; LoadTexture("Clouds_m", "../../Assets/clouds_m.jpg")->TextureScale->X = 8; LoadTexture("Clouds_m", "../../Assets/clouds_m.jpg")->TextureScale->Y = 8; } //--------------------------------------------------------------------------- TGLLibMaterial* __fastcall TForm1::LoadTexture(String Matname, String Filename) { GLMaterialLibrary1->AddTextureMaterial(Matname, Filename); GLMaterialLibrary1->Materials->Items[0]->Material->Texture->Disabled = false; return GLMaterialLibrary1->Materials->GetLibMaterialByName(Matname); } //--------------------------------------------------------------------------- void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double DeltaTime, const double NewTime) { GLMaterialLibrary1->Materials->GetLibMaterialByName("Clouds_b")->TextureOffset->X = GLMaterialLibrary1->Materials->GetLibMaterialByName("Clouds_b")->TextureOffset->X + DeltaTime * 0.02; GLMaterialLibrary1->Materials->GetLibMaterialByName("Clouds_b")->TextureOffset->Y = GLMaterialLibrary1->Materials->GetLibMaterialByName("Clouds_b")->TextureOffset->Y + DeltaTime * 0.03; GLMaterialLibrary1->Materials->GetLibMaterialByName("Clouds_m")->TextureOffset->X = GLMaterialLibrary1->Materials->GetLibMaterialByName("Clouds_m")->TextureOffset->X + DeltaTime * 0.01; GLMaterialLibrary1->Materials->GetLibMaterialByName("Clouds_m")->TextureOffset->Y = GLMaterialLibrary1->Materials->GetLibMaterialByName("Clouds_m")->TextureOffset->Y + DeltaTime * 0.02; GLSceneViewer1->Invalidate(); if (IsKeyDown(VK_ESCAPE)) Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::GLSceneViewer1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { mx = X; my = Y; } //--------------------------------------------------------------------------- void __fastcall TForm1::GLSceneViewer1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if (Shift.Contains(ssLeft)) { GLCamera1->MoveAroundTarget(my - Y, mx - X); } else if (Shift.Contains(ssRight)) { GLCamera1->RotateTarget(my - Y, mx - X, 0); } mx = X; my = Y; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { Form1->Caption = "Lab7_SkyBox_Slesarev - " + GLSceneViewer1->FramesPerSecondText(); GLSceneViewer1->ResetPerformanceMonitor(); } //---------------------------------------------------------------------------