【unity小技巧】一些unity3D灯光的使用与渲染及性能优化方案

文章目录

  • 天空盒反射
  • 配置太阳耀斑眩光
  • 烘培光照
  • 烘培光照时弹出错误,记得勾选模型下面的选择
  • 阴影
    • 项目配置
    • 光源
    • 模型
    • 模型shader的问题
  • 全局光照
  • 混合光照模式
  • 混合照明模式
    • 减性照明模式
    • Shadowmask照明模式
    • 间接烘焙照明模式
  • 环境光遮罩
  • 灯光探针
  • 反射探针技术
    • 关闭反射探针
    • 可以修改反射探针区域大小
    • 没有实时反射
  • 自发光材质
  • 渲染路径
  • 完结

天空盒反射

我们新建一个cube,可以看到它默认收到环境光的影响
在这里插入图片描述
在这里插入图片描述

把材质的金属度和平滑度拉满,会发现它会完全反射天空盒
金属度表示反射强度,1完全反射
平滑度表示反射多少天空盒,1就是全反射天空盒
在这里插入图片描述
但是你会发现反射的天空盒很模糊,我们可以增加环境反射分辨率,可以看到清晰了
在这里插入图片描述

配置太阳耀斑眩光

在这里插入图片描述
效果
在这里插入图片描述

烘培光照

记得勾选需要受到烘培光照影响的物体为静态
在这里插入图片描述
点击烘培
在这里插入图片描述

烘培光照时弹出错误,记得勾选模型下面的选择

在这里插入图片描述

阴影

项目配置

在这里插入图片描述

光源

在这里插入图片描述

模型

在这里插入图片描述

模型shader的问题

不要使用透明shader
在这里插入图片描述

全局光照

我们注意这个Shadow caster表示阴影数,过多会对性能造成影响
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
记得修改要烘培的物体为静态,灯光模式也修改为烘培
在这里插入图片描述
记得勾选烘培全局光照,不勾选烘培光源不会受到间接光源影响,然后烘培
在这里插入图片描述

效果
在这里插入图片描述
烘培好了,灯光我们可以进行删除,也不会影响

混合光照模式

我们现在在新增一个会动的cube,灯光肯定会有问题,因为前面的灯光我们是烘培出来的
在这里插入图片描述
当然你可以把灯光简单的改为实时灯光,记得再重新进行烘培
在这里插入图片描述
但是可以看到阴影比较暗,记得打开实时全局光照,不勾选实时光源不会受到间接光源影响,再进行烘培,效果
在这里插入图片描述
最好我们选择mixed混合模式,再重新进行烘培
在这里插入图片描述

在这里插入图片描述
一般情况下,我们不会同时开启实时和烘培全局光照,这会造成性能的浪费,这里我们取消实时全局光照,重新烘培
在这里插入图片描述
在这里插入图片描述
注意,这里新的cube背面是黑色的原因是我关闭了天空盒和环境照明,修改回来就可以了
在这里插入图片描述

混合照明模式

减性照明模式

在这里插入图片描述
减性模式最省性能,但是不支持高光且只能渲染一个光照

Shadowmask照明模式

因为前面选择了减性照明模式,烘培的阴影无法对我们动态物体产生影响就像下面这样
在这里插入图片描述
修改Shadowmask模式改为Distance Shadowmask(距离阴影蒙版)
在这里插入图片描述
把照明模式改为Shadowmask,重新烘培
在这里插入图片描述
效果
在这里插入图片描述
注意这里的阴影距离,表示如果我们的相机距离目标在150以内,会可以看到动态实时的影子,但是如果距离大于150以外,则显示的烘培阴影
在这里插入图片描述
为了方便测试,我把值改成5看看效果
在这里插入图片描述

间接烘焙照明模式

在这里插入图片描述
最费性能,影子更加真实
超过设定的阴影距离,影子会直接消失包括烘培的影子
在这里插入图片描述在这里插入图片描述

环境光遮罩

开启环境光遮罩,点击重新烘培
在这里插入图片描述
开启环境光遮罩之后,主要模型直接拐角处的变化,变得更加真实
在这里插入图片描述

灯光探针

前面的修改Shadowmask模式改为Distance Shadowmask(距离阴影蒙版),虽然可以解决烘培的阴影对我们动态物体产生影响,但是比较耗性能,我们先改回Shadowmask模式
在这里插入图片描述
我们可以使用灯光探针
在这里插入图片描述
编辑探针包裹不同区域

