優化您的體驗

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡


最佳化您的體驗 是配置您的資產和 Studio 設定以保持對裝置的幀率和性能等級高的過程,其中包括具有記憶和圖形處理單元(GPU)限制的裝置。這個過程確保每個用戶都有相同的遊戲體驗和視覺體驗,當他們查看您的環境時。

使用 環境藝術-最佳化.rbxl 作為參考,本節環境藝術課程的這一部分向您展示如何檢查和配置您的位置文件以獲得最佳圖形,包括指南:

  • 檢查每個資產的物理和渲染參數,以確認它們保留記憶和引擎履約。
  • 過濾不必要地增加 Roblox 引擎必須執行的計算量的額外紋理、幾何或透明度。

雖然 Roblox 引擎為您處理大多數最佳化工作,但您可以使用 微型調試器 來協助這些最佳化努力,看看哪裡需要更多時間來渲染特定框架。使用此資訊,您可以做出有關參數或額外內容的資產需要您關注的決定。

檢查物理和渲染參數

組裝資產圖庫 中,您學到了設置允許資產在裝置上保持高視覺質量的物理和渲染參數有多重要。然而,當您構建環境時,這些參數通常會根據素材的上下文位置和目的在體驗中調整。例如,最終樣本雷射標籤環境中的大部分葉子在性能成本之上投射陰影,因為它會增加環境的寫實度。

當您修改物理和渲染參數時,在開發過程結束時查看所有參數以確定在保持美感目標和遊戲需求的情況下,您可以優化哪個參數以實現最佳效果。為了說明,您可以禁用 BasePart.CastShadow 屬性為遊戲區域邊緣的綠葉,以節省性能而不會干擾使用者的遊戲或視覺體驗。

淘汰非必要內容

檢查完你的物理和渲染參數後,你可以檢查資產本身來查看你可以從體驗中刪除哪些非必要內容,例如相同的紋理與不同的資產ID、複雜的幾何圖形與高垂直度,或是透明度,根據相機檢視角互相堆疊。以下部分詳細說明您可以做什麼來查看此內容,以及為什麼它會幫助最佳化努力。

移除重複的紋理

當您在開發資產和構建環境之間轉換時,尋找所需的外觀目標或遊戲需求時,會常常在網格或紋理上循環,以便找到最適合您的需求。如果你未將資產轉換為 ,當你匯入這些循環到 Studio 時,你正在製作獨特的資產ID,Roblox 引擎需要在環境內渲染你的資產時參考它們。

例如,如果您獨立地將以下兩個消防栓網格匯入 Studio,即使外觀相同,Roblox 引擎仍將它們視為兩個具有獨特資產ID的對象。需要引擎執行的獨特呼叫越多,對記憶和履約的影響就越大。因此,當您多次重複使用一個資產時,每個該資產的實例都使用相同的資產ID,以便引擎只需要做出單次呼叫即可重複渲染它。

Two of the exact same fire hydrant with unique assetIDs. There is no visual difference but the duplicate assetIDs negatively impacts performance.

最佳化幾何圖形

如果您發現需要對各種裝置進行更多調整以提高幀率,則有用於在以下方面優化您的幾何圖形:

  • 將網格群組結合成單一素材。
  • 減少具有幾何複雜度的資產的多邊形數量。

擴展到這個第一個技術,您體驗中的每個獨特資產都代表對 GPU 的一個呼叫,在該 GPU 傳送信號給 GPU 呼叫資訊,以便 Roblox 引擎正確渲染該資產。您擁有的獨特資產越多,系統需要執行的呼叫就越多。因此,如果您有一組網格構成您體驗中的更大零件,您可以在第三方建模工具中將它們組合在一起,以減少多次繪製呼叫的需求。

為了說明這一點,最終樣本雷射標籤環境的父親將多個零件和網格結合,創建建建造外的大型塔。如果您將這些個別組件結合在一起,您可以將其變成單一資產,只有一個資產ID,並將抽取呼叫數從 8 減少到 1。然而,要注意的是,這種技巧會移除每個組件的視覺和物理特性的自由變更能力,例如其位置或材料。

例如,在下圖中,左塔仍然是多個資產在 Model 物件對象下,右塔是單一素材。您可以獨立地修改左塔的每個組件,但當您修改右塔時,例如將其顏色變更為黑色,它會影響整個對物件。這就是為什麼只考慮此技巧在環境開發結束時才重要,當你知道你可以在不影響你的美感目標的情況下提高性能時。

A front view of the two towers. The tower on the left includes multiple assets under a single model, while the tower on the right decreases the amount of assets by removing all texture objects.

擴展到第二種技術,帶有幾何複雜度的資產有更多的多邊形,意味著它們有更多的邊點需要引擎在渲染其視覺外觀時計算。這意味著具有較少複雜度和穩定性的資產在成像時花費較少的成本,導致在效能和記憶方面都有所改善。

刪除分層透明度

為了提供環境一種現實感,最終樣本雷射標籤環境包括許多具有不同透明度的網格,例如戶外空間的葉子、未來標誌或植物扶手上的玻璃。當攝影機查看前方或後方的多個半透明物體時,Roblox 引擎必須多次渲染覆蓋的像素來計算透明區域。此過程稱為高透明度撤消,它會對履約產生重大影響。

例如,考慮樣本環境中種植者的下列視圖。引擎必須將植物最接近攝影機的透明區域渲染到最接近戶外區域的植物中,相當於數以萬計的超載像素。為了緩解部分影響,重要的是要檢查您環境中所有半透明對象的布局,並確保沒有太多地方存在太多重疊層,特別是在大範圍的螢幕上。

A Rthro avatar facing a planter with multiple plants with transparency between the leaves.
A side view of the Rthro avatar facing a planter with multiple plants with transparency between the leaves, and example layers of overdrawn pixels are highlighted to show where there is overdrawn in the environment.

當您完成檢查所有內容以確保在所有裝置上最佳化時,您的體驗已準備好發布!