C++ Builder 處理 3D 物件及動畫

3D 物件程式

參考:http://docwiki.embarcadero.com/RADStudio/Tokyo/en/FireMonkey_3D

C++ Builder 可以處理 3D 程式,主要方法簡述如下。

1. 若要能直接放 3D 物件,一開始就要選 3D Application。

image

2. 若不是在  3D Application 的程式中想加入 3D 的物件,要先加入 TViewport3D 元件,才能在裡面放 3D 物件。

3. 反之,如果要在 3D Application 放 2D 元件,就要先放 TLayer3D 元件,才可以在裡面放 2D 元件。

3D 物件基本設計

參考  :

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Creating_the_User_Interface_(FireMonkey_3D_Tutorial)

1. 放置物件,例如放 TCube 方塊及 TLight,Tlight 代表光的方向。

image

2. 物件和光源都可以調整位置,物件也有長、寬、高可調,以及三個方向可旋轉。

3. 要在物體表面貼圖,要加入這個元件 TLightMaterialSource。這個會根據光源調整亮度,如果放 TTextureMaterialSource,就不受光源影響。

4. 在 TLightMaterialSource 的 Texture 屬性載入圖檔。

5. 在 TCube 的 MaterialSource 屬性選剛剛載入圖檔的 TLightMaterialSource,就會看到貼圖的 3D 物件。

image

動畫效果

參考 :

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Creating_a_FireMonkey_3D_Application_with_Animation_Effects

1. 在某些屬性有像電影底片的圖案,表示可以做動畫的效果,選擇 Create New TFloatAnimation。

image

2. 在物件列表就可以看到 FloatAnimation1,選擇它。

image

3. 設定底下的屬性。

  • Duration : 4 ,表示這個動畫要花 4 秒。
  • Enabled : True,表示直接執行。
  • Interpolation : Bounce,動的過程是 "彈" 的動作。Linear 就是線性。
  • Loop : Ture,會重覆一直做。
  • StartValue : 3,初值是 3。
  • StopValue : 6,末值是 6。

因為這是設定在 Width 的位置,表示執行後,物件的寬度會在 4 秒內由 3 變成 6。變化是 "彈" 的動作,而且是連續的動畫,因為這是浮點的運算。

4. 也可以用程式來控制。例如旋轉的 Y 軸屬性沒有電影底片的圖案,無法直接設定動作,也可以用底下的程式來實現。

Cube1->AnimateFloat("RotationAngle.Y",360,2);

這表示在 2 秒內 Y 軸旋轉 360 度。

以上就是簡單的 3D 物件設計及動畫處理。

重要度:
文章分類:

發表新回應