【基礎】Unity中Camera組件知識點

一、投影模式 (Projection)

1. 透視模式 (Perspective)

  • 原理:模擬人眼,近大遠小(錐形體視錐)

  • 核心參數

    • Field of View (FOV):垂直視場角

      • 典型值:第一人稱 60°-90°,駕駛艙 30°-45°

      • 特效:FOV↑=視野變廣(魚眼效果),FOV↓=視野變窄(望遠鏡)

    • Clipping Planes

      • Near:近裁面(0.01-0.3,避免穿模)

      • Far:遠裁面(100-1000,過大影響性能)

2. 正交模式 (Orthographic)

  • 原理:無視距離,物體恒定大小(立方體視錐)

  • 核心參數

    • Size:視口高度的一半(單位:世界坐標)

      • 計算:若想顯示10單位高度區域 → Size=5

    • Clipping Planes同透視模式(控制Z軸范圍)

二、清除與背景 (Clear Flags & Background)

1. Clear Flags(幀緩存清除策略)

模式清除顏色清除深度典型用途
Skybox開放世界(需設置天空盒)
Solid Color純色背景(太空/抽象場景)
Depth Only×UI攝像機必選
Don't Clear××特殊效果(極少用)

2. Background

  • 僅當?Clear Flags = Solid Color?時生效

  • 建議用深灰色(RGB:30,30,30)替代純黑避免色偏

三、渲染過濾 (Culling Mask)

  • 本質:32位圖層掩碼(對應Layer面板的32個層)

  • 操作邏輯

  • // 代碼示例:只渲染UI層和Enemy層
    camera.cullingMask = (1 << LayerMask.NameToLayer("UI")) | (1 << LayerMask.NameToLayer("Enemy"));
  • 經典用例

    • 主攝像機:排除UI層

    • 小地圖攝像機:僅顯示Terrain層

    • 陰影攝像機:僅渲染Cast Shadows的物體

四、深度與渲染順序 (Depth)

  • 核心規則:深度值大的攝像機后渲染(覆蓋先渲染的畫面)

  • 多攝像機協作模板

Camera_Main(場景渲染):  Depth = 0  Culling Mask = Everything & ~UI  // 排除UI層  Clear Flags = Skybox  Camera_UI(界面渲染):  Depth = 1  Culling Mask = UI  Clear Flags = Depth Only  // 保留場景顏色,只清深度

五、視口控制 (Viewport Rect)

  • 歸一化坐標:[0,0]左下角 → [1,1]右上角

  • 參數詳解

    • X:視口左下角起始X坐標

    • Y:視口左下角起始Y坐標

    • W:視口寬度(0~1)

    • H:視口高度(0~1)

  • 應用場景

    • 雙人分屏:Player1: (0,0,0.5,1)?+?Player2: (0.5,0,0.5,1)

    • 小地圖:(0.7,0.7,0.3,0.3)

六、目標紋理 (Target Texture)

工作流
  1. 創建Render Texture:Assets > Create > Render Texture

  2. 綁定到Camera:拖入Camera組件的Target Texture槽

  3. 應用輸出:

    • 3D材質:賦給MeshRenderer的材質

    • UI顯示:RawImage組件的Texture參數

高級技巧
// 動態創建渲染紋理
RenderTexture rt = new RenderTexture(512, 512, 16); 
camera.targetTexture = rt;
// 完成后釋放資源
rt.Release(); 

七、坐標轉換(核心API)

1. 屏幕坐標 → 世界坐標

// 轉換到3D世界(z為攝像機前方距離)
Vector3 worldPos = camera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y,10) // z=10表示攝像機前方10單位
);

2. 世界坐標 → 屏幕坐標

// 用于UI跟隨3D物體
Vector3 screenPos = camera.WorldToScreenPoint(enemy.transform.position);
uiElement.transform.position = screenPos;

3. 射線檢測(物體拾取)

Ray ray = camera.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out RaycastHit hit, 100)) 
{Debug.Log("點擊了:" + hit.collider.name);
}

八、高級功能

1. 物理攝像機 (URP/HDRP)

  • Focal Length:焦距(毫米)→ 控制FOV

  • Sensor Size:膠片尺寸 → 影響視野比例

  • Aperture:光圈 → 控制景深強度

2. 攝像機堆棧 (URP專屬)

