Topenglpanel

ViewMat := TMatrix.CreateLookAt( Point3D(0, 2, 5), // Eye position Point3D(0, 0, 0), // Look-at center Point3D(0, 1, 0) // Up vector );

Context.SetModelViewMatrix(ModelMat * ViewMat); Context.SetProjectionMatrix(ProjMat); TOpenGlPanel

uses System.SysUtils, System.Classes, System.Math.Vectors, FMX.Types, FMX.Controls3D, FMX.Objects3D, FMX.MaterialSources, FMX.Controls.Presentation, FMX.Controls, FMX.Forms, FMX.Types3D, FMX.Context.GLES, FMX.Layers3D; ViewMat := TMatrix

type TMyOpenGLPanel = class(TOpenGLPanel) private FAngle: Single; FTimer: TTimer; procedure OnTimer(Sender: TObject); protected procedure Paint; override; procedure Resize; override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure StartAnimation; procedure StopAnimation; end; ViewMat := TMatrix.CreateLookAt( Point3D(0

procedure TMyOpenGLPanel.StopAnimation; begin FTimer.Enabled := False; end;

// Set shader program (simple fixed-function style) Context.SetShader(TShaderManager.DefaultShader);

// Each face: two triangles (4 vertices) Context.DrawCubeFace(i, 1.0); // Custom helper (see below) end; end;