Unity(URP渲染管线)的后处理、动画制作、假造相机(Virtual Camera)

[复制链接]
发表于 2025-8-22 00:55:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、URP渲染管线

渲染管线是一系列渲染利用的聚集,Unity提供了内置渲染管线(Built-In)和可编程渲染管线(SRP)两类渲染管线。内置渲染管线是Unity的默认渲染管线,其自定义选项有限。而可编程渲染管线可以通过脚本代码定制化管线,答应用户更多地控制渲染流程。搭建一个完整的渲染管线工作量巨大,为了简化用户的自定义开发流程,Unity提供了URP和HDRP两种SRP的模板。三种管线均可在不同平台上进行开发,实在用平台对好比下:

URP与内置管线对比


URP概述

Universal Render Pipeline (URP,通用渲染管线)是Unity推出的轻量级、高性能渲染管线解决方案,实用于移动平台、PC和主机等多种平台。
URP核心特点



  • 跨平台支持:针对不同硬件自动优化
  • 模块化计划:可扩展的渲染功能
  • 性能优化:相比内置渲染管线有更好的性能表现
  • Shader兼容性:利用Shader Graph创建可视化Shader
URP核心组件

1. Shader(着色器):定义物体外观,URP有内置Shader,也可用Shader Graph自定义。
2. Renderer(渲染器):控制物体渲染方式,支持前向和延迟渲染模式。
3. Render Pipeline Asset(渲染管线资源):配置全局渲染设置,如光照、阴影、后处理。
4. Light(光源):提供光照效果,支持多种类型,可配置阴影。
5. Material(材质):定义物体外貌属性,如颜色、纹理,与Shader配合。
6. Camera(摄像机):定义视角和渲染范围,可设置后处理效果。
7. Post-Processing(后处理):加强图像效果,如景深、抗锯齿、色调映射。
8. Scriptable Render Feature(可编程渲染特性):通过脚本扩展渲染功能。
9. Renderer Feature(渲染特性):定义特定渲染任务,如阴影渲染。
10. Lightmap(光照贴图):存储静态光照信息,进步渲染性能。
二、后处理

利用的组件:volum

属性:
1. Tonemapping(色调映射):
这个属性用来调整图像的亮度和对比度。你可以想象它就像是一个滤镜,可以让图像看起来更亮或者更暗,颜色更鲜艳或者更柔和。

2. Color Adjustments(颜色调整):
 这个属性用来改变图像的颜色。你可以调整对比度、饱和度等,让颜色看起来更丰富或者更平淡。好比,增加饱和度可以让颜色更鲜艳,减少饱和度则会让颜色看起来更灰暗。

3. Bloom(泛光):
 泛光是用来模拟光线散射的效果,好比当你看一个明亮的光源时,光线会在物体边缘产生一种含糊的光晕。这个属性可以加强这种效果,让图像看起来更真实或者更有艺术感。
1)Lens Dirt(镜头污垢):这个属性模拟的是镜头上的污垢或划痕对图像的影响。你可以添加一些纹理,让图像看起来像是通过一个脏镜头拍摄的,增加一些真实感或者特定的视觉效果。

4. Vignette(暗角):
角效果是指图像的四个角落变暗,而中心部分保持明亮。这种效果常用于电影和摄影中,可以引导观众的视线会集在图像的中央。

三、脚色控制器

代码:
  1. private void Update() {
  2.     Vector2 inputVector = new Vector2(0, 0);
  3.     if (Input.GetKey(KeyCode.W)) {
  4.         inputVector.y = +1;
  5.     }
  6.     if (Input.GetKey(KeyCode.S)) {
  7.         inputVector.y = -1;
  8.     }
  9.     if (Input.GetKey(KeyCode.A)) {
  10.         inputVector.x = -1;
  11.     }
  12.     if (Input.GetKey(KeyCode.D)) {
  13.         inputVector.x = +1;
  14.     }
  15.     inputVector = inputVector.normalized;
  16.     //创建一个三维向量moveDir,它的X和Z分量由inputVector决定,Y分量始终为0(因为我们只在水平面上移动)
  17.     Vector3 moveDir =new Vector3(inputVector.x,0f,inputVector.y);
  18. //根据moveDir向量、移动速度moveSpeed和时间间隔Time.deltaTime来更新游戏对象的位置.Time.deltaTime确保移动速度不受帧率的影响
  19.     transform.position += moveDir * moveSpeed * Time.deltaTime;
  20.     ////Slerp球面线性插值:两个向量之间进行平滑过渡的方法,特别适用于处理方向和旋转。
  21. //拓展:Lerp线性插值:适用于不需要考虑方向的插值,如颜色渐变或非方向性属性的平滑过渡。
  22.     transform.forward = Vector3.Slerp(transform.forward, moveDir, Time.deltaTime);
  23. }
复制代码
四、动画制作Animations


Animations(动画剪辑)

 Animation  是单个动画的文件,它包含了一系列的图片(帧),这些图片快速播放时,就形成了动画效果。你可以把它想象成动画片里的一帧帧一帧的画。


  • 动画剪辑:一个  Animation  文件就是一个动画剪辑,它定义了脚色或物体的一系列动作。
  • 动画文件:通常是  .anim  格式的文件,里面包含了脚色的一系列动作。
Animator(动画控制器)

Animator  是一个组件,它就像是一个动画的大脑。它控制着游戏对象怎样根据玩家的利用或者游戏逻辑来播放不同的动画。好比,一个脚色走路、跑步、跳跃或者攻击时,  Animator  会决定播放哪个动画。


  • 动画状态:  Animator  里面有很多状态,每个状态对应一个动画,好比Idle(站立不动)、Walk(走路)、Jump(跳跃)等。
  • 转换:  Animator  还定义了状态之间的转换规则,好比脚色从走路到站立不动,或者从站立到跑步。
五、假造相机(Virtual Camera)

假造相机(Virtual Camera)是Unity中的一个高级相机体系,它用来自动控制相机的移动和视角,让游戏看起来更专业、更流畅。它是由Cinemachine插件提供的,这个插件专门用来简化和加强相机的控制。

1)假造相机是什么?
假造相机就像是一个智能的机器人相机利用员,它会根据你设置的规则自动调整相机的位置和方向。好比,它可以自动跟随一个脚色移动,或者在不同的相机视角之间平滑切换。
2)假造相机的作用是什么?
假造相机的主要作用是简化相机控制,让开发者不需要手动编写复杂的相机移动代码。它特别适合用来制作电影化的游戏场景,好比过场动画或者第三人称射击游戏。
3)假造相机和主相机的区别?
主相机(Main Camera):这是Unity默认的相机,你可以手动控制它的位置和方向。它就像是一个普通的相机,你告诉它看哪里,它就看哪里。
假造相机:这个相机更智能,可以自动跟随游戏中的脚色或物体移动。它可以根据游戏的状态自动调整视角,好比脚色战斗时拉远一点,对话时拉近一点。
总的来说,假造相机让相机控制变得更简朴、更自动,特别适合需要复杂相机运动的游戏。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表