以U3D的遊戲素材為例

 

Step 1、從VR素材庫裡,取出遊戲<素材鏡像>(docker image)。

Step 2、從上述<素材鏡像>裡取出素材的C#軟體類別。

Step 3、此C#類別共內含3項要素: 1) 元資料(meta data); 2) 3d資料內容(content);  3) 程式碼(code)。

Step 4、由軟體工程師從上述C#類別衍生(derive)出一個子類別(subclass),在默認下,此子類別會自動繼承(inherit)上述C#類別(此時扮演父類別角色)的3項要素。

Step 5、由工程師撰寫子類別的元資料(meta data),來表達新的情境(new context);此時子類別會自動覆蓋掉(override)從父類別所繼承的元資料。

Step 6、同樣地,工程師也能替子類別撰寫新的3d資料內容(即素材的3d資料模型),子類別會自動覆蓋掉從父類別所繼承的3d資料內容。

Step 7、同樣地,工程師也能替子類別撰寫新的程式碼,子類別會自動覆蓋掉從父類別所繼承的程式碼。

Step 8、由於原來的C#類別(即父類別)和新的子類別都同時存在著,未來隨時可基於它們再衍生出更多的子類別,來表達出該VR遊戲素材在不同情境下展現的不同風貌,這通稱為:VR素材的多態性(polymorphism)。

Step 9、工程師使用Docker腳本語言,撰寫DockerFile腳本,來指引Docker將上述的父類別和子類別,及其依賴的Lib代碼一起打包成為世界標準的docker鏡像(image)。

Step 10、將上述docker鏡像(即VR素材的鏡像)上傳到素材共用平台(俗稱VR素材超市),就製作完成了。

~ end ~