回覆列表
  • 1 # 使用者5101274256492

    1 maincamera 只是一個打了 tag的camera, 可以沒有 ,這樣 用到camera.main的程式碼就會失敗例如xffect的程式碼2:setTargetBuffers 將 rendertexture的buffer設定為相機的渲染物件, 因此要獲取buffer資料,需要將 對應的rendertexture 設定為active, 接著呼叫texture2d 的readpixels可以讀取 colorbuffer裡面的資料 到 texture2d裡面, 參考 GetPixels of RenderTexture如果要讀取 depthbuffer裡面的資料 參考 Writing depth to render target參考unity builtin shader 裡面關於depthtexture 的shader以及CGInclude 裡面的標頭檔案,檢視如何獲得depthbuffer的資料3:Graphics 是unity的底層API,Camera是Unity的上層API,Camera渲染的是相機自身看到的場景中的物體,而Graphics 直接操作的是 rendertexture,mesh,以及紋理texture,以及GPU生成的幾何體這些物件的處理和渲染, 兩個操作的物件是不同的,兩個API 所處的 遊戲引擎 層級也是不同的。4: camera.render 用於手動精確控制 渲染順序,Unity - Scripting API: Camera.Render例如想要對遊戲中玩家物件渲染兩次,第一次用正常Camera 渲染玩家模型,LateUpdate 函數里面 第二次用相同位置的另外一個camera,手動呼叫render 再render一邊模型。例如想給主角加一個陰影,第二遍可以用replace shader渲染一下人物陰影,接著調整一下陰影的rendertexture的alpha值,接著用於地面混合一下,這樣就可以製作出 動態實時 半透明陰影了。只要disable掉 camera元件 就可以 關閉主動渲染。

  • 中秋節和大豐收的關聯?
  • 武松與林沖的組合哪兩個人能破?