文章目录

  • 前言
  • 参数介绍
    • 1、表面选项
      • 1.1 Worflow Mode工作流模式
      • 1.2 Surface Type 表面类型
      • 1.3 Blending Mode 混合模式
      • 1.4 Preserve Specular 保留镜面光照(高光)
      • 1.5 Render Face 渲染面
      • 1.6 Alpha Clipping 透明度剪裁
      • 1.7 Receive Shadows 是否接收阴影
    • 2、表面输入
      • 2.1 BaseMap 基础贴图
      • 2.2 Specular Map 高光贴图
      • 2.3 Smoothness 光滑度
      • 2.4 Normal Map法线贴图、Height Map高度贴图、Occlusion Map遮蔽贴图
      • 2.5 Emission 自发光
      • 2.6 Tiling和Offset
    • 3、Detail Inputs细节输入
    • 4、高级选项
      • 4.1 Specular Highlights 镜面高光
      • 4.2 Environment Reflections 环境反射
      • 4.3 Sorting Order 渲染顺序
      • 4.4 Enable GPU Instancing
  • 参考
  • 专栏推荐
  • 完结

前言

URP/Lit(Universal Render Pipeline/Lit)是Unity通用渲染管线(URP)中的标准PBR(基于物理的渲染)材质,适用于大多数3D物体渲染。它是URP中最常用且功能最全面的材质类型。
在这里插入图片描述

参数介绍

1、表面选项

在这里插入图片描述

1.1 Worflow Mode工作流模式

在这里插入图片描述

Metallic和Specular,两个模式都能做出高质量材质,使用任何一种方法,您都可以很好地表示大多数常见的材质类型,因此在大多数情况下,选择其中一种是个人喜好的问题,以适应您的艺术工作流程。

1.2 Surface Type 表面类型

在这里插入图片描述

  • Opaque:不透明的
  • ransparent:透明的

现实世界多数物体是不透明的,它们之间会相互遮挡,Opaque不会开启混合(Blend模式),即使对象有Apha值,也不会产生透明效果.
在这里插入图片描述

如果使用Transparent,则可以透过透明物体,看到背后的物体,修改Alpha值能明显改变透明度
在这里插入图片描述

1.3 Blending Mode 混合模式

最常用的是Alpha,它是最接近真实世界的混合模式
在这里插入图片描述

  • Alpha 使用材质的 Alpha 值来更改对象的透明度。0 表示完全透明。1 表示完全不透明,但在透明渲染过程中仍然会渲染材质。对于您希望完全可见但随着时间的推移也会逐渐消失的视觉效果(例如云),这非常有用。
  • Premultiply 对材质应用与 Alpha 类似的效果,但保留反射和高光,即使表面是透明的情况下也是如此。这意味着只有反射光可见。例如,想象一下透明玻璃。
  • Additive 在另一个表面之上给材质添加额外的一层。这对全息图很有用。
  • Multiply 将材质的颜色与表面的背景颜色相乘。这会产生更暗的效果,就像透过彩色玻璃观看一样。

1.4 Preserve Specular 保留镜面光照(高光)

是否要保特高光,不受Alpha值影响.如果勾上,即使Alpha变为0,高光依然存在。如果取消,高光会随着Alphal降低而变弱
在这里插入图片描述

1.5 Render Face 渲染面

在这里插入图片描述

  • Both是两面都渲染
  • Back是仅渲染背面
  • Front是仅渲染正面

正面背面是指网格表面的方向,以四边形Quad为例,它有一个正面,一个背面
在这里插入图片描述

至于哪边是正面,哪边是背面,是网格在制作时决定的,封闭模型,比如球和正方体,一般把外表面定义为“正面,当从球的内部往外看,就会看到球表面的“背面”

1.6 Alpha Clipping 透明度剪裁

在这里插入图片描述

所有像素最终的alpha值,会和Alpha clipping里的值比较,如果像素的alpha值必小于这个配置,那么这个像素会被直接丢弃,不会渲染到最终输出里。

