当前位置: 首页 > news >正文

材质笔记 - Simluate Solid Surface

光的行为

    当光和物体相遇时,光会有三种行为:被物体反射、穿过物体(物体是透明或半透明的)或者被吸收。

高光反射和漫反射

    高光反射(Specular Reflection)会在表面光滑且反光的物体上看到,比如镜子,不锈钢球等,此时光线在物体表面是直接“弹”到了反射方向。还有一种反射叫做漫反射(Diffuse Reflection),此时光线被吸收并反射到了四面八方。下图白色箭头表示高光反射,红色箭头表示漫反射:


漫反射系数:Base Map

    在Unity中,URP/Lit Shader需要Base Map来表示漫反射系数。其他Shader通常称这个属性为Albedo或Diffuse Map(从技术上严格地来讲,它们并不是完全相同的东西)。

    Albedo这个词描述了漫反射的度量值。通常就是指颜色值,通过RGB三通道值表达。RGB值可以转换为Hue(色调),Saturation(饱和度)和Luminosity(亮度)。Albedo的luminosity对应于漫反射的量,hue和saturation描述了从表面出来的光的质量。

Specular workflow

    日常生活中有许多金属物体比如钢笔,不锈钢球等,在光源下它们会产生高光反射。在Shader中,高光又是怎么和漫反射进行描述和区别的呢?

    让物体表面看起来像是金属一样的属性叫做高光度(Specularity)。高光度和光滑度(smoothness)是不同的。我们可以将一颗苹果擦到很光滑,但没办法将它擦成金属外观。但是光滑的物体是有一些高光度的。

    下图中的苹果,smoothness都一样,但specularity从左至右依次增强。


       和漫反射表面一样,金属表面会吸收光。在阳光下放置一个金属物体,过一段时间后,它会变烫。

        Specular workflow

        有两种workflow可供我们使用来指定材质中的金属外观(metallic apperance)。当使用URP/Lit Shader中的Specularity属性时,用到的是Specular workflow(后面笔记再解释Metallic workflow)。

        在Specular workflow中:

  •         闪亮的金属表面拥有高Specularity以及高Smoothness。
  •         闪亮的非金属表面拥有低的Specularity和高Smoothness。
  •         Smoothness控制高光反射的范围,Specular Map控制了高光反射的量的大小以及高光反射的颜色。
  •         Specular Map可使用RGB颜色值

        下面通过实验来说明:

        在Unity场景中选择一个物体,比如苹果,选择苹果的材质


        Inspector中将其Workflow Mode设置为Specular


    将其Smoothness进行调整,比如设置为1。


    接下来,设置Specular Map,然其看起来像是一颗金属苹果,带镜面反射效果。


Metallic workflow

        在Unity中,Specular workflow是更加科学的让物体有金属感的方式。另一种方式,metallic workflow是一种更加简单的方式,但这种方式并不严格遵循物理光学的规则。

        Metallic workflow中:

  •         闪亮的金属表面拥有高Metallic和高Smoothness
  •         闪亮的非金属表面使用0或者低的Metallic和高Smoothness
  •         Smoothness控制高光反射的范围
  •         Metallic map值使用灰阶值

        之前的苹果的例子中,我们将Metallic Map设置为1,Smoothness设置为1,可以得到和Specular workflow类似的效果。

Specular workflow和Metallic workflow对比


        具体应用中改如何选择哪种workflow呢?在导入资源的时候,我们可能会看到有一些资源使用Specular workflow,另外一些资源使用Metallic。实际上我们也不必纠结,只要能达到想要的效果即可。Metallic workflow通常来说更常见,因为它使用起来更加简单,但其是一种经验性的近似。Specular workflow基于真实世界中反射的物理规则,但Specular Map用起来是很有挑战的事情。