反射探针技术

让游戏物体有真实的反射效果
在这里插入图片描述
把小球调成全反射
在这里插入图片描述

在小球身上加添加反射探针
在这里插入图片描述

结果全黑,是因为我们的反射探针默认是烘培模式
在这里插入图片描述
我们需要把想要反射的物体设置为静态,并重新烘培
在这里插入图片描述

关闭反射探针

想要关闭反射探针也很简单,选择反射探测器为off
在这里插入图片描述

可以修改反射探针区域大小

在这里插入图片描述
如果场景只有一个物体受到反射探针的影响,把反射探针区域大小调节和该物体一样的最好,这样更加节省性能

没有实时反射

当然前面反射探针我们使用的是烘培模式,所以肯定无法实时反射内容

我们可以修改反射探针类型为实时,刷新模式为每帧更新
在这里插入图片描述
运行查看反射效果,就可以实时显示效果了
在这里插入图片描述

自发光材质

勾选材质发射,修改材质的HDR颜色
在这里插入图片描述
记得勾选需要光照的物体勾选伪静态,再进行烘培
效果
在这里插入图片描述

渲染路径

Unity 的内置渲染管线支持不同渲染路径。渲染路径是与光照和阴影相关的一系列操作。不同的渲染路径具有不同功能和性能特征。应根据项目类型以及目标硬件,确定哪种渲染路径最适合您的项目。

可在 Graphics 窗口中选择项目使用的渲染路径,并可为每个摄像机覆盖该路径。

如果运行项目的设备上的 GPU 不支持所选的渲染路径,则 Unity 将自动使用较低保真度的渲染路径。例如,在无法处理延迟着色的 GPU 上,Unity 使用前向渲染。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!如果你遇到任何问题,也欢迎你评论私信或者加群找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux :进程间通信之管道

一、进程间通信 1.1 是什么和为什么 1、进程间通信是什么?? ——>两个或多个进程实现数据层面的交互,但是由于进程独立性的存在,导致通信的成本比较高。 2、既然通信成本高,那为什么还要通信呢?&…

“乐鑫组件注册表”简介

当启动一个新的开发项目时,开发者们通常会利用库和驱动程序等现有的代码资源。这种做法不仅节省时间,还简化了项目的维护工作。本文将深入探讨乐鑫组件注册表的概念及其核心理念,旨在指导您高效地使用和贡献组件。 概念解析 ESP-IDF 的架构…

ATmaga8单片机Pt100温度计源程序+Proteus仿真设计

目录 1、项目功能 2、仿真图 ​3、程序 资料下载地址:ATmaga8单片机Pt100温度计源程序Proteus仿真设计 1、项目功能 设计Pt100铂电阻测量温度的电路,温度测量范围是0-100摄氏度,要求LCD显示。画出电路图,标注元器件参数&am…

【代码pycharm】动手学深度学习v2-05 线性代数

课程链接-05 线性代数 可以先看完特定轴求和再去看p2 import torch xtorch.tensor([3.0]) ytorch.tensor([2.0]) #标量 print(1.标量只有一个元素:\n,xy,x*y,x/y,x**y) x2torch.arange(4) #向量 print(2.向量视为标量值组成的列表:\n,x2) print(3.访问张…

SpringBoot源码解析(四):解析应用参数args

SpringBoot源码系列文章 SpringBoot源码解析(一):SpringApplication构造方法 SpringBoot源码解析(二):引导上下文DefaultBootstrapContext SpringBoot源码解析(三):启动开始阶段 SpringBoot源码解析(四):解析应用参数args 目录…

ZSTD 内存泄漏问题

优质博文:IT-BLOG-CN Zstandard(简称zstd)是一种无损压缩算法,由Facebook开发并开源。它旨在提供高压缩比和高解压速度的平衡,适用于多种数据压缩需求。 特点 【1】高压缩比: zstd能够在保持较高压缩比的…

前端:HTML (学习笔记)【1】

一,网络编程的三大基石 1,URL (1)url —— 统一资源定位符: 网址——整个互联网中可以唯一且准确的确定一个资源的位置。 【项目外】 网址——https://www.baidu.com/ …

【C++动态规划】3148. 矩阵中的最大得分|1819

