Unity Rendering Note1- Basic Rendering Process

  • Post category:筆記
  • Reading time:6 mins read
  • Post author:

最近在學習Unity的渲染,想要更了解整個畫面渲染的流程與機制,並整理成了筆記。主要是關於Frame Debugger這個工具的運用及Unity的畫面渲染的步驟。 Frame Debugger Frame Debugger能一步一步呈現渲染的過程,是用來檢查渲染過程的工具,當畫面結果不如預期時,用Frame Debugger來檢查非常方便。 路徑在Window->Analysis下。 開啟視窗後,要點擊Enable才能作用。 接下來,在Game視窗中就能看到變化了。拖動FrameDebugger視窗上方的拉桿,就能看到渲染的過程了(步驟數量一場景物件&設定而異)。 第一步:清空Buffer GPU中會有兩個跟顯示視窗尺寸相同的空間,稱為Buffer,負責呈現我們螢幕所看到的畫面。 兩個Buffer快速輪流切換,一個負責接收CPU傳入的資料,一個負責呈現畫面,讓畫面實時更新,不會卡頓。而切換一次的過程,就是所謂的一幀。 所以每幀都要把畫面清空,畫上下下幀的畫面(下一幀由另一個Buffer呈現)。 可以看到視窗是全黑的。 第二步:深度圖 再來會由頂點資訊畫出深度圖。 可以看到深度是整個畫面最先渲染出來的部分(Event下方有詳細的項目可以查看,這裡最重要的就是Shadow Depth)。 離攝影機越遠、就會越黑;反之則越白。由此初步構出場景。 第三步:Shadow Map 再來會由攝影機與場景內的光源來畫出Shadow Map。 Shadow Map是一張2D的Texture,用來記錄頂點受光的程度(0~1)。從光源出發,越先碰到的點越白、越晚碰到越黑,由此判斷頂點是否處在陰影中。 (這裡畫面可能會是全黑的,要移動一下攝影機或光源看看。) 補充一下,Project Setting中的Shadow Distance會影響這一步渲染的畫面(調高會渲染得較遠)。…

Continue ReadingUnity Rendering Note1- Basic Rendering Process