Unity Camera -- (3)控制相机能看到的东西

news2024/9/22 11:26:43

使用剪裁平面(Clipping Planes)定义相机可视范围

        Clipping Planes定义了相机所能看到的场景范围。在有些时候,限制相机所能看到的范围是出于风格上的考量,但编辑Clipping Planes的主要目的是为了优化性能。相机所需要渲染的东西越少,程序的负载就越低。

        相机的剪裁平面有两个参数值:near(近平面)和far(远平面)。near定义了离相机最近且还能被相机所渲染的平面所处位置;far则是相反的一个平面。

        对于正交投影相机来说,远近平面呈金字塔形状,可以在场景视图中选中了相机后看到:

         对于正交投影相机来说,这个平面是一个矩形:

        接下来我们调整一下clipping planes的参数(正交投影类型相机):

        1. Hierarchy中选中Main Camera,缩放一下场景视图以便能观察到相机整体远近平面的情况。

        2. 在Main Camera的Inspector中,修改一下Clipping Planes里的Far参数,从1000改为100,从100改为10,然后从10改为1。观察一下场景视图中相机的远近平面线框的情况以及相机预览窗口的变化。

        我们可以看到,随着Far的减小,相机所能看到的东西也跟着减少。原来能够被看到的东西,看不见之后,会用背景做填充(一般是天空盒背景)。

        3. 在场景视图中,我们使用移动工具,让相机沿着z轴向前平移。

             随着相机的向前平移,我们可以看到之前不可见的物体,到达了Far平面范围内后,会突然跳出来。虽然这种效果可以被刻意用来做一些风格化的需求,但一般来说,在游戏或实时应用要尽量避免。一般我们会设置一个较大的Far值,让用户感受不到这种物体突然消失或突然出现的现象。这里我们将Far设置回默认的1000。

        4. 近平面参数Near的意思和Far是类似的,我们也可以调整一下这个参数。但有一个常见的问题是,当角色或某个游戏物体的模型有部分处于近平面外的时候,我们可能会看到物体内部的mesh。

        我们在一些3D游戏中可能会看到这种场景,要解决这种问题,最好是能保证相机和物体保持一段安全距离, 如果相机是固定的,也可以调整一下Near的值。

使用culling masks来隐藏或显示物体

        如果有一个物体处于相机的Near和Far平面之内,但我们又要隐藏或显示它时该怎么做呢?解决这个问题有多种方法,对于相机来说,有一个culling masks可以用来实现这个功能。

        1. 场景视图中,选中红色的胶囊体,按F聚焦。

        2. 在胶囊体的Inspector中,选择Layer -> Add Layer, 然后将User Layer6设置为Culled。

        3. 重新在场景视图中选择胶囊体,然后在Inspector中将Culled这个layer设置给胶囊体。

         4.  选择Main Camera,定位到Inspector中,Camera组件中Rendering部分里的Culling Mask选项, 将Culled禁用掉。

         在场景视图中,胶囊体还在,但是从相机预览窗口中可以看到,胶囊体消失了。

修改背景类型

        默认情况下,场景会使用一个默认的天空盒作为背景。这个天空盒和Directional Light(也是创建场景时默认的平行光源)是绑定的。这两个物体一起为场景的环境光(ambient light)起到了贡献。虽然天空盒及相关光照是由天空盒的shader和光照属性所决定的,但camera可以管理在场景中天空盒是否可见。

        1.调整相机视角,确保相机能够看到天空盒。

        2. 在Inspector中,找到Camera组件的Enviroment部分

        3. 将Background Type从Skybox修改为Solid Color

        4. 此时我们对比看场景视图和相机预览视图,会发现场景中,天空盒仍然存在,相机视图中显示的天空是一片蓝色。如果场景中有多个相机,每个相机都可以有不同的背景类型设置,这一点可以用来实现一些特殊的效果。

        5. 点击Background的颜色条,将颜色修改为其他颜色试试,比如绿色。

        需要注意的一点是,背景类型选择为Solid Color,其颜色并不会对场景的光照产生影响,这和Skybox是不同的。Solid Color只是简单的让相机停止渲染天空盒并且用一个我们选择的颜色替换掉。即便天空盒在相机中并不可见,任何对天空盒的修改,仍然会在环境中可见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/465304.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是低码平台?低代码平台能解决什么问题?