Smoothness

       也称作gloss或glossiness。它影响高光的范围。光滑的表面上,光线会反射到统一的方向上,因此我们能够从物体表面看到光源的形状。对于一个粗糙的表面,仍然有高光反射存在,但反射光的方向是分散的。

        下图的五颗苹果,Metallic都是0.5,但Smoothness从左至右依次增加。

相关文章:

材质笔记 - Simluate Solid Surface

光的行为 当光和物体相遇时,光会有三种行为:被物体反射、穿过物体(物体是透明或半透明的)或者被吸收。 高光反射和漫反射 高光反射(Specular Reflection)会在表面光滑且反光的物体上看到,比如镜…...

设计模式-值类型与引用类型、深拷贝与浅拷贝、原型模式详解

一. 值类型和引用类型 1. 前言 (1). 分类 值类型包括:布尔类型、浮点类型(float、double、decimal、byte)、字符类型(char)、整型(int、long、short等)、枚举(entum)、结构体(struct)。 引用类型:数组、字符串(string)、类、接口…...

ssm高校功能教室预约系统java idea maven

本网站所实现的是一个高校功能教室预约系统,该系统严格按照需求分析制作相关模块,并利用所学知识尽力完成,但是本人由于学识浅薄,无法真正做到让该程序可以投入市场使用,仅仅简单实现部分功能,希望日后还能…...

C语言学习笔记-强制类型转换

强制类型转换是通过类型转换运算来实现的。其一般形式为:(类型说明符)(表达式)其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。自动转换是在源类型和目标类型兼容以及目标类型广于源类型时发生一个类型…...

docker数据卷插件

在docker中,对接外部存储我们通常需要docker的数据卷插件。docker中简要可分为两类 docker卷插件和CSI插件,其中docker卷插件分为两个版本,旧版的传统插件(legacy plugin/non-managed plugin)和新版的托管插件(managed plugin)。下面分章节讨…...

第二章-线程(3)

线程一、线程的定义二、线程的实现一、线程的定义 线程: 线程是进程中的一个实体,是系统独立调度和分派的基本单位。 进程是资源的拥有者,线程是系统独立调度和分配的基本单位。 进程与线程的比较: 调度:线程调度快…...

C++学习记录——칠 类和对象(4)

