概述:
       這個文檔羅列了一些我們在開發3D模型和使用M
1. 通常的問題:
a) 如果你想你的應用程序能夠運行一個任意的適合M3G的引擎,那們就不要使用任何額外的擴展接口。當不確定某一接口是否可用時,可以參考在http://www.forum.nokia.com的文檔(JSR184)。
b) 文件打算生成一個java壓縮文件(JAR)或者普通的壓縮文件時應當非壓縮地導出。在程序開始時,解壓同樣數據兩次會使程序變慢,并且相當關鍵地是增加內存的消耗。
c) 我們在代碼中需要存取的那些對象需要有唯一的UserID值。
2. 攝像機
a) 手動設置攝像機的剪切框。
b) 盡可能的從零點移動近的剪切框。
c) 移動遠的剪切框時,盡可能的接近近的剪切框。
d) 確保在場景中至少有一個可用的攝像機。
e) 如果使用了多個攝像機,確保在輸出時至少其中的一個是可用的。
3. 幾何學
a) 使用更好的表面紋理細節代替幾何的貼圖(譯者注:盡量減少多邊形個數)。
b) 確保無論在任何地方,網格都是實例的。
c) 刪除所有不必要的頂點和多邊形。
d) 不用在屏幕上不被顯示的比較小的多邊形。
e) 避免同一平面多邊形彼此覆蓋,舉個例子使用二進制運算符將這些多邊形連成不互相覆蓋的多邊形
f) 對于減少多邊形的個數,使用相交的幾何圖形優于合并過的多變形。然而,注意過深的相交幾何也增加了光柵化的負荷。在所有的接口中相交多邊形可能不是抗鋸齒(anti-aliased)
g) 確認所有的物體形狀都已經被重新設置,盡可能多的讓一些形狀被設置成唯一的矩陣。
h) 單一的蒙皮網格可能比使用多等級的物體處理速度快,這依賴于接口和向量數組的寬度。
i) 在實時的光線渲染時,表面的法線向量是必須的。
4. 光線
a) 為了使光線看起來比較好,物體通常被分割(分割多邊形)。
b) 只渲染那些需要光線的物體,因為光線計算十分耗費資源。
c) 光線映射在很多情況下是比較快和效果十分好的,相對于實時的光線操作。
d) 在同一個物體上使用光線映射和散射映射時,請確定你的目標硬件設備是否支持多貼圖(所有的Nokia都支持)。
e) 如果可能,盡量使用方向燈光而不是點光源。
f) 天空光源(環境光源),面光源,和其他的更高級的光源是不支持的。
g) 動態陰影是不支持的,可以使用貼圖映射的方式顯示陰影效果。
h) 方向光照不能被消減和限制成一個錐體(相當于使用點光源)。
i) 在場景中不要使用多于一兩個光源,如果你想使用更多,那們在你的程序中使用屏蔽和列表的方式,在需要光照的物體上分別使用不同的光源。
j) 如果你的程序想在所有的接口上使用,在任何物體上都不要使用超過8個的虛擬光源。
5. 表現和貼圖
a) 保持貼圖盡可能的消以節省內存。
b) 確保如果使用一種以上的材質素材時圖片是實例化的。
c) 使用透明(Alpha)或亮度(Luminance)的格式代替使用RGB或RGBA的格式。
d) 使用壓縮的象素格式代替原始的RGB或RGBA格式。
e) 不要使用低于16×16的調色板。
f) 如果使所有的設備都能夠運行你的程序,那么貼圖的大小不能超過256×256。而且長和寬都必須使2的冪(1、2、4、8、16、32、64、128或256),但不要求相同。
g) 在任何可能的地方,使用Compositing = REPLACE和Texture Blending = REPLACE模式,以減少每個象素點的計算。
h) 如果你使用1位alpha(就是透明繪制),總是使用Texture Blending = RPLACE的Alpha Threshold是0.5的貼圖,這比使用Texturing Blending = ALPHA快的多。
i) 在你導出文件時,刪除掉你不用的所有的數據,包括向量顏色或貼圖坐標等,這樣可以節省文件的大小和內存。
j) 如果可能使用8位的貼圖坐標而不是16位的。
k) 對于背景的貼圖必須是RGB格式的,除非你使用Image2D創建場景可以使用RGBA格式。
6. 動畫
a) 刪除所有不必要的幀。
b) 針對于較快的處理速度使用線性的幀,對于要長時間播放使用時間槽方式。
c) 旋轉時使用時間槽控制器,以減少幀數。
d) 使用時間槽控制器時,確保所有輸入輸出設置都是相同的。
e) 在骨骼上不要使用沒有定義的比例尺
f) 所有運動目標必須有相同的時間鍵數字。
(出處:http://m.survivalescaperooms.com)
新聞熱點
疑難解答