【Delphi】 FMX 開發3D 程序(1)--- 簡介

FMX框架很早就支持3D程序開發,可是教程不多,不知道怎麼用,記錄一下研究學習的過程。框架

雖然網上說FMX不少3D控件和類的名稱已經方法與opengl 3D對應,但這方面個人知識點是一片空白,並且我根本就不想再去看opengl的相關內容,實在是學不動了。因此這裏只研究3D控件的基礎使用,作一些簡單效果。函數

一. 建立工程

FMX包含了多個3D控件,在建立工程時,主要有2種方式:佈局

1)2D工程(普通工程) 集成 3D控件

操做流程: File - New - Multi-Device-Application - Blank Application,在form上擺放一個TViewport3D控件。學習

全部3D控件必須放在TViewport3D中使用,而在TViewport3D以外,仍然是普通的程序界面和控件動畫

2)3D工程

操做流程:File - New - Multi-Device-Application - 3D Application3d

此方法建立的工程form繼承子TForm3D,其實內部就至關於一個TViewport3Dorm

二.基礎控件

1)3D Scene

這個分組的控件大概意思就是場景相關的吧,主要包括了整個場景的視角(TCamera,攝像機),燈光(TLight,光源,光照)。blog

另外 TDummy 和 TProxyObject暫時不知道用處,也尚未去使用,之後有機會研究了再說。繼承

2)3D Shapes

與Shapes相似,不過矩形變成了立方體,圓形變成了球形,以及立柱體 圓錐體等3D形狀的控件。教程

另外還有一些虛線(TMesh),框線(TStrokeCube)等圖形,還有文字(TText3D),甚至靈活度很是高的TPath3D(不會用)。

3)3D Layers

這裏大體上就是一些佈局相關的,還有一些功能性控件,如TLayout3D(相似TLayout),TLayer3D(和TLayer TPanel等相似), TImage3D, TSplitter3D等

4)Materrials

素材,渲染相關的,可能熟悉opengl 3d或者作遊戲的人會比較熟悉這個概念,不過這裏面的控件幾乎是必需要用也很實用的。

 

三. 簡單使用

如何作出下面的效果?

採用「2D工程集成3D控件」的方法建立工程,在TViewport3D中擺放一個TCube控件,即Cube1,拖動Cube1的大小(不熟悉的話操做起來會崩潰,嚴重打擊學習的積極性)。

1)設置3D形狀控件的顏色

默認擺放的Cube1是紅色的,沒啥鳥用,一點都看不出3D效果,因此要加上一個素材,選用TLightMaterialSource,即光照素材LightMaterialSource1,再關聯到Cube1.MaterialSource屬性,這時候設置LightMaterialSource1的顏色能夠改變Cube1的顏色。

2)設置3D六面陰影效果

要有陰影效果(不熟悉的連這個效果名稱都叫不出來,我也不知道是否是這樣叫的),就要有光照,如今光照素材(LightMaterialSource1)有了且簡單設置好顏色了,咱們還須要有光源,也就是擺放一個TLight控件Light1,再拖動一下光照方向(如圖中黃色控件)

其餘:

若是想要有動畫效果,則設置Position和RotationAngle等屬性,不過想要好看的晃動效果也不容易啊。。。。涉及3角函數矩陣等運算知識,估計有更簡單的輸入方法,不過不知道怎麼用。

相關文章
相關標籤/搜索