1.PBR简介

2.高光工作流

3.金属工作流


1.PBR简介

PBR(Physically Based Rendering, 基于物理的渲染)的工作流分为金属工作流和高光工作流

2.高光工作流

高光工作流是一种传统的工作流, 现在用的相对较少, 但是在某些特定情况下能提供更精细的控制a.核心思想它不区分金属和非金属, 直接指定镜面反射的颜色和强度b.所需贴图/参数- Albedo 反照率贴图只表示漫反射颜色, 无论是金属还是非金属, 都只放它本身的颜色- Specluar 高光贴图/高光参数对于非金属(如塑料, 陶瓷), 它的高光颜色通常是灰白色, 强度较弱对于金属, 它的高光颜色是金属本身的颜色, 强度很强- Smoothness(光滑度)控制反射的清晰度

1).仅仅将漫反射和镜面反射相加是有问题的, 结果可能会比光源更亮

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

2).确保材质的漫反射和镜面反射的和永远不超过1a.可以简单的将反照率色调诚意 1 - 镜面色调调整

在这里插入图片描述

镜面反射和漫反射已经关联, 镜面反射越强, 漫反射部分就越暗; 黑色镜面色调不会产生高光, 全部是漫反射, 白色镜面色调不会产生漫反射, 全部是镜面反射

当高光色调是灰度色时, 这种方法效果很好; 但当使用其他颜色, 会产生奇怪的结果; 例如, 红色的高光色调只会减少漫反射部分的红色分量, 漫反照会产生一个错误的效果

在这里插入图片描述

为了防止这种颜色现象, 我们使用高光色的最强分量来降低反照率

在这里插入图片描述

- Unity已经给我们准备了处理能力守恒的函数: EnergyConservationBetweenDiffuseAndSpecular需包含头文件 #include "UnityStandardUtils.cginc"- 该函数以反照率和高光色作为输入, 输出一个调整后的反照率, 第三个参数表示1 - 反射率即计算出的漫反射能量比例(Reflectivity表示反射率, 镜面反射部分所占的能量比例)

在这里插入图片描述


3.金属工作流

金属工作流是目前最主流, 最推荐使用的工作流, 因为它更直观, 更容易调出真实的效果a.核心思想它使用一个关键参数Metallic(金属度)来区分一个表面是金属还是非金属(绝缘体), 它是一个从0(完全非金属, 如塑料, 木头, 橡胶)1(完全金属, 如铁,,)的滑杆b.所需贴图/参数- Albedo(反照率贴图)对于非金属, 存放的是物体本身的漫反射颜色(比如塑料的红色, 树叶的绿色)对于金属, 金属几乎不漫反射光线, 所有光线都被反射或吸收; Albedo颜色实际就是它的镜面反射颜色(比如金子的金黄色, 铜的橙红色)- Metallic(金属度贴图/参数) 若是贴图, 则为一个灰度图, 白色1表示金属部分, 黑色0表示非金属部分- Smoothness(光滑度贴图/参数) 控制表面的粗糙程度, 光滑度越高, 反射越清晰, 高光点越小; 光滑度越低, 反射越模糊, 高光点越扩散

我们可以使用另一个滑块属性作为金属开关, 来替换高光色调; 通常, 它应该设置为01, 介于两者之间的值表示了一种混合了金属和非金属成分的材料

在这里插入图片描述

金属工作流中, 我们只提供了两个主要输入:a.albedo 基础颜色b.metallic 金属度(01)但Shader进行光照计算时, 实际需要两个数据:a.漫反射颜色用于计算漫反射光照的部分b.高光反射颜色用于计算镜面高光的部分DiffuseAndSpecularFromMetallic负责将albeo和metallic转换成shader真正需要的 diffuseColor和specularColor
有一个细节是, 金属滑块本身应该在伽马空间中, 但是在线性空间中渲染时, unity不会对单个值进行伽马校正; 因此Gamma属性来告诉Unity也应该对我们的金属滑块应用伽马校正

