【shaderforge学习笔记】 Normal(法线贴图)通道

本文详细介绍了Shaderforge的Normal通道,探讨法线贴图技术,包括其原理、制作方法和在Unity中的应用。通过理解法线贴图在切线空间中的作用,学习如何自定义Unity Shader实现法线贴图,以模拟物体表面的凹凸效果,提升图形质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Shaderforge Normal通道

一、官方介绍

这里写图片描述
normal通道输入切线空间中的法线方向,你可以连接法线贴图或者法向量到该通道。
用于使用光照的明暗模拟凹凸效果。

二、通道的输入

Normal通道输入的数据为存储着法线信息的法线贴图
这里写图片描述

三、 介绍法线贴图技术

想要模拟物体表面的凹凸效果,我们可以在建模时增加面,但这样一来渲染效率会下降。法线贴图技术就是一种不增加模型面数,而是靠光照的明暗来表现凹凸感的方法。

法线贴图技术原理

怎样利用法线贴图记录一个平面或者说是一个贴图的凹凸情况呢?
我们知道,物体表面产生明暗变化的直接原因,就是光线照射角度的不同,光线垂直于平面的地方就亮,光线斜射到平面的地方就暗,光线照不到的地方就更暗(应该是黑色,但是由于环境光照所以不会有阴影是真正的黑色)。

表示光线射向平面的角度时通常使用光线和该点法线角度来表示。这也就意味着,如果我们将一个贴图上所有点的法线记录起来的话,就不难再利用这些信息实现后期的假的凹凸效果了。
记录这些法线的载体就被我们称为法线贴图。

光线方向越靠近法线,越亮,反之则越暗。(用N点乘L来展现法线与灯光的朝向关系)

四、介绍法线贴图

一条法线是一个三维向量,一个三维向量由X、Y、Z等3个分量组成,于是人们想出了一个聪明的方法,就是以这3个分量当作红绿蓝3个颜色的值存储,这样的话就生成一张新的贴图了,这就是法线贴图的来历。

线贴图其实并不是真正的贴图,所以也不会直接贴到物体的表面,它所起的作用就是记录每个点上的法线的方向。所以这个贴图如果看起来也会比较诡异,经常呈现一种偏蓝紫色的样子。

法线贴图偏蓝紫色:因为法线经常是朝着Z轴的,Z映射到贴图的B(Blue)通道,因此发现贴图偏蓝。

1. 法线信息存入正常贴图

正常贴图: 存储颜色信息,有四个通道(R,G,B,A) ,每一个通道值得范围是[0,1]。
向量的取值范围是[-1,1],颜色的取值范围是[0,1],因此我们需要做一个从[1,1]到[0,1]的映射,将向量信息存入正常的贴图把它变成法线贴图。

pixel= \frac{normal+1}{2}

这样我们就获取到了法线贴图: 存储法线向量信息,有四个通道(x,y,z,w)

2. 从法线贴图获取法线向量

从法线贴图获取法线向量的方法正好是将法线信息存入贴图的逆过程:
使用Normalmap的时候

normal = pixel\times 2-1

3. 模型空间法线贴图和切线空间法线

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值