复刻死亡之书自动设置摄像机景深

git地址:https://gitee.com/asiworld/NoteBook_unity.git

bilibili视频地址:https://space.bilibili.com/15766978

CSDN主页:https://blog.csdn.net/JianShengShuaiest

简述

unity 官方发布了一个demo叫做<死亡之书>,场景是一个森林,里面有一个特别酷的效果,叫做自动对焦,意思就是当我很近的观察一个物体的时候会造成很浅的景深,也就是背景虚化很大,只有对焦的位置上的物体才是清晰的,

我也做了一个类似的效果,其中主要用到的插件就是官方提供的PostProcessing,现在看一下我复刻的这个功能的效果

可以看到场景中只有一个红色的cube是实景,其他的都是虚化的,

死亡之书导入说明

导入死亡之书的时候会报错,解决方法是吧[Min]修改一个[UnityEngine.Min]

复刻步骤

添加基本脚本并设置

  1. 引入PostProcessing

  2. .摄像机修改layer为PostProcessing

  3. 在摄像机上面加入PostProcessLayer

  4. 抗锯齿改为TAA

  5. PostProcessVolume

  6. new 一个profile

  7. 添加一个效果 Add Effect Depth of Field

  8. Depth of Field的所有效果都勾选上

  9. 添加一个Collider 到 PostProcessVolume的相同的gameobject或者 勾选PostProcessVolume 的 Is Global选项

  10. 修改上面四个值就能得到如图效果

自动对焦物体

  1. 思路

    我想的是在一个环境中 有很多竖条状的模型,我们相机在其中旋转,屏幕中间为聚焦模型,摄像机在中间旋转,可以看到聚焦的效果

  2. 摆放场景

    按照喜欢加入一点灯光会有自己的效果

  3. 加入脚本

    using DG.Tweening;using UnityEngine;
    using UnityEngine.Rendering.PostProcessing;public class SetFocusDistance : MonoBehaviour
    {private Ray ray;private RaycastHit hit;private Camera m_camera;private PostProcessVolume m_PostProcessVolume;public DepthOfField m_DepthOfField;public Vector3 m_v3Rotation;public float smooth = 5.0F;public MeshRenderer m_meshRenderer;// Start is called before the first frame updatevoid Start(){m_camera = GetComponent<Camera>();m_PostProcessVolume = GetComponent<PostProcessVolume>();m_DepthOfField = m_PostProcessVolume.profile.GetSetting<DepthOfField>();transform.DORotate(m_v3Rotation, 1.0f).SetLoops(-1, LoopType.Incremental).SetEase(Ease.Linear);}// Update is called once per framevoid Update(){ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2));if (Physics.Raycast(ray, out hit))//射线发出并碰撞到外壳,那么手臂就应该朝向碰撞点{m_DepthOfField.aperture.value = Mathf.Lerp(m_DepthOfField.focusDistance.value,1.5f,Time.deltaTime * smooth);Debug.DrawLine(transform.position, hit.point);m_DepthOfField.focusDistance.value = Mathf.Lerp(m_DepthOfField.focusDistance.value,hit.distance + m_camera.nearClipPlane,Time.deltaTime * smooth);m_meshRenderer = hit.transform.GetComponent<MeshRenderer>();if (!DOTween.IsTweening(m_meshRenderer.material)){m_meshRenderer.material.DOColor(Color.red, 1.0f).SetLoops(2, LoopType.Yoyo);}}else{m_DepthOfField.aperture.value = Mathf.Lerp(m_DepthOfField.focusDistance.value, 20,Time.deltaTime * smooth);m_DepthOfField.focusDistance.value = Mathf.Lerp(m_DepthOfField.focusDistance.value,20.0f,Time.deltaTime * smooth);}}
    }

    修改参数

    就可以得到一个很炫酷的效果了

扩展

原理就是相机的一些光圈,对焦,像距等知识,其实可以扩展成一个拍照软件,或者加入到游戏中的关注敌人的概念,下面我就自己做了一个关于拍照的效果.

