法线的空间变换的原理

一、法线的空间变换原理(源于Shader入门精要中介绍:)
在这里插入图片描述在这里插入图片描述

由此得到三个重要公式:

1、如果要对法线做空间转换,需要法线向量右乘矩阵的逆转置矩阵。

2、如果是正交矩阵,则直接右乘转换矩阵:NB=MA->BNA
(注:正交矩阵M定义是MTM=I,即M的各行向量为相互垂直的单位向量,各列向量也是互相垂直的单位向量)
3、如果不是正交矩阵,但是统一缩放矩阵,则可以直接右乘转换矩阵和缩放系数的倒数:NB=(MA->BNA)/k

二、关于利用切线空间TBN进行法线转换:

假设已知切线空间TBN,切线空间的法线Nt,计算世界空间下的法线Nw?
Nw = TBN * Nt = Nt * TBNT;

Ps1:Unity/Unreal用的是列矩阵,所以float3x3(T,B,N)所构造的是其实是TBNT,所以要用右乘。
Ps2:不清楚是行主还是列主矩阵的引擎,Nw = float3(T * Nt, B * Nt, N * Nt)总是没错的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值