【从UnityURP开始探索游戏渲染】专栏-直达

基础光照模型‌

‌标准光照模型(Standard Lighting Model)‌

  • 定义‌:传统光照计算的框架,通常包含漫反射、镜面反射和环境光三部分。
  • 特点‌:非物理经验模型,计算简单但缺乏真实感。
  • 从属关系‌:
    • 包含 ‌漫反射‌ 和 ‌高光反射
    • 是 ‌Phong模型‌ 和 ‌Blinn-Phong模型‌ 的基础框架。

‌漫反射(Diffuse Reflection)‌

  • 定义‌:光线均匀散射到所有方向(如哑光表面)。
  • 模型‌:
    • 兰伯特模型Lambertian Model‌:
      • 公式:I = k_d * (N·L)
      • 特点:与视角无关,仅依赖法线和光照方向。

‌高光反射(Specular Reflection)‌

  • 定义‌:光线集中反射(如镜面或金属光泽)。
  • 模型‌:
    • Phong模型‌:
      • 公式:I = k_s * (R·V)^n
      • 特点:基于反射向量(R)和视角(V)计算高光。
    • Blinn-Phong模型‌:
      • 公式:I = k_s * (N·H)^n
      • 特点:用半角向量(H)替代反射向量,计算更高效。

‌物理基础模型‌

‌BRDF(Bidirectional Reflectance Distribution Function)‌

  • 定义‌:描述入射光与出射光关系的数学函数,是PBR的理论基础。
  • 特点‌:
    • 满足能量守恒(反射率≤1)。
    • 包含 ‌漫反射‌ 和 ‌镜面反射‌ 的物理计算。
  • 从属关系‌:
    • 是 ‌PBR‌ 的核心数学工具。
    • 包含 ‌GGX‌(法线分布函数)和 ‌菲涅尔效应‌。

‌GGX(Trowbridge-Reitz分布)‌

  • 定义‌:一种微表面法线分布函数(NDF),用于PBR的镜面反射计算。
  • 特点‌:
    • 更真实模拟粗糙表面的高光拖尾效果。
    • 公式:D(m) = α² / [π((N·m)²(α²-1)+1)²]
  • 从属关系‌:
    • 属于 ‌BRDF‌ 的组成部分。
    • 是 ‌Cook-Torrance BRDF‌ 的核心部分。

‌菲涅尔效应(Fresnel Effect)‌

  • 定义‌:光线在不同角度下反射率变化的物理现象(如玻璃边缘更反光)。
  • 特点‌:
    • 金属材质反射率随角度变化显著。
    • 非金属材质(如塑料)反射率较低。
  • 从属关系‌:
    • 是 ‌BRDF‌ 的组成部分。
    • 在 ‌PBR‌ 中用于计算镜面反射。

‌高级渲染框架‌

‌PBR(Physically Based Rendering)‌

  • 定义‌:基于物理的渲染流程,使用BRDF等物理模型模拟真实光照。
  • 特点‌:
    • 能量守恒(无“超亮”高光)。
    • 参数化(金属度、粗糙度)。
  • 从属关系‌:
    • 基于 ‌BRDF‌ 和 ‌微表面理论‌。
    • 包含 ‌GGX‌ 和 ‌菲涅尔效应‌。
    • 替代传统 ‌标准光照模型‌。

‌关系层级图‌


‌关键区别‌

概念物理性计算复杂度应用场景
标准光照模型实时渲染(如老游戏)
BRDF电影级渲染
PBR现代游戏/3D设计

‌总结‌

  • 传统模型‌(如Phong/Blinn-Phong)是经验公式,适合快速渲染。
  • BRDF‌ 是物理模型,为PBR提供数学基础。
  • PBR‌ 是完整流程,整合BRDF、GGX、菲涅尔等实现真实感渲染。

【从UnityURP开始探索游戏渲染】专栏-直达
(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

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

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

相关文章

MCU上跑AI—实时目标检测算法探索

MCU上跑实时目标检测算法 前几年一直忙着别的事情没有在技术分享上下功夫, 这段时间稳定下来就想和几个志同道合的朋友做点有意义的事情, 于是乎就使用MCU做了个与AI有识别相关的 “小玩意儿”. 本人负责嵌入式端相关的编码, AI相关的工作由好友 AgeWang 负责. 这儿把一些成果给…

SpringBoot 整合 RabbitMQ 的完美实践

引言: 本文总字数:约 9200 字 预计阅读时间:38 分钟 为什么 RabbitMQ 是消息中间件的优选? 在分布式系统架构中,消息中间件扮演着 "交通枢纽" 的角色,负责协调各个服务之间的通信。目前主流的消息中间件有 RabbitMQ、Kafka 和 RocketMQ,它们各具特色: Kafka…

nestjs 发起请求 axios

1、下载npm i --save nestjs/axios axios2、全局配置import { HttpModule } from nestjs/axios;Global() Module({imports: [HttpModule.registerAsync({inject: [ConfigService],useFactory: async (configService: ConfigService) > {return {timeout: configService.get(…

将 Logits 得分转换为概率,如何计算

场景:动物识别,输入一张28*28的图像,模型输出属于 猫、狗、鸟 哪个类型。需求:假设模型 ​​Logits(模型在每个类别的置信度得分) 输出为​​:[猫: 3.2, 狗: 1.5, 鸟: -0.8]。计算 ​​Softmax …

【Qt】bug排查笔记——QMetaObject::invokeMethod: No such method

问题如题目所示:QMetaObject::invokeMethod: No such method xxxx,在网上好一顿查,又将查到的资料喂给了 Ai,才最终将问题解决,特此记录下。 一、问题背景 在做公司项目时,使用了插件的方式开发。主程序加载…

Spring Boot手写10万敏感词检查程序

使用Spring Boot手写10万敏感词检查程序 本文将介绍如何使用Spring Boot构建一个高效的敏感词检查系统,能够处理多达10万个敏感词的检测需求。我们将使用DFA(Deterministic Finite Automaton)算法来实现高效匹配,并提供RESTful API接口。 实现步骤 1. 创建Spring Boot项…

零构建的快感!dagger.js 与 React Hooks 实现对比,谁更优雅?

“Add Tags” 技术方案并行对比:React Hooks vs dagger.js(含核心 JS 代码) 源码: React Hooks:https://codepen.io/prvnbist/pen/jJzROe?editors1010dagger.js:https://codepen.io/dagger8224/pen/ZErjzw…

矩池云中LLaMA- Factory多机多卡训练

LLaMA Factory 是一款开源低代码大模型微调框架,集成了业界最广泛使用的微调技术,支持通过 Web UI 界面零代码微调大模型,目前已经成为开源社区内最受欢迎的微调框架之一。但是在矩池云上如何使用LLaMA-Factory多机多卡训练模型呢&#xff1f…

Nginx的反向代理与正向代理及其location的配置说明

一、Nginx中location匹配优先级Nginx中location匹配优先级location支持各种匹配规则,在多个匹配规则下,Nginx对location的处理是有优先级的,优先级高的规则会优先进行处理;而优先级低的规则可能会最后处理或者不进行处理。注意&am…

神经网络正则化三重奏:Weight Decay, Dropout, 和LayerNorm

正则化是机器学习中防止模型过拟合、提升泛化能力的核心技术。Weight Decay、Dropout和LayerNorm是三种最常用的方法,但它们的工作原理和首要目标截然不同。下面的流程图揭示了它们的核心区别与联系: #mermaid-svg-vymek6mFvvfxcWiM {font-family:"…

两台电脑通过网线直连共享数据,设置正确,却互相ping不通的解决方法

因为某些原因,需要两台电脑互传资源,但是某台电脑可能无法连接外网。如果手头有根网线,很容易想到通过一根网线连接两台电脑互传数据。 这里先说一下基本的设置: 两台电脑最好都关闭防火墙;两台电脑都打开专用网络和公…

面试新纪元:无声胜有声,让AI成为你颈上的智慧伙伴

面试,无论是对于面试官还是求职者,都像一场无声的战争。 一方要精准识人,一方要完美自荐;一方怕问不到点子上,一方怕答不到心坎里。 紧张、遗忘、表达失误、准备不足……这些问题几乎每个人都经历过。 有没有一种方…

qt-C++笔记之QtDesigner-Creator按钮图标与样式

qt-C笔记之QtDesigner-Creator按钮图标与样式 整理:如何用 .qrc 管理资源、在 Designer/Creator 中为 QPushButton 设置图标(资源或系统主题),以及用样式表调整文字样式。涵盖 C/Qt 与 PySide/PyQt;Linux 桌面优先&am…

maven 常用指令

Maven 是 Java 项目构建和依赖管理的得力助手。这里为你总结了一些常用指令,希望能帮你提升开发效率。下面这个表格汇总了 Maven 最核心和常用的一些命令:命令主要功能典型使用场景mvn clean清理项目,删除 target 目录及其所有编译输出文件。…

# pdf.js完全指南:构建现代Web PDF查看与解析解决方案

在当今Web开发中,实现高质量的PDF查看功能一直是前端开发者面临的挑战之一。作为最受欢迎的JavaScript PDF库,pdf.js已经成为解决这一问题的行业标准。由Mozilla开发并维护的pdf.js项目,通过纯JavaScript实现PDF解析与渲染,彻底改…

高效对象属性复制工具

日常编程中,经常会碰到对象属性复制的场景,比如 VO、DTO、PO、VO 等之间的转换,关于什么是VO、DTO、PO、VO 等可以看上篇文章,VO、DTO、PO、VO 等对象具体有哪些方式可以使用呢? set/get 方式 性能最好的方式&#x…

大疆图传技术参数对比 你了解多少?

无人机是现代航空技术与智能控制技术结合的产物,已从军事领域广泛渗透至民用场景,成为推动各行业效率升级的关键工具。无人机的全称为 “无人驾驶航空器(Unmanned Aerial Vehicle,简称 UAV)”,简言之&#…

Redis 缓存热身(Cache Warm-up):原理、方案与实践

在 Redis 缓存架构中,“缓存热身”是指在系统正式提供服务前(如重启、扩容后),主动将热点数据加载到 Redis 中的操作。其核心目标是避免**缓存穿透**(请求直达数据库)和**缓存雪崩**(大量请求同…

基于SpringBoot的大学生就业招聘系统

1. 在线演示: 后台:http://springbootiv1oo.xiaobias.com/springbootiv1oo/admin/dist/index.html 前台:http://springbootiv1oo.xiaobias.com/springbootiv1oo/front/index.html 管理员:abo/abo 用户:用户1/123456、…

Java反序列化漏洞揭秘:从原理到攻击实战

一、背景 熟悉接口开发的同学一定知道,能将数据对象很轻松的实现多平台之间的通信、对象持久化存储,序列化和反序列化是一种非常有效的手段,例如如下应用场景,对象必须 100% 实现序列化。 DUBBO:对象传输必须要实现序…