Base Camera(基礎場景)
? ↓
Overlay Camera 1(特效層)
? ↓
Overlay Camera 2(UI層)

  • 優勢:比傳統Depth排序更節省性能

3. 回調事件

void OnPreCull() { /* 裁剪前調用 */ } 
void OnPreRender() { /* 渲染前調用 */ }
void OnPostRender() { /* 渲染后調用 */ }

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82421.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82421.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82421.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PCA(K-L變換)人臉識別(python實現)

數據集分析 ORL數據集&#xff0c; 總共40個人&#xff0c;每個人拍攝10張人臉照片 照片格式為灰度圖像&#xff0c;尺寸112 * 92 特點&#xff1a; 圖像質量高&#xff0c;無需灰度運算、去噪等預處理 人臉已經位于圖像正中央&#xff0c;但部分圖像角度傾斜&#xff08;可…

【Git】View Submitted Updates——diff、show、log

在 Git 中查看更新的內容&#xff08;即工作區、暫存區或提交之間的差異&#xff09;是日常開發中的常見操作。以下是常用的命令和場景說明&#xff1a; 文章目錄 1、查看工作區與暫存區的差異2、查看提交歷史中的差異3、查看工作區與最新提交的差異4、查看兩個提交之間的差異5…

deepseek原理和項目實戰筆記2 -- deepseek核心架構

混合專家&#xff08;MoE&#xff09; ??混合專家&#xff08;Mixture of Experts, MoE&#xff09;?? 是一種機器學習模型架構&#xff0c;其核心思想是通過組合多個“專家”子模型&#xff08;通常為小型神經網絡&#xff09;來處理不同輸入&#xff0c;從而提高模型的容…

GPU層次結構(Nvidia和Apple M芯片,從硬件到pytorch)

這里寫目錄標題 0、驅動pytorch環境安裝驗證1.window環境2.Mac Apple M芯片環境 1、Nvidia顯卡驅動、CUDA、cuDNN關系匯總1**1. Nvidia顯卡驅動&#xff08;Graphics Driver&#xff09;****2. CUDA&#xff08;Compute Unified Device Architecture&#xff09;****3. cuDNN&a…

OpenWrt 搭建 samba 服務器的方法并解決 Windows 不允許訪問匿名服務器(0x80004005的錯誤)的方法

文章目錄 一、安裝所需要的軟件二、配置自動掛載三、配置 Samba 服務器四、配置 Samba 訪問用戶和密碼&#xff08;可選&#xff09;新建 Samba 專門的用戶添加無密碼的 Samba 賬戶使用root賬戶 五、解決 Windows 無法匿名訪問Samba方案一 配置無密碼的Samba賬戶并啟用匿名訪問…

CentOS 7鏡像源替換

更換為阿里云鏡像源&#xff08;適用于 CentOS 7&#xff09; 1、備份原來的 repo 文件&#xff1a; mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2、下載阿里云的 CentOS 7 repo 文件&#xff1a; curl -o /etc/yum.repos.d/CentOS-Base…

功能結構整理

C# Sxer Sxer.Base&#xff1a;基礎子功能 Sxer.Base.Debug&#xff1a;打印 Sxer.Utility&#xff1a;工具類 Sxer.CustomFunction&#xff1a;獨立功能點開發 Unity

云計算Linux Rocky day02(安裝Linux系統、設備表示方式、Linux基本操作)

云計算Linux Rocky day02&#xff08;安裝Linux系統、設備表示方式、Linux基本操作&#xff09; 目錄 云計算Linux Rocky day02&#xff08;安裝Linux系統、設備表示方式、Linux基本操作&#xff09;1、虛擬機VMware安裝Rocky2、Linux命令行3、Linux Rocky修改字體大小和背景顏…

【論文閱讀】《PEACE: Empowering Geologic Map Holistic Understanding with MLLMs》

目錄 前言一、研究背景與問題1-1、地質圖的重要性1-2、現有MLLMs的不足 二、 主要貢獻2-1、GeoMap-Bench&#xff1a;首個地質圖理解評估基準2-2、GeoMap-Agent&#xff1a;首個地質圖專用AI代理2-3、實驗驗證與性能優勢 三、關鍵技術3-1、 數據構建與預處理3-2、分層信息提取&…

計算機網絡通信技術與協議(八)----關于IS-IS的基礎概念