启用后可用于制作镂空效果(如树叶、栅栏等)。需要在制作贴图时考虑Alpha值。

1.7 Receive Shadows 是否接收阴影

表示阴影能否出现在它上面

2、表面输入

在这里插入图片描述

2.1 BaseMap 基础贴图

在这里插入图片描述

网格(Mesh)使用的纹理贴图,也被称作Albedo/Diffuse贴图。贴图一般会随着模型制作,是模型的外观,

贴图提供了一个颜色的配置,这里的颜色会和贴图进行混合,最后再附加到模型
在这里插入图片描述

2.2 Specular Map 高光贴图

影响物体的光泽
在这里插入图片描述

2.3 Smoothness 光滑度

在这里插入图片描述
光滑度越高,反光越集中。1数值达到1,就是一面镜子,光滑度的数值可以从贴图中获取,也就是在制作高光或者纹理贴图时,将Alpha值制作为纹理的光滑度,可以让物体不同区域有不同的光滑度。
在这里插入图片描述

Unity有一些推荐的参数,用来模拟各种材质,简单总结一下它的建议:

  • 对于更偏向金属质感的材质,Base Map最好接近黑色,而Specular Map接近金属本身的颜色
  • 对非金属的材质,Base Map使用接近材质的颜色,而Specular Map接近灰色

2.4 Normal Map法线贴图、Height Map高度贴图、Occlusion Map遮蔽贴图

在这里插入图片描述
它们都是让物体看起来更有凹凸感,在制作模型时一起制作

2.5 Emission 自发光

在这里插入图片描述
在没有光照的情况下发出的光亮

Unity里可以配合全局光照(GI),光照探针,将自发光计算为间接光照
在这里插入图片描述

2.6 Tiling和Offset

分别表示以上所有贴图的重复和移动,X/Y表示哪个轴的变化

这里用一个贴图方便演示

如果Tiling是1,Offset是0,就是使用原图作为贴图
在这里插入图片描述
如果增加Tiling,可以看到在对应轴上,贴图看起来被压缩了
在这里插入图片描述

而Offset就是平移了这个贴图,
在这里插入图片描述

它的原理是改变了顶点的纹理坐标,进而改变了每个像素的采样结果。

我们可以在资源文件夹中找到纹理,其中Wrap Mode 包裹模式定义了当纹理坐标UV超出0-1的范围时,采样的结果是什么
在这里插入图片描述

3、Detail Inputs细节输入

该选项用于添加细节
在这里插入图片描述
如何让模型在局部放大时,仍然可以看到丰富的细节?

最简单的方式是,绘制更高清的纹理贴图,容纳更多的颜色细节,但是它会明显增加贴图占用空间。

Detail Inputs就是一个解决局部细节的方案,它的核心思想是,把局部的细节从主贴图中剥离出来,单独成为一张贴图,通过增加Tiling模拟高分辨率的纹理,在采样主纹理贴图时,同时采样细节纹理贴图,然后将细节采样的结果叠加到主纹理的采样上,它平衡了占用空间和细节效果。

Mask用于标记主纹理上的哪些部分,是需要和细节贴图进行叠加的,下面是细节贴图和细节贴图的法线贴图,以及它们的Tiling和Offset。

4、高级选项

在这里插入图片描述

4.1 Specular Highlights 镜面高光

就是球面这个明显的光点
在这里插入图片描述

取消后光点消失
在这里插入图片描述

4.2 Environment Reflections 环境反射

提供更逼真的镜面反光效果,反射环境中的物体,比如反射天空盒。
在这里插入图片描述

4.3 Sorting Order 渲染顺序

所有Shader都有一个渲染队列序号,比如不透明物体是2000,透明物体是3000,越靠前的越先渲染。URP隐藏了队列序号,改为一个Slider,但是原理是一样的。

4.4 Enable GPU Instancing

当场景中存在大量相同的对象时,勾上它可以在一次DrawCall中,传递多个相同网格和材质的对象,加快渲染计算的速度。