低代码平台是近年来日益流行的一种新型软件开发工具。它们提供了一种更简单、更快速、更具成本效益的方式来构建和部署定制软件应用程序。在本文中,我们将探讨什么是低码平台,它们可以解决什么问题,以及它们为什么变得如此流行。 一、什么是低…

第十六章 命令模式

文章目录 前言一、命令模式解决智能生活项目设计思想完整代码Command 所有命令的父接口(绑定命令都需要实现)LightReceiver 命令接受者LightOnCommand / LightOffCommand 将具体的命令进行绑定空命令命令调用者Clint 测试 添加新的命令,非常简…

【信息安全案例】——身份与访问安全(学习笔记)

📖 前言:一位用户对计算机信息资源的访问活动中,首先必须拥有身份标识,通过该标识鉴别该用户的身份,进一步地,用户还应当具有执行所请求动作的必要权限,系统会验证并控制其能否执行对资源试图完…

Human Pose Regression with Residual Log-likelihood Estimation

Abstract 通过似然热图对输出分布进行建模的基于热图的方法在人体姿态估计领域占据主导地位。相比之下,基于回归的方法更有效,但效果较差。 在这项工作中,我们探索了最大似然估计(MLE),以开发一种高效有…

基于朴素贝叶斯的垃圾邮件分类系统项目开发教程

项目资源下载 基于朴素贝叶斯的垃圾邮件分类系统源码 项目简介 本项目基于朴素贝叶斯算法来解决垃圾邮件分类问题,并使用混淆矩阵进行了验证,得到了非常好的准确率和召回率(96%和97%)。此外还开发了一个可视化的垃圾邮件分类系统…

前端通过ajax上传文件到七牛云

1. 从服务端获取七牛云上传的token,生成token参考官方文档https://developer.qiniu.com/kodo/1208/upload-token 2. 在七牛云文档查找上传的存储区域 https://developer.qiniu.com/kodo/1671/region-endpoint-fq 在七牛云控制台找到空间管理的cdn加速域名https://portal.qiniu…

【Thinkphp 6】框架基础知识

文章目录 环境搭建框架基础规则继承引入单应用模式多应用模式自定义路由调试器空控制器 视图模板引擎安装渲染模板facade代理变量传递view.php语法查看编译后的文件默认值数组按键取值md5加密 请求request信息参数接收生成URL 文件上传上传及验证 验证功能验证器表单令牌 中间件…

android不可不知调试技巧

目录 1、条件断点 2、评估表达式(Evaluate Expression) 3、日志断点 4、方法断点 5、异常断点 6、Field WatchPoint 1、条件断点 假设我们列表循环的某个元素时候才暂停,就用这种方式。具体方式在循环列表打断点,对着断点右…

Nginx简介和快速入门

前言: 在一个小型的个人博客网站中,因为没什么流量,并发量小,一般可以直接在一个服务器上的tomcat中直接运行jar包.由tomcat直接响应给客户。 到后面之后随着流量的增大,一台服务器的资源不够用了,此时就需要再多开一…

浏览器渲染页面的原理及流程

1、渲染引擎首先通过网络获得所请求文档的内容 2、解析HTML文件,构建 DOM Tree 3、解析CSS,构建 CSSOM Tree(CSS规则树) 4、将 DOM Tree 和 CSSOM Tree合并,构建Render tree(渲染树) 5、reflow(重排、回流):根据Render tree进行节…

功率器件的仿真评估