關于IS&#xff0d;IS最早是ISO為CLNP&#xff08;Connectionless Network Protocol&#xff0c;無連接網絡協議&#xff09;而設計的一種動態路由協議。 目錄 這里提到了CLNP這個概念&#xff0c;在這里解釋一下&#xff1a; CLNS由以下三個協議構成&#xff1a; 那么為什…

網絡原理1

協議 在網絡通信中&#xff0c;協議是非常重要的概念。協議是在網絡通信過程中的約定。發送方和接收方需要提前商量好數據的格式&#xff0c;才能確保正確進行溝通。 應用層協議 應用層&#xff0c;對應著應用程序&#xff0c;是跟我們程序員打交道最多的一層。調用操作系統…

【運維】統信UOS操作系統aarch64自制OpenSSH 9.6p1 rpm包(含ssh-copy-id命令)修復漏洞

為修復如下OpenSSH漏洞&#xff0c;openssh從8.2升級至9.6&#xff0c;然而并未找到統信9.6的rpm源&#xff0c;所以自己動手制作&#xff0c;折騰了一天&#xff0c;在此記錄一下 準備工作 檢查版本 cat /etc/os-releaseuname -a如圖當前環境為aarch64架構&#xff0c;在其…

CI/CD 持續集成、持續交付、持續部署

CI/CD 是 持續集成&#xff08;Continuous Integration&#xff09; 和 持續交付/持續部署&#xff08;Continuous Delivery/Deployment&#xff09; 的縮寫&#xff0c;代表現代軟件開發中通過自動化流程快速、可靠地構建、測試和發布代碼的實踐。其核心目標是 減少人工干預、…

Spring Boot 應用中實現配置文件敏感信息加密解密方案

Spring Boot 應用中實現配置文件敏感信息加密解密方案 背景與挑戰 &#x1f6a9;一、設計目標 &#x1f3af;二、整體啟動流程 &#x1f504;三、方案實現詳解 ??3.1 配置解密入口&#xff1a;EnvironmentPostProcessor3.2 通用解密工具類&#xff1a;EncryptionTool 四、快速…

OpenCV CUDA模塊特征檢測------角點檢測的接口createMinEigenValCorner()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 該函數創建一個 基于最小特征值&#xff08;Minimum Eigenvalue&#xff09;的角點響應計算對象&#xff0c;這是另一種經典的角點檢測方法&…

性能優化 - 理論篇:CPU、內存、I/O診斷手段

文章目錄 Pre引言1. CPU 性能瓶頸1.1 top 命令 —— 多維度 CPU 使用率指標1.2 負載&#xff08;load&#xff09;——任務排隊情況1.3 vmstat 命令 —— CPU 繁忙與等待 2. 內存性能瓶頸2.1 操作系統層面的內存分布2.2 top 命令 —— VIRT / RES / SHR 三個關鍵列2.3 CPU 緩存…

GPIO的內部結構與功能解析

一、GPIO總體結構 總體構成 1.APB2(外設總線) APB2總線是微控制器內部連接CPU與外設&#xff08;如GPIO&#xff09;的總線&#xff0c;負責CPU對GPIO寄存器的讀寫訪問&#xff0c;支持低速外設通信 2.寄存器 控制GPIO的配置&#xff08;輸入/輸出模式、上拉/下拉等&#x…

汽車總線分析總結(CAN、LIN、FlexRay、MOST、車載以太網)

目錄 一、汽車總線技術概述 二、主流汽車總線技術對比分析 1. CAN總線&#xff08;Controller Area Network&#xff09; 2. LIN總線&#xff08;Local Interconnect Network&#xff09; 3. FlexRay總線 4. MOST總線&#xff08;Media Oriented Systems Transport&#x…

WordPress 6.5版本帶來的新功能

WordPress 6.5正式上線了&#xff01;WordPress團隊再一次為我們帶來了許多新的改進。在全球開發者的共同努力下&#xff0c;WordPress推出了許多新的功能&#xff0c;本文將對其進行詳細總結。 Hostease的虛擬主機現已支持一鍵安裝最新版本的WordPress。對于想要體驗WordPres…

【vue+ts】找不到模塊“./App.vue”或其相應的類型聲明

報錯&#xff1a;找不到模塊“./App.vue”或其相應的類型聲明。 原因&#xff1a;typescript只能理解.ts文件&#xff0c;無法理解.vue文件。 解決&#xff1a;在src/env.d.ts下添加&#xff1a; /// <reference types"vite/client" /> // 三斜線引用告訴編譯…