惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
IT之家
IT之家
S
SegmentFault 最新的问题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Threatpost
Cyberwarzone
Cyberwarzone
AWS News Blog
AWS News Blog
博客园 - 司徒正美
C
Cyber Attacks, Cyber Crime and Cyber Security
Latest news
Latest news
S
Secure Thoughts
S
Schneier on Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Cisco Blogs
Attack and Defense Labs
Attack and Defense Labs
S
Security Affairs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hacker News: Ask HN
Hacker News: Ask HN
大猫的无限游戏
大猫的无限游戏
博客园_首页
S
Security @ Cisco Blogs
C
CXSECURITY Database RSS Feed - CXSecurity.com
A
Arctic Wolf
AI
AI
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
Project Zero
Project Zero
P
Proofpoint News Feed
T
Tor Project blog
P
Privacy International News Feed
阮一峰的网络日志
阮一峰的网络日志
博客园 - 聂微东
月光博客
月光博客
Forbes - Security
Forbes - Security
量子位
I
Intezer
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
P
Proofpoint News Feed
T
The Exploit Database - CXSecurity.com
腾讯CDC
N
Netflix TechBlog - Medium
www.infosecurity-magazine.com
www.infosecurity-magazine.com
L
Lohrmann on Cybersecurity
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

博客园 - 华安

asp.netCore中给动态请求路径加客户端缓存 netCore中获取客户端真实的IP引起的思考 unity中的button中的onclick控制面板中四个参数的意思分别是什么 微信小程序开发中触发 onshow的几种特殊情况 SQL Server备份心得 MYSQL 备份数据库 微信与支付支付功能开发 微信小程序中页面配置下拉刷新 unity中 相机没有视锥效果线框了,如何打开 JSONPath表达式 C# 中的操作JSON类 JObject cookie中的 HttpOnly 、Secure、SameSite 解释 Spring-boot 中基于 IP 的限流和自动封禁 Filter 登录 用 HMAC-SHA256 实现 TwoFA(二重验证)的坑 利用Spring Boot的 filter 结合ConcurrentHashMap 实现“同一IP每分钟最多允许300个404请求,超出后禁用30分钟访问” pixi-filters中的BackdropBlurFilter使用注意事项 PixiJS中的 SplitBitmapText.chars中的每个 BitmapText的x值分析 legend隐藏不想显示的图例 spring-boot HttpServletResponse response.sendRedirect是会跳转到 http而不是https springboot获取post请求参数 Javascript如何判断是触摸屏还是PC端 JavaScript获取鼠标点一个元素,获取鼠标点击的元素内的位置 spring-boot中配置Mongodbd的问题小结 Rest Template中添加 PATCH请求。 CSS实现修改CheckBox样式 SpringBoot+Thyemleaf报错:Error resolving template Template might not exist or might not be accessible div display flex 如何出现横向滚动条
Unity 相机:正交 (Orthographic) vs 透视 (Perspective)
华安 · 2026-07-11 · via 博客园 - 华安

核心区别

 正交 (Orthographic)透视 (Perspective)
视觉效果 无近大远小,物体大小与距离无关 有近大远小,模拟人眼/真实相机
投影方式 平行投影 锥形投影
适用场景 2D 游戏、UI、建筑蓝图、像素风 3D 游戏、FPS、写实场景
深度感 无(或很弱)
性能 略优(计算简单) 略低

图示对比

透视 (Perspective)              正交 (Orthographic)
    📷                               📷
   /|\                             |===|
  / | \                            |   |
 /  |  \                           |   |    ← 视锥体是长方体
/   |   \                          |   |
🟦  🟦  🟦                         🟦🟦🟦
近大  中   远小                    一样大
 

Inspector 参数

参数正交透视
Projection Orthographic Perspective
Size 控制视口高度的一半(单位:世界单位)
Field of View (FOV) 控制视野角度(默认 60°)

代码切换

Camera cam = GetComponent<Camera>();

// 切换为正交
cam.orthographic = true;
cam.orthographicSize = 5f;  // 视口半高 = 5 世界单位

// 切换为透视
cam.orthographic = false;
cam.fieldOfView = 60f;

实际应用

场景推荐模式原因
横版 2D 游戏(如马里奥) 正交 角色大小不随距离变化
俯视角 2D(如星露谷物语) 正交 保持比例一致
UI 相机 正交 元素大小固定
3D FPS / 开放世界 透视 真实深度感
等距视角 3D(如暗黑破坏神) 正交 或 透视小 FOV 风格化选择
建筑可视化 正交 精确测量,无变形

一个细节:正交下的"深度"

正交相机没有透视缩短,但仍有 Z 轴(深度):

  • 用于 Sorting Layer 和 Order in Layer 决定渲染顺序

  • 用于 遮挡关系(前面的物体挡住后面的)

// 正交下,物体远近不影响大小,但影响遮挡
transform.position = new Vector3(x, y, z);  // z 决定前后层级

混合使用技巧

很多游戏会同时使用两个相机:

相机模式用途Depth
主相机 透视 渲染 3D 世界 0
UI 相机 正交 渲染血条、菜单 1
// UI 相机设置
Camera uiCam = ...;
uiCam.orthographic = true;
uiCam.clearFlags = CameraClearFlags.DepthOnly;  // 不清理颜色缓冲
uiCam.cullingMask = LayerMask.GetMask("UI");