功率器件的仿真评估 1.功率器件仿真评估概述2.IGBT温升模型整理3.Matlab仿真计算4.仿真评估报告 1.功率器件仿真评估概述 功率器件的仿真评估共五个步骤: a.根据IGBT数据手册整理中热阻参数、开关损耗参数温升模型; b.带入到Matlab中仿真堵转、中速运行…

一键免费部署你的私人 ChatGPT 网页应用

主要功能 在 1 分钟内使用 Vercel (https://vercel.com/)免费一键部署精心设计的 UI,响应式设计,支持深色模式极快的首屏加载速度(~100kb)海量的内置 prompt 列表,来自中文和英文自动压缩上下文…

CUDA下载,以及下载GPU版本的pytorch

一、下载anaconda 因为这步我之前就下好了,主要参考这个链接:史上最全最详细的Anaconda安装教程 二、下载CUDA 1.首先观察自己需要什么版本的CUDA,以及是否安装过CUDA 先cmd,输入命令 nvidia-smi结果如下,所以我们…

论文笔记:Hidden Markov Map MatchingThrough Noise and Sparseness

sigspatial 2009 1 方法介绍 1.0great circle和route距离 1.1 和ST-matching的比较 1.1.1 转移概率和观测概率 和同一年的ST-matching很类似,也是使用HMM来进行路网匹配论文笔记:Map-Matching for low-sampling-rate GPS trajectories(ST…

【Redis7】Spring Boot集成Redis(重点:集成RedisTemplate)

【大家好,我是爱干饭的猿,本文重点介绍Redis7 Spring Boot集成Redis,包括Jedis、lettuce、集成RedisTemplate、集群时一台master宕机,java报错的情况分析。 后续会继续分享Redis7和其他重要知识点总结,如果喜欢这篇文…

linux-02-软件安装-centos7配置jdk、tomcat、mysql、lrzsz、项目部署(Git、Maven)、shell脚本自动从git仓库获取项目更新★

文章目录 Linux-Day02课程内容1. 软件安装1.1 软件安装方式1.2 安装JDKshell脚本里写 cd命令不生效 1.3 安装Tomcat1.3.1 Tomcat安装好多方便的自定义命令:1.3.2 Tomcat进程查看1.3.3 防火墙操作1.3.4 停止Tomcat 1.4 安装MySQL1.4.1 MySQL安装1.4.2 MySQL启动1.4.3 MySQL登录1…

几何算法——7.Blending(倒角)的调研、设计及算法

几何算法——7.Blending(倒角)的调研、设计及算法 1 Parasolid的Blending1.1 关于Parasolid的BlendSurface1.2 Edge Blending1.2.1 Rolling-ball blends1.2.2 Variable rolling-ball blends1.2.3 Chamfers1.2.3.1 face offset chamfers1.2.3.2 apex-rang…

自学黑客/网络渗透,一般人我劝你还是算了

写在开篇 笔者本人 17 年就读于一所普通的本科学校,20 年 6 月在三年经验的时候顺利通过校招实习面试进入大厂,现就职于某大厂安全实验室。 我为啥说自学黑客,一般人我还是劝你算了吧。因为我就是那个不一般的人。 首先我谈下对黑客&…

AMBA总线协议AXI——学习笔记

文章目录 前言一、AXI(Advanced eXtensible Interface)1、定义2、信号2.1 全局信号2.2 写数据通路2.3 写地址通道2.4 写回复通道2.5 读数据通道2.6 读地址通道2.7 低功耗接口信号 3、AXI-Lite协议特点4、读写时序图4.1 读burst4.2 读重叠burst4.3 写burs…

Baklib母公司探码科技荣获甲子光年:2023中国AI数据平台创新企业

4月25日,由中国科技产业智库「甲子光年」主办、上海市信息服务业行业协会支持的「共赴山海2023甲子引力X智能新世代」峰会在上海召开。峰会上为了表彰在AI领域中取得卓越成就的公司,甲子光年在峰会现场颁布了星辰20:创新企业,表彰…