在这里插入图片描述

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

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

相关文章

09.《路由基础知识解析和实践》

09.路由基础 文章目录09.路由基础核心概念路由关键组成部分三层转发原理介绍(通信流程)路由类型及配置直连路由(direct)实验示例**静态路由(Static)****实验示例****动态路由****RIP(routing information protocol---路…

websocket建立连接过程

1. 客户端发送一个GET的http请求,请求头要包含connection: upgradehost:localhost:8000。表明地址upgrade: websocket。指明升级的协议sec-websocket-key 。 安全验证密钥sec-websocket-version。 协议版本sec-websocket-accept 。对传过来的key进行加密…

Simulink库文件-一种低通滤波模块搭建方法

在汽车电控系统应用层开发中,经常会用到低通滤波模块,其主要作用是去除输入信号中的高频干扰,防止由于输入信号的干扰引起后续执行系统的非预期频繁波动。本文介绍简要介绍低通滤波的定义及作用,并介绍一种低通滤波模块simulink搭…

【C++游记】AVL树

枫の个人主页 你不能改变过去,但你可以改变未来 算法/C/数据结构/C Hello,这里是小枫。C语言与数据结构和算法初阶两个板块都更新完毕,我们继续来学习C的内容呀。C是接近底层有比较经典的语言,因此学习起来注定枯燥无味&#xf…

音视频学习(六十二):H264中的SEI

什么是SEI? 在 H.264 视频编码标准中,补充增强信息(Supplemental Enhancement Information,SEI) 是一种特殊的 NAL(网络抽象层)单元。它不像序列参数集(SPS)或图像参数集&#xff0…

docker run 后报错/bin/bash: /bin/bash: cannot execute binary file总结

以下方法来源于AI&#xff0c;个人仅验证了第三条便成功执行 1. 镜像与宿主机架构不匹配 比如&#xff1a; 你是 x86_64 的机器&#xff0c;但镜像是 ARM64 的&#xff08;或反之&#xff09;。在 PC 上拉了树莓派用的镜像。查看镜像架构 docker inspect <image_name> | …

【Redisson 加锁源码解析】

Redisson 源码解析 —— 分布式锁实现过程 在分布式系统中&#xff0c;分布式锁 是非常常见的需求&#xff0c;用来保证多个节点之间的互斥操作。Redisson 是 Redis 的一个 Java 客户端&#xff0c;它提供了对分布式锁的良好封装。本文将从源码角度剖析 Redisson 的分布式锁实现…

uni-app支持单多选、搜索、查询、限制能否点击组件

<template><view class="multi-select-container" :class="{ single-select: !multiple, no-search: !searchable }"><!-- 当组件被禁用时,直接显示选中的内容 --><view class="disabled-display" v-if="disabled &a…

TFT屏幕:STM32硬件SPI+DMA+队列自动传输

看了网上的很多的SPIDMA的代码&#xff0c;感觉都有一些缺陷&#xff0c;就是基本都是需要有手动等待DMA完成的这个操作&#xff0c;我感觉这种等待操作在很大程度上浪费了时间&#xff0c;那么我加入的“队列”就是一种将等待时间利用起来的方法。原本的SPIDMA的操作逻辑如下图…

AI操作系统语言模型设计 之1 基于意识的Face-Gate-Window的共轭路径的思维-认知-情感嵌套模型

摘要&#xff08;AI生成&#xff09;本文提出了一种创新的AI操作系统语言模型设计框架&#xff0c;将人类意识活动的分层结构映射到人工智能系统中。该模型包含三个嵌套层次&#xff1a;理性思维层&#xff08;Face层&#xff09;&#xff1a;采用双面胶隐喻&#xff08;A/B面&…

疯狂星期四文案网第57天运营日记

网站运营第57天&#xff0c;点击观站&#xff1a; 疯狂星期四 crazy-thursday.com 全网最全的疯狂星期四文案网站 运营报告 今日访问量 今日搜索引擎收录情况

SQLark:一款面向信创应用开发者的数据库开发和管理工具

SQLark 是一款面向信创应用开发者的数据库开发和管理工具&#xff0c;用于快速查询、创建和管理不同类型的数据库系统&#xff0c;现已支持达梦、Oracle、MySQL、PostgreSQL 数据库。 SQLark 提供了对多种数据库的连接支持&#xff0c;实现跨平台数据库管理的无缝切换&#xff…

BigDecimal——解决Java浮点数值精度问题:快速入门与使用

在Java开发中&#xff0c;涉及金额计算、科学计数或需要高精度数值处理时&#xff0c;你是否遇到过这样的困惑&#xff1f;用double计算0.1加0.2&#xff0c;结果竟不是0.3&#xff1b;用float存储商品价格&#xff0c;小数点后两位莫名多出几位乱码&#xff1b;甚至在金融系统…

wpf之WrapPanel

前言 WrapPanel类似winform中的FlowLayoutPanel&#xff0c;采用流式布局。 1、Orientation 该属性指定WrapPanel中子空间布局的方向&#xff0c;有水平和垂直方向两种 1&#xff09;Horizontal 水平方向 子元素Button按照水平方向排列&#xff0c;如果一行排满了自动换下一…

Woody:开源Java应用性能诊断分析工具

核心价值 Woody是一款专注于Java应用性能问题诊断的工具&#xff0c;旨在帮助开发者 定位高GC频率问题&#xff0c;识别内存分配热点分析CPU使用率过高的代码路径追踪接口耗时瓶颈&#xff0c;定位内部操作耗时占比诊断锁竞争问题&#xff0c;支持精准优化针对特定业务接口/请…

《山东棒球》板球比赛规则·棒球1号位

⚾ Baseball vs Cricket 终极科普&#xff5c;规则异同发展史全解&#xff01;Hey sports babes&#xff01;别再傻傻分不清棒球⚾和板球&#xff01;全网最清晰双运动对照指南来啦&#xff5e;⚾ 棒球 Baseball&#xff5c;美式激情风暴Core Goal核心目标击球员&#xff08;Ba…

【游戏开发】Houdini相较于Blender在游戏开发上有什么优劣势?我该怎么选择开发工具?

在游戏开发中&#xff0c;Houdini与Blender的选择需结合项目规模、技术需求和团队资源综合考量。以下是两者的核心优劣势对比及决策建议&#xff1a; 一、核心优劣势对比 Houdini的优势与局限 优势&#xff1a;程序化内容生成的统治力 Houdini的节点系统&#xff08;如VEX语言、…

基于开源AI智能名片链动2+1模式S2B2C商城小程序的用户活跃度提升与价值挖掘策略研究

摘要&#xff1a;本文聚焦于在开源AI智能名片链动21模式S2B2C商城小程序环境下&#xff0c;探讨如何提高用户活跃度并挖掘用户价值。在用户留存的基础上&#xff0c;通过分析该特定模式与小程序的特点&#xff0c;提出一系列针对性的策略&#xff0c;旨在借助开源AI智能名片以及…

《投资-41》- 自然=》生物=》人类社会=》商业=》金融=》股市=》投资,其层层叠加构建中内在的相似的规律和规则

从自然到投资的层层递进中&#xff0c;尽管各领域看似差异巨大&#xff0c;但内在遵循着相似的规律和规则。这些规律体现了“底层逻辑的普适性”&#xff0c;即不同系统在动态平衡、资源分配、信息传递和反馈调节等方面具有共性。以下是关键规律的解析&#xff1a;1. 能量流动与…

VSCode中调试python脚本

VSCode中安装以下插件 ms-python.python&#xff1a;python调试ms-python.vscode-pylance&#xff1a;代码跳转&#xff08;非必要&#xff09; 配置launch.json 在当前工作区&#xff0c;按此路径.vscode\launch.json新建launch.json文件&#xff0c;并配置以下参数&#x…