【unity3d】复刻死亡之书自动设置摄像机景深相关推荐

  1. [技美CG]Unity3D复刻UnityShader 之 ShaderToy - Bubbles

    Unity3D复刻UnityShader 之 ShaderToy - Bubbles 背景: 官方地址/参考资料: ShaderToy-Bubbles原始代码: Unity复刻开始 核心显示类: 核心 ...

  2. [unity3d][复刻]复刻刺客信条鹰眼效果

    简介 今天看到国外的一个大佬做的一个魔方刺客信条鹰眼的效果,我看着不错,就学着做了一下,秉着取其精华去其糟粕的原则进行了自己的复刻,并介绍一下我的制作步骤.大佬的视频地址我真的已经不知道了,所以也就不 ...

  3. 表格外粗内细怎么设置_金游艇复刻机芯-N厂灰游艇价格 | 复刻表评测

    GM厂劳力游艇名仕型系列,官方2019年度机芯搭配全线更新为cal. 3235机芯,同时,在表盘六点位上有劳力皇冠的防伪LOGO.GM厂经历一年,在3135的基础上开发一体出3235机芯,功能与结构等 ...

  4. tableau 倒序都倒了_Tableau优秀作品拆解复刻01-是时候终结瘘管病了

    写在最前面:这个复刻系列是学习tableau官网库中的优秀作品.学习他们亮眼图表的制作细节,仪表板的排版,颜色的搭配以及交互. tableau库的链接:优秀作品都在这里展示. 库​public.tab ...

  5. 苹果ppt_我用PPT复刻了苹果公司的宣传广告,这是对PPT平滑功能的极致应用!

    微信扫码观看全套Excel.Word.PPT视频 在微软推出的office2019和office365版本的PowerPoint中,新增了一个非常强大的功能--[平滑].作者今天就利用PPT的平滑功能 ...

  6. MATLAB | 绘图复刻(二) | 折线图+误差棒+柱状图+散点抖动+灰色背景+图片叠加

    看到gzh R语言ggplot2科研绘图发布了一篇绘图复刻类文章,复刻了: Nature(IF=49.962)文章(Gut microbiota modulates weight gain in mi ...

  7. 完美复刻小米路由器Misstar Tools(MT工具箱)BY:蜜罐版

    文章目录 完美复刻小米路由器Misstar Tools(MT工具箱)BY:蜜罐版 界面展示 支持硬件 刷开发版ROM包 安装并开启SSH工具 使用Putty连接小米路由器 安装MT工具箱 蜜罐版 完美 ...

  8. 10年代码经验程序员UP主复刻“阴间”超级马里奥,获赞27万,马里奥:我头呢?

    本文转载自 大数据文摘 <超级马里奥兄弟>是很多人童年的回忆,对B站up主"M木糖M"来说也不例外. 为了纪念自己的童年,我们这位代码经验丰富的up主决定自己动手复刻一 ...

  9. 试着使用SDL2复刻曹操传(一)

    对古董老游戏的复刻,使用SDL再合适不过了,废话不多说,新建工程然后开搞! 对于IDE,本人选择jetbrains系列的CLion: 游戏程序总框架: 根据上图编写main.c文件: #define ...

  10. Jetson nano部署Yolov5 ——从烧录到运行 1:1复刻全过程

    前言 因为一次竞赛接触了jetson nano和yolov5,网上的资料大多重复也有许多的坑,在配置过程中摸爬滚打了好几天,出坑后决定写下这份教程供大家参考 事先声明,这篇文章的许多内容本身并不是原创 ...

最新文章

  1. three.js绘制过程(二)
  2. mysql %type_mysql 存储过程 %type
  3. Linux服务器网页显示乱码
  4. 无法创建文件系统以及无法创建PV时怎么办?
  5. 存储引擎之必知必会 -- 检查点机制
  6. 美团面试动态规划——整数拆分
  7. 580分左右的计算机院校,2021年高考580分可以上什么大学 580分左右的院校
  8. C#中模态对话框释放问题
  9. 云头条 |华为云发布全新Slogan;AWS推出DocumentDB;FRB信号刷屏
  10. Kubernetes 小白学习笔记(13)--k8s集群路线-init流程
  11. CAPL学习之路-关键字
  12. 通达信版弘历软件指标_弘历主图指标详解 通达信指标
  13. python画多边形太阳花
  14. 转载:如果我的生命里可以遇到一个这样的MM.夫复何求!
  15. Uncaught Exception: Error [ERR REQUIRE ESM]: requireO of ES Modul……
  16. 第二阶段-面向对象(四)
  17. 虚拟光驱文件bin/cue到iso的转换
  18. 赠书福利|一本书是写给美国人看的书,告诉我们,美国科技为什么领先?
  19. 编码:8421 BCD码(彻底弄懂+6是什么意思,为什么要加6)
  20. matlab最基础教程(六):编程习惯

热门文章

  1. 树莓派4+神经计算棒二代开发-环境搭建
  2. 防水穿墙套管在建筑外墙管道需设置柔性连接
  3. 阿里如何面对人工智能技术发展的三大挑战
  4. C语言课程设计——电影院订票系统
  5. js室内地图开发_我开发的开源 JS 地图引擎 maptalks.js, 请大家不吝赐教!
  6. 项目之间Cookie的共享
  7. PPT模板文字环绕效果怎么设置?
  8. matlab2014的m文件画波形,matlab绘制波形图
  9. 提升网站收录排名优化的软件
  10. PyTorch学习之误差反向传播