/
daryadevx
/
KMiVVR
Обзор
Документация
Войти
/
daryadevx
/
KMiVVR
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Lab7/Panorama.cpp
134 строки
5 KB
daryadevx
fix
24 дек 2024, 21:14
24 дек 2024, 21:14
5d0eeb2
Код
Авторство
О чём код?
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Panorama.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "GLS.BaseClasses" #pragma link "GLS.Cadencer" #pragma link "GLS.Coordinates" #pragma link "GLS.LensFlare" #pragma link "GLS.Material" #pragma link "GLS.Navigator" #pragma link "GLS.Objects" #pragma link "GLS.Scene" #pragma link "GLS.SimpleNavigation" #pragma link "GLS.SkyDome" #pragma link "GLS.SceneViewer" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- 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::FormCreate(TObject *Sender) { SetCurrentDir(ExtractFilePath(Application->ExeName) + "\\Cubemaps"); // -------------- // Load graphics // -------------- // Skybox textures LoadTexture("Back","icecraterlf.jpg"); GLMaterialLibrary1->Materials->Items[0]->Material->Texture->TextureMode = tmDecal; LoadTexture("Front","icecraterrt.jpg"); GLMaterialLibrary1->Materials->Items[1]->Material->Texture->TextureMode = tmDecal; LoadTexture("Top","icecraterup.jpg"); GLMaterialLibrary1->Materials->Items[2]->Material->Texture->TextureMode = tmDecal; LoadTexture("Bottom","icecraterdn.jpg"); GLMaterialLibrary1->Materials->Items[3]->Material->Texture->TextureMode = tmDecal; LoadTexture("Left","icecraterft.jpg"); GLMaterialLibrary1->Materials->Items[4]->Material->Texture->TextureMode = tmDecal; LoadTexture("Right","icecraterbk.jpg"); GLMaterialLibrary1->Materials->Items[5]->Material->Texture->TextureMode = tmDecal; // Add transparency to clouds SetCurrentDir(ExtractFilePath(Application->ExeName) + "\\Assets"); LoadTexture("Clouds","Clouds.jpg")->Material->BlendingMode = bmTransparency; LoadTexture("Clouds","Clouds.jpg")->Material->FrontProperties->Diffuse->Alpha = 0.3; // scale the clouds texture LoadTexture("Clouds","Clouds.jpg")->TextureScale->X = 9; LoadTexture("Clouds","Clouds.jpg")->TextureScale->Y = 9; // bricks LoadTexture("Bricks","rawwall.jpg")->TextureScale->X = 1; LoadTexture("Bricks","rawwall.jpg")->TextureScale->Y = 32; LoadTexture("Bricks","rawwall.jpg")->Material->Texture->TextureMode = tmModulate; LoadTexture("Bricks2","marbletiles.jpg")->TextureScale->X = 6; LoadTexture("Bricks2","marbletiles.jpg")->TextureScale->Y = 1; LoadTexture("Bricks2","marbletiles.jpg")->Material->Texture->TextureMode = tmModulate; //Moon LoadTexture("Moon","unwrapped moon.jpg")->Material->Texture->TextureMode = tmModulate; //----------------------------------------- // Assign materials to objects //----------------------------------------- GLCube1->Material->LibMaterialName = "Bricks"; GLCube11->Material->LibMaterialName = "Bricks"; GLCube111->Material->LibMaterialName = "Bricks"; GLCube112->Material->LibMaterialName = "Bricks"; GLCube2->Material->LibMaterialName = "Bricks2"; GLCube21->Material->LibMaterialName = "Bricks2"; GLCube21->Material->LibMaterialName = "Bricks2"; GLCube211->Material->LibMaterialName = "Bricks2"; GLCube212->Material->LibMaterialName = "Bricks2"; GLSphere1->Material->LibMaterialName = "Moon"; GLSphere2->Material->LibMaterialName = "Moon"; GLUserInterface1->MouseLookActive = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime, const double newTime) { // Make clouds Texture slide GLMaterialLibrary1->Materials->GetLibMaterialByName("Clouds")->TextureOffset->X = GLMaterialLibrary1->Materials->GetLibMaterialByName("Clouds")->TextureOffset->X + deltaTime * 0.02; GLMaterialLibrary1->Materials->GetLibMaterialByName("Clouds")->TextureOffset->Y = GLMaterialLibrary1->Materials->GetLibMaterialByName("Clouds")->TextureOffset->Y + deltaTime * 0.03; // Rotate moons GLSphere1->Turn(deltaTime * 7); GLSphere2->Turn(deltaTime * 10); HandleKeys(deltaTime); GLUserInterface1->MouseLook(); GLUserInterface1->MouseUpdate(); GLSceneViewer1->Invalidate(); } //--------------------------------------------------------------------------- void __fastcall TForm1::HandleKeys(double d) { if (IsKeyDown('W')||IsKeyDown('Z')) GLCamera1->Move(d); if (IsKeyDown('S')) GLCamera1->Move(-d); if (IsKeyDown('A') || IsKeyDown('A')) GLCamera1->Slide(-d); if (IsKeyDown('D')) GLCamera1->Slide(d); if(IsKeyDown(VK_SPACE)) Castle->Visible = !Castle->Visible; if(IsKeyDown(VK_ESCAPE)) Close(); }