文章目录1、const成员2、取地址及const取地址操作符重载3、构造函数续集1、初始化列表2、explicit关键字4、static成员5、匿名对象6、友元1.友元函数2、友元类7、内部类1、const成员 看一段代码 class A { public:void Print(){cout << _a << endl;} private:int…...

Python-项目实战--飞机大战-碰撞检测(8)

目标了解碰撞检测方法碰撞实现1.了解碰撞检测方法pygame提供了两个非常方便的方法可以实现碰撞检测&#xff1a;pygame.sprite.groupcollide()两个精灵组中所有的精灵的碰撞检测groupcollide(group1, group2, dokill1, dokill2, collided None) -> Sprite_dict如果将dokill…...

T06 成绩排序

查找和排序 题目&#xff1a;输入任意&#xff08;用户&#xff0c;成绩&#xff09;序列&#xff0c;可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 示例&#xff1a; jack 70 peter 96 Tom 70 smith 67 从高到低 成…...

【机器学习】Linear and Nonlinear Regression 线性/非线性回归讲解

文章目录一、回归问题概述二、误差项定义三、独立同分布的假设四、似然函数的作用五、参数求解六、梯度下降算法七、参数更新方法八、优化参数设置一、回归问题概述 回归&#xff1a;根据工资和年龄&#xff0c;预测额度为多少 其中&#xff0c;工资和年龄被称为特征&#xff0…...

PyQt5数据库开发1 4.1 SQL Server 2008 R2如何开启数据库的远程连接

文章目录 前言 步骤/方法 1 使用windows身份登录 2 启用混合登录模式 3 允许远程连接服务器 4 设置sa用户属性 5 配置服务器 6 重新登录 7 配置SSCM 8 确认防火墙设置 注意事项 前言 SQL Server 2008 R2如何开启数据库的远程连接 SQL Server 2008默认是不允许远程连…...

javassm高校学生评教系统的设计与实现idea msyql

伴随着社会以及科学技术的发展&#xff0c;互联网已经渗透在人们的身边&#xff0c;网络慢慢的变成了人们的生活必不可少的一部分&#xff0c;紧接着网络飞速的发展&#xff0c;管理系统这一名词已不陌生&#xff0c;越来越多的学校、公司等机构都会定制一款属于自己个性化的管…...

为什么神经网络做不了2次函数拟合,网上的都是骗人的吗?

环境&#xff1a;tensorflow2 kaggle 这几天突发奇想&#xff0c;用深度学习训练2次函数。先在网上找找相同的资料这方面资料太少了。大多数如下&#xff1a; 。 给我的感觉就是&#xff0c;用深度学习来做&#xff0c;真的很容易。 网上写出代码分析的比较少。但是也找到了…...

【Java】Help notes about JAVA

JAVA语言帮助笔记Java的安装与JDKJava命名规范JAVA的数据类型自动类型转换强制类型转换JAVA的运算符取余运算结果的符号逻辑运算的短路运算三元运算符运算符优先级JAVA的流程控制分支结构JAVA类Scanner类Java的安装与JDK JDK安装网站&#xff1a;https://www.oracle.com/java/…...

2023北京老博会,北京养老展,第十届中国国际老年产业博览会

2023第十届&#xff08;北京&#xff09;国际老年产业博览会&#xff0c;将于08月28-30日盛大举办&#xff1b; 2023北京老博会&#xff1a;2023第十届中国&#xff08;北京&#xff09;国际老年产业博览会The 2023 tenth China (Beijing) International Aged industry Expo&a…...

C++展开模板参数包、函数参数包-(lambda+折叠表达式)

开门见山 以下代码可展开模板参数包和展开函数参数包。 // lambda折叠表达式(需C17) #include <iostream> using namespace std;// 1.展开模板参数包 template<typename ...T> void Func1() {([]() {cout << typeid(T).name() << endl;}(), ...);// …...

【Spark分布式内存计算框架——Spark Core】7. RDD Checkpoint、外部数据源

第五章 RDD Checkpoint RDD 数据可以持久化&#xff0c;但是持久化/缓存可以把数据放在内存中&#xff0c;虽然是快速的&#xff0c;但是也是最不可靠的&#xff1b;也可以把数据放在磁盘上&#xff0c;也不是完全可靠的&#xff01;例如磁盘会损坏等。 Checkpoint的产生就是…...

Connext DDSQoS参考

1 QoS策略列表 ConnextDDS 6.1.1版中所有QoS策略的高级视图。 1. QoS策略描述...

【正则表达式】获取html代码文本内所有<script>标签内容

文章目录一. 背景二. 思路与过程1. 正则表达式中需要限定<script>开头与结尾2. 增加标签格式的限定3. 不限制<script>首尾的内部内容4. 中间的内容不能出现闭合的情况三. 结果与代码四. 正则辅助工具一. 背景 之前要对学生提交的html代码进行检查&#xff0c;在获…...

有 9 种springMVC常用注解高频使用,来了解下?

文章目录1、Controller2、RequestMapping2.1 RequestMapping注解有六个属性2.1.1 value2.1.2 method2.1.3 consumes2.1.4 produces2.1.5 params2.1.6 headers2.2 Request Mapping&#xff08;"/helloword/?/aa"&#xff09;的Ant路径&#xff0c;匹配符2.3 Request …...

从好奇号火星着陆看复杂系统工程:天空起重机方案与工程管理启示

1. 项目概述&#xff1a;从“不可能”到“火星新地标”的工程壮举2012年8月6日&#xff0c;当“好奇号”火星车在盖尔陨石坑成功着陆&#xff0c;传回第一张火星地表照片时&#xff0c;整个喷气推进实验室&#xff08;JPL&#xff09;控制中心沸腾了。这不仅仅是一次成功的行星…...

【Linux保姆级教程】curl命令最全用法详解

在Linux日常运维、后端开发、接口调试工作中&#xff0c;有一个命令几乎无人不知、无人不用&#xff0c;它就是curl命令。curl被称为网络传输瑞士军刀&#xff0c;无需打开浏览器&#xff0c;纯命令行即可发送网络请求&#xff0c;支持HTTP/HTTPS/FTP等数十种协议。不管是测试接…...

数字信号处理中的统计与概率基础解析

1. 数字信号处理中的统计与概率基础 在数字信号处理&#xff08;DSP&#xff09;领域&#xff0c;统计和概率理论构成了分析和处理信号的核心数学工具。信号在采集、传输和处理过程中不可避免地会受到各种干扰和噪声的影响&#xff0c;这些干扰可能来自测量系统本身&#xff0c…...

Docker 部署 XiuXianGame 文字修仙游戏:极空间 NAS 上随时挂机刷资源

前言 挂机刷资源&#xff0c;躺平修成仙。 这类文字修仙游戏&#xff0c;说白了就是佛系养成为主&#xff0c;不用时刻盯着&#xff0c;挂着就行。但问题是——大多数要么得在本地电脑跑&#xff0c;要么依赖第三方平台&#xff0c;体验受限。把这套东西跑在自己的 NAS 上&am…...

AI编程助手上下文管理工具devcontext:构建项目记忆库提升开发效率

1. 项目概述&#xff1a;当AI助手拥有“记忆”&#xff0c;开发效率的质变如果你和我一样&#xff0c;每天大部分时间都在和代码编辑器、终端以及各种文档打交道&#xff0c;那你一定对这样的场景不陌生&#xff1a;接手一个新项目&#xff0c;光是理解代码库的结构、各个模块的…...

边缘计算中的机器学习能效优化与混合架构实践

1. 边缘计算中的机器学习能效革命在智能手表、健康监测设备等穿戴式设备中&#xff0c;实时运行机器学习模型一直是个棘手的问题。传统方案要么耗电太快导致续航崩溃&#xff0c;要么精度太低失去实用价值。我们团队最近实验的一组数据很能说明问题&#xff1a;在常见的运动识别…...

【东亚美学AI化里程碑】:全球首份Midjourney Sumi-e风格Prompt工程白皮书(附东京艺术大学合作验证的17组对比测试数据)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;东亚美学AI化的范式跃迁 东亚美学传统强调“留白”“气韵”“物哀”与“间”&#xff08;ma&#xff09;等非显性结构&#xff0c;其核心并非形式完备性&#xff0c;而在于感知张力与意义生成的临界状态…...

别再只盯着应力云图了!用ANSYS Workbench的‘圣维南原理’和模型简化,把你的计算效率提升200%

别再只盯着应力云图了&#xff01;用ANSYS Workbench的‘圣维南原理’和模型简化&#xff0c;把你的计算效率提升200% 有限元分析工程师常常陷入一个误区&#xff1a;认为模型越精细&#xff0c;结果越准确。但现实情况是&#xff0c;一个未经合理简化的复杂模型不仅会消耗大量…...

别再乱装驱动了!Ubuntu 20.04显卡驱动‘掉了’的终极排查与修复思路

Ubuntu 20.04显卡驱动失效的系统化诊断与修复指南 当你正专注于一个重要项目时&#xff0c;突然发现Ubuntu的NVIDIA显卡驱动"神秘消失"——这种体验对Linux用户来说简直像一场噩梦。nvidia-smi命令返回"驱动未加载"&#xff0c;外接显示器黑屏&#xff0c;…...

WarcraftHelper:3步解决魔兽争霸3卡顿与兼容性问题终极指南

WarcraftHelper&#xff1a;3步解决魔兽争霸3卡顿与兼容性问题终极指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否还在为魔兽争霸3在现代电…...