簡體   English   中英

有沒有一種方法可以確保一個對象始終顯示在另一個對象的上方而沒有重疊?

[英]Is there a way to ensure that an object is always displayed on top of another with no overlaps?

如下圖所示,我在化身上的衣物有些問題

圖片1

大多數人會建議我在建模軟件中簡單地將褲子拉離身體,直到將其與其他衣物組合在一起為止

圖片2

我現在可以把襯衫從褲子上拉開,但是我有很多不同的衣服,要檢查/調整它們似乎並不可行。

嘗試並應用某種分層系統會更好。

誰能為我提供有關如何實現這樣的系統或如何實現目標的建議?

我已經研究過嘗試使用着色器執行此操作,但是運氣不佳,無法達到我想要獲得的結果(但是,我不是Shaderlab / CG專家)

我還嘗試過將化身分成不同的部分,並用衣服網代替它們,但這仍然留下了衣服彼此可見的問題。

我希望最好具有某種系統,在該系統中,我可以對每件衣服進行分層,以便無論它們以正確的順序彼此重疊顯示而沒有任何重疊。

如果您真的想使用分層,則可以使用實際為此目的制作的Unity 渲染層

  1. 轉到圖層->編輯圖層

    在此處輸入圖片說明

  2. 添加所需的圖層(順序無關緊要)

    在此處輸入圖片說明

  3. 將圖層分配給您要由全角質攝像機渲染的對象。

    在此處輸入圖片說明

    作為一個例子,我加入trousers cube與層trousers ,一個pillover cube與層pulloverOnTop cube與層OnTop

  4. 創建一個新的Empty CameraParent並調用它,例如CameraParent 這將包含您所有的相機,並且您應該移動此相機,而不要移動到目前為止的相機。

    如果是VR / AR應用,則可能需要將Camera組件附加到該父對象,使其成為主攝像機,但不渲染任何東西

    在此處輸入圖片說明

  5. 創建例如4個子對象,並為其提供一個Camera組件。 還要確保只有一台攝像機標記為MainCamera並且只有一台攝像機在場景中具有AudioListener 我用4台攝像機為例具有TrousersCamera一個PulloverCamera一個OnTopCameraBackgroundCamera

  6. 現在進行渲染設置

    • BackgroundCamera
      在這里,您可以像以前一樣渲染其他任何東西

      • ClearFlags :例如SkyBox
      • Culling Mask :選擇 trouserspulloverOnTop 之外的所有圖層
      • Depth-1
    • TrousersCamera
      用於渲染褲子(在其他任何東西之上)

      • ClearFlags :僅深度
      • Culling Mask選擇trousers
      • Depth0 (您會看到一個較大的值呈現在一個較低的值之上)
    • PulloverCamera
      用於在褲子頂部繪制套頭衫

      • ClearFlags :僅深度
      • Culling Mask選擇pullover
      • Depth1
    • OnTopCamera
      用於在一切之上渲染其他東西

      • ClearFlags :僅深度
      • Culling Mask選擇 OnTop
      • Depth2

    在此處輸入圖片說明

結果,您可以看到盡管紅色多維數據集( OnTop cube )確實遠遠落后於其余部分,而藍色多維數據集( Pullover cube )居於中間,但紅色Pullover cube將始終呈現在頂部,而不是藍色,而呈現在棕色之上( trousers cube ),最后是背景。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM