Unity中Shader法线贴图(下)理论篇

文章目录

  • 前言
  • 一、采样出错的原因
  • 二、切线空间是什么?
    • 切线空间图解:
  • 三、计算方式
    • 1、统一变换到切线空间下进行计算
    • 2、统一变换到世界空间下进行计算
  • 四、一般统一变换到世界空间下的坐标进行计算
    • 1、求M^-1^
    • 2、求出n~w~


前言

这篇文章,主要解决上篇文章中对于法线贴图采样出错的Bug。

  • Unity中Shader法线贴图(上)

一、采样出错的原因

在上篇文章中,我们对法线贴图采样使用的是世界空间下的坐标。但是,我们纹理在制作时,使用的是,切线空间下的坐标,所以会导致贴图采样出错。


二、切线空间是什么?

切线空间(Tangent Space),一个由顶点为原点组合而成的独立的坐标空间。

在这个坐标空间中:

  • X轴代表的是 顶点的切线(Tangent)
  • Y轴代表的是 顶点的副切线(BiTangent),也有别的叫法: 副法线(BiNormal)
  • Z轴代表的是 顶点的法线(Normal)

因此由切线、副切线、法线组成的矩阵也被称为 TBN 矩阵

切线空间图解:

在这里插入图片描述
由图可得:
对于顶点来说:唯一确定的是顶点法线(z轴)。但是,和法线垂直的切线有无数条。
那么,我们需要怎么确定 哪一条切线作为 X轴(顶点切线)和 Y轴(顶点副切线)呢?
所以,我们规定
以纹理UV的 u 坐标方向为X轴(顶点切线)
以 顶点法线(Z轴) 和 顶点切线(X轴) 叉积 得出 顶点副切线(Y轴)

在这里插入图片描述


三、计算方式

计算时,必须在同一空间坐标下计算,不然会出错

1、统一变换到切线空间下进行计算

2、统一变换到世界空间下进行计算


四、一般统一变换到世界空间下的坐标进行计算

在这里插入图片描述

在上图中,在把切线空间下的法线,转化为世界空间下的法线时:
切线变换矩阵我们是已知的、切线空间下的法线我们也是已知的(法线贴图)
所以,求 世界空间下的法线时,最核心的就是求切线变换矩阵的逆矩阵M-1

注意:这里求的 世界空间下的法线 和之前文章中所用的不是同一个法线,之前文章中使用的法线,都是模型顶点世界空间下的法线,这里的时 法线贴图上的法线转化到世界空间后的法线。

1、求M-1

M矩阵有着如下性质:
在这里插入图片描述
图中:
Tangent x :代表切线上的单位向量的X坐标 = 1
Tangent y :代表切线上的单位向量的Y坐标 = 0
Tangent z :代表切线上的单位向量的Z坐标 = 0
BiTangent x :代表副切线上的单位向量的X坐标 = 0
BiTangent y :代表副切线上的单位向量的Y坐标 = 1
BiTangent z :代表副切线上的单位向量的Z坐标 = 0
Normal x :代表法线上的单位向量的X坐标 = 0
Normal y :代表法线上的单位向量的Y坐标 = 0
Normal z :代表法线上的单位向量的Z坐标 = 1

由此可以知道 M 是 单位矩阵,也可以得出 M 是正交矩阵,得出 Mt = M-1

2、求出nw

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Kettle实战】字符串处理及网络请求JSON格式处理

经过大量的kettle操作实践,我们会渐渐掌握一些技巧,大大减轻清洗的工作量。比如在哪里 处理字符串更方便,在哪儿处理更合理都是一个取舍问题。 字符串拼接 MySQL中使用concat(字段1,字段2),但是如果“字段2”为NULL,结…

如何挖掘xss漏洞

如何挖掘xss漏洞 对于如何去挖掘一个xss漏洞我是这样理解的 在实战情况下不能一上来就使用xss语句来进行测试很容易被发现 那这种情况该怎么办呢 打开准备渗透测试的web网站,寻找可以收集用户输入的地方比如搜索框,url框等 发现后寻找注入点 选在输入…

【Q1—45min】

1.epoll除了边沿触发还有什么?与select区别. epoll 是Linux平台下的一种特有的多路复用IO实现方式,与传统的 select 相比,epoll 在性能上有很大的提升。 epoll是一种当文件描述符的内核缓冲区非空的时候,发出可读信号进行通知&…

Find My蓝牙耳机|苹果Find My技术与耳机结合,智能防丢,全球定位

蓝牙耳机就是将蓝牙技术应用在免持耳机上,让使用者可以免除恼人电线的牵绊,自在地以各种方式轻松通话。自从蓝牙耳机问世以来,一直是行动商务族提升效率的好工具。正是应为蓝牙耳机小巧无线,人们越来越喜欢随身携带蓝牙耳机出门&a…

人民网_领导留言板data2022年-2023年

人民网_领导留言板data_2022年全年-2023年11月数据_全国任意城市 包含且不限于:留言ID,留言对象,留言标题,种类名,领域名,目前状态,留言日期,留言内容,回复机构,回复时间,回复内容,满意度,解决力度,沟通态度,办理时效 对于有需要爬取领导留言板的朋友,…

【Qt开发流程之】布局管理

介绍 一个界面呈现,如果要让用户有更好的观感,布局必不可少。 【Qt之布局】QVBoxLayout、QHBoxLayout、QGridLayout、QFormLayout介绍及使用 链接: https://blog.csdn.net/MrHHHHHH/article/details/133915208 qt布局类图: Qt布局是Qt图形…

echarts的使用

1. 普通版 其实主要就是option1&#xff0c;option1就是画的图 echats不能响应刷新&#xff0c;要想实时刷新监听刷新的值重新调用一下方法即可 html <div class"echart" style"width: 100%;height: calc(100% - 130px)" ref"main1">&l…

生物医药行业密钥管理系统特点 安当加密

生物医药行业密钥管理系统的特点主要表现在以下几个方面&#xff1a; 安全性&#xff1a;生物医药行业涉及的数据往往具有极高的私密性和敏感性&#xff0c;因此&#xff0c;密钥管理系统必须具备极高的安全性。这包括对密钥的生成、存储、传输和使用等各个环节进行严格的管理和…

广州一母婴店因设置0元购导致关店

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 广州的一家母婴用品网店Minitutu因双十一优惠券设置错误&#xff0c;导致所有商品变成0元购买&#xff0c;引发消费者疯狂抢购&#xff0c;15万多单订单中有800多万元的损失。店家无奈之下只能暂停营…

亚马逊,shopee,lazada自养号测评:提高店铺曝光,增加产品销量

如何在较短的时间内让自己的店铺排名升高&#xff0c;提高产品销量&#xff0c;除了依靠选品和广告之外&#xff0c;亚马逊测评 在店铺的运营中也是必不可少的环节。 自养号测评对亚马逊卖家来说&#xff0c;是运营店铺的重要手段之一。一个产品想要有更好的曝光、更高的转化率…

优卡特脸爱云一脸通智慧管理平台权限绕过漏洞复现【CVE-2023-6099】

优卡特脸爱云一脸通智慧管理平台权限绕过漏洞复现【CVE-2023-6099】 一、 产品简介二、 漏洞概述三、 影响范围四、 复现环境五、 漏洞复现手动复现自动化复现(小龙POC开源) 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信…

OSCP系列靶场-Esay-DC-1

目录 总结 准备工作 信息收集-端口扫描 目标开放端口收集 目标端口对应服务探测 信息收集-端口测试 22-SSH端口的信息收集 22-SSH端口版本信息与MSF利用(pass) 22-SSH手动登录尝试(失败) 22-SSH弱口令爆破(爆破着玩) 80-HTTP端口的信息收集 信息收集-网站指纹 漏洞…

水库大坝安全监测系统守护水利工程安全的坚实后盾

WX-WY1 随着社会经济的发展和科技的进步&#xff0c;水利工程的安全问题越来越受到人们的关注。水库大坝作为水利工程的重要组成部分&#xff0c;其安全状况直接关系到周边地区人民的生命财产安全和生态环境。因此&#xff0c;建立一个高效、可靠的水库大坝安全监测系统至关重要…

【2021集创赛】NI杯三等奖:基于IECUBE-3100的高精度数模转换器设计及自动化测试方案

本作品参与极术社区组织的有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~活动。 杯赛题目&#xff1a;DAC芯片测试 参赛要求&#xff1a;本科生组 赛题内容&#xff1a; NIC公司最近正在竞争一个8bit DAC芯片设计的订单机会&#xff0c;需要按照甲方需求尽快提交芯片的设…

二百零四、Flume——登录监听窗口报错Ncat: bind to :::44444: Address already in use. QUITTING.

一、目的 Flume安装好后测试开启监听窗口44444&#xff0c;结果报错Ncat: bind to :::44444: Address already in use. QUITTING. 二、报错详情 Ncat: bind to :::44444: Address already in use. QUITTING. 三、报错原因 经过分析发现&#xff0c;44444窗口已经被占用 […

在UOS系统中编译CEF源码

一、下载cef代码 git clone gitbitbucket.org:chromiumembedded/cef.git 二、执行自动下载代码 由于chromium的代码很大&#xff0c;至少需要准备大概80G的硬盘&#xff01;&#xff01;&#xff01;整个代码量太大还是多准备一些空间吧&#xff08;强烈建议使用固态硬盘保存否…

如何在外部数据库中存储空间化表时使用Mapinfo_mapcatalog

开始创建地图目录表之前 您将使用EasyLoader在要使用的数据库中创建地图目录表。EasyLoader与MapInfo Pro一起安装。 &#xff08;工具“DBMS_Catalog”不再随MapInfo Professional 64位一起提供&#xff0c;因为它的功能可以在EasyLoader工具中找到。&#xff09; ​ 注&…

如何在MapInfo Pro中访问WMS数据?

从Web地图服务检索地图数据 将WMS服务器添加到MapInfo Pro后&#xff0c;用户可以从中检索地图数据。请记住&#xff0c;Web地图服务是一项新技术&#xff0c;您正在寻找的地图可能不适合所需的地理位置。 此外&#xff0c;所提供的数据由服务器确定。当将WMS数据作为工作空间的…

MODBUS转PROFINET网关TS-180连接西门子PLC和工业称重仪表

项目 随着科技的高速发展&#xff0c;工业自动化行业对日益多样的称重需求越来越高&#xff0c;上海某公司在国内的一个 工业自动化项目中&#xff0c;监控中心系统需要远程实时采集工业称重仪表测量的各种称重参数。该系统使用的是 西门子 S7-300 PLC&#xff0c;支持 PROFINE…

一书了解国产操作系统openEuler

操作系统是计算机之“魂” 数字化、智能化正在深刻地改变着我们的生活方式&#xff0c;也深刻地影响着世界格局。 支撑数字化、智能化的关键是数字基础设施&#xff0c;主要涉及数据中心、互联网、物联网、人工智能等新一代信息技术。 数字基础设施已成为保障产业格局、经济…