本文涉及知识点 C动态规划 LeetCode 3148. 矩阵中的最大得分 给你一个由 正整数 组成、大小为 m x n 的矩阵 grid。你可以从矩阵中的任一单元格移动到另一个位于正下方或正右侧的任意单元格(不必相邻)。从值为 c1 的单元格移动到值为 c2 的单元格的得…

STM32完全学习——使用标准库点亮LED

一、使用标准库建立工程 (1)首先我们在ST的网站上面,下载标准库 (2)将标准外设库加入到项目中 我们一般只会使用到红色标注的那个文件夹,我们一般也只会将这个文件夹导入到工程里面,其他的还有…

解决微信小程序自定义tabbar点击两次才能跳转

在每个页面的js文件下加上此代码,selected属性代表每一个页面的下标,在不同的js文件下,要对应不同的selected值 代码: onShow() { // 确保 TabBar 存在并且设置选中项 if (this.getTabBar && this.getTabBar()) { this.…

学习threejs,使用AnimationMixer实现变形动画

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.AnimationMixer 动画…

Solana应用开发常见技术栈

编程语言 Rust Rust是Solana开发中非常重要的编程语言。它具有高性能、内存安全的特点。在Solana智能合约开发中,Rust可以用于编写高效的合约代码。例如,Rust的所有权系统可以帮助开发者避免常见的内存错误,如悬空指针和数据竞争。通过合理利…

【汇编语言】数据处理的两个基本问题(二) —— 解密汇编语言:数据长度与寻址方式的综合应用

文章目录 前言1. 指令要处理的数据有多长?1.1 通过寄存器指明数据的尺寸1.1.1 字操作1.1.2 字节操作 1.2 用操作符X ptr指明内存单元的长度1.2.1 访问字单元1.2.2 访问字节单元1.2.3 为什么要用操作符X ptr指明 1.3 其他方法 2. 寻址方式的综合应用2.1 问题背景&…

【算法】【优选算法】前缀和(下)

目录 一、560.和为K的⼦数组1.1 前缀和1.2 暴力枚举 二、974.和可被K整除的⼦数组2.1 前缀和2.2 暴力枚举 三、525.连续数组3.1 前缀和3.2 暴力枚举 四、1314.矩阵区域和4.1 前缀和4.2 暴力枚举 一、560.和为K的⼦数组 题目链接:560.和为K的⼦数组 题目描述&#x…

分布式cap理论学习

【分布式】CAP理论详解 一致性(Consistency) 代表数据在任何时刻,任何分布式节点,看到的都是符合预期的。有点类似于幂等,无论访问哪个节点,得到结果数据一致。 可用性(Availability) 强调的是任意时刻一定能读到数据&#xff…

主机型入侵检测系统(HIDS)——Elkeid在Centos7的保姆级安装部署教程

一、HIDS简介 主机型入侵检测系统(Host-based Intrusion Detection System 简称:HIDS);HIDS作为主机的监视器和分析器,主要是专注于主机系统内部(监视系统全部或部分的动态的行为以及整个系统的状态)。 HIDS使用传统的C/S架构,只需要在监测端安装agent即可,且使用用户…

Python蓝桥杯刷题1

1.确定字符串是否包含唯一字符 题解:调用count函数计算每一个字符出现的次数,如果不等于1就输出no,并且结束循环,如果等于1就一直循环直到计算到最后一个字符,若最后一个字符也满足条件,则输出yes import…

【ARM】MDK在debug模式下的Registers窗口包含哪些内容

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决客户对于Debug模式下,对于Registers窗口包含的内容了解。 2、 问题场景 Registers窗口是在进入到debug模式下后,就会出现一个窗口。窗口中包含了很多寄存器信息。但是对于具体内容不了解…

河道无人机雷达测流监测系统由哪几部分组成?

在现代水利管理中,河道无人机雷达监测系统正逐渐成为一种重要的工具,为河道的安全和管理提供了强大的技术支持。那么,这个先进的监测系统究竟由哪几部分组成呢? 河道无人机雷达监测系统工作原理 雷达传感器通过发射电磁波或激光束…

浅谈数据仓库的架构及其演变

一、数据仓库分层架构 数据仓库分层一般分为三层,分别为数据仓库ODS层(数据进出口贴源层)、CDM层(数据公共层)和ADS层(数据应用层)。 1. ODS层:这是数据仓库的最底层,直接…