注意:Unity官方建议低于256顶点的网格,不要启用这个选项,应该采用另外的优化方案。

参考

https://docs.unity3d.com/cn/Packages/com.unity.render-pipelines.universal@12.1/manual/lit-shader.html
https://www.bilibili.com/video/BV1foFNeuEjA/


专栏推荐

地址
【unity游戏开发入门到精通——C#篇】
【unity游戏开发入门到精通——unity通用篇】
【unity游戏开发入门到精通——unity3D篇】
【unity游戏开发入门到精通——unity2D篇】
【unity实战】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】
【unity游戏开发——模型篇】
【unity游戏开发——InputSystem】
【unity游戏开发——Animator动画】
【unity游戏开发——UGUI】
【unity游戏开发——联网篇】
【unity游戏开发——优化篇】
【unity游戏开发——shader篇】
【unity游戏开发——编辑器扩展】
【unity游戏开发——热更新】
【unity游戏开发——网络】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

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

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

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

相关文章

uni-app ios离线推送,推送后点击推送的链接进入程序后再次回到桌面,无法消除app的角标问题

问题现象: 解决方案: 1、用h5方法清理 h5地址:HTML5 API Reference 废话不多说上代码 /*** 清除应用角标(支持iOS和Android)* 使用H5方法清理推送角标*/clearAppBadge() {// #ifdef APP-PLUStry {plus.runtime.setBad…

迁移Oracle SH 示例 schema 到 PostgreSQL

接着上一篇文章:迁移Oracle HR 示例 schema 到 PostgreSQL中,本文做Oracle SH(Sales History)示例 schema的迁移,SH schema比HR schema更大更复杂,本次迁移的重点是: 分区表外部数据加载 使用…

1.1 ARMv8/ARMv9安全扩展

目录1.1.1 ARM架构安全演进1.1.2 ARMv8安全特性异常级别(EL)安全模型关键安全扩展1.1.3 ARMv9安全创新机密计算架构(CCA)增强的隔离机制1.1.4 安全扩展的TF-A支持1.1.5 安全扩展配置示例1.1.1 ARM架构安全演进 ARM架构从v7到v9的安全演进路线: ARMv7:引…

更新用户隐私协议后还是 ail api scope is not declared in the privacy agreement怎么办??!

saveImageToPhotosAlbum:fail api scope is not declared in the privacy agreement昨天明明可以了,开了个会出来,又不行了,真要命啊啊啊啊啊啊啊啊啊啊(现在回想起来可能是因为我把发布的那个版本删了,因为那个只是用来测试用的e…

练习:对象数组 5

定义一个长度为 3 的数组,数组存储 1~3 名学生对象作为初始数据,学生对象的学号,姓名各不相同。学生的属性:学号,姓名,年龄。要求 1:再次添加一个学生对象,并在添加的时候进行学号的…

Linux 中的 .bashrc 是什么?配置详解

如果你使用过 Linux 终端,那么你很可能接触过 .bashrc 文件。这个功能强大的脚本是个性化命令行环境并使其更高效运行的关键。 在本文中,我们将向你介绍这个文件是什么,在哪里可以找到它,以及如何安全地编辑它。你还将学到一些实…

JVM运行时数据区深度解析

💾 JVM运行时数据区深度解析 文章目录💾 JVM运行时数据区深度解析🎯 引言📚 方法区📋 方法区存储内容🔄 从永久代到元空间的演进永久代时期(JDK 8之前)元空间时期(JDK 8及…

.NET nupkg包的深度解析与安全防护指南

在.NET开发领域,nupkg包是开发者们不可或缺的工具。它不仅是代码分发和资源共享的核心载体,还贯穿了开发、构建、部署的全流程。今天,我们将深入探讨nupkg包的核心功能、打包发布流程以及安全防护措施,帮助你在.NET开发中更加得心…

Cursor 快速入门指南:从安装到核心功能

引言 Cursor 是一款融合 AI 能力的现代代码编辑器,旨在提升开发者的编码效率。本文将带您从零开始,快速掌握 Cursor 的完整使用流程 - 包括安装配置、项目初始化以及核心 AI 功能的应用。 正文 1. 安装与初始配置 1.1 下载与安装 Cursor 支持跨平台…

自然语言处理中probe探测是什么意思。

文章目录🔹 1. 英文单词的基本含义(动词 & 名词)✅ 作为动词(to probe):✅ 作为名词(a probe):🔹 2. 不同领域的具体含义🔹 3. 在机器学习/NL…

【记录】Ubuntu挂载home文件夹到磁盘

问题描述 服务器装好后,home文件夹一般存放各个用户的文件,默认的存储磁盘为系统磁盘,一般比较小,可能几百G,这对于服务器来讲,相当小了,所以需要对home文件夹进行重新调整。 我之前的博文 点击进入 相关配置在重启机器后,磁盘配置自动失效,即配置好后,home在大的磁…

【注意避坑】基于Spring AI 开发本地天气 mcp server,通义灵码测试MCP server连接不稳定,cherry studio连接报错

springboot 版本: 3.5.4 cherry studio版本:1.4.7 通义灵码版本: 2.5.13 文章目录 问题描述:1. 通义灵码添加mcp server ,配置测试2. cherry studio工具添加mcp server ,配置测试 项目源代码:解…

Paimon LSM Tree Compaction 策略

压缩怎么进行的这里的操作都是KValue,内部有row kind,标记了删除和插入MergeTreeCompactManager 是 Paimon 中 Merge-Tree 结构压缩任务的总调度中心。它的核心职责就是监控文件的层级状态(Levels),并在合适的时机&…

小米路由器3C刷OpenWrt,更换系统/变砖恢复 指南

基础篇看这里: 小米路由器3C如何安装OpenWrt官方编译的ROM - 哔哩哔哩 小米路由器 3C 刷入 Breed 和 OpenWrt - Snoopy1866 - 博客园 一、路由器注入 如果按照上面的文章, telnet、ftp一直连接失败,那么可以尝试看 这里: 获取路由器root权…

Spring Boot 项目启动时按需初始化加载数据

1、新建类,类上添加注解 Component ,该类用于在项目启动时处理数据加载任务; 2、该类实现 ApplicationRunner 接口,并重写 run 方法; 3、在重写的 run 方法里处理数据加载任务; 注意: 有定时加载…

MCP快速入门—快速构建自己的服务器

引言 随着大语言模型(LLM)技术的快速发展,如何扩展其能力边界成为开发者关注的重点。MCP(Model Capability Protocol)作为一种协议标准,允许开发者构建自定义服务器来增强LLM的功能。 正文内容 1. MCP核心概念与技术背景 MCP服务器主要提供三种能力类…

Vue 事件总线深度解析:从实现原理到工程实践

在 Vue 组件通信体系中,事件总线(Event Bus)是处理非父子组件通信的轻量解决方案。本文将从技术实现细节、工程化实践、内存管理等维度展开,结合源码级分析与典型场景,带你全面掌握这一核心技术点。​一、事件总线的技…

CMake Qt静态库中配置qrc并使用

CMake Qt序言环境代码序言 看网上这资料较少,且我理解起来有歧义,特地补充 环境 CMake:3.29.2 Qt:5.15.2 MSVC:2022 IDE:QtCreator 代码 方式一: 在CMakeLists.txt里,add_libr…

记录一下:成功部署k8s集群(部分)

前提条件:安装了containerd、docker 关闭了firewalld、selinux 配置了时间同步服务 chronyd 关闭swap分区等1、在控制节点、工作节点,安装kubelet、kubeadm、kubectlyum install -y kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0 …

Idea如何解决包冲突

Idea如何解决包冲突1.Error信息:JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/E:/javapojects/stww-v4-gjtwt-seal/target/stww--v4-platform-proj…