博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解法线贴图
阅读量:6919 次
发布时间:2019-06-27

本文共 628 字,大约阅读时间需要 2 分钟。

说到法线贴图,我们知道,这货可以用显卡将一个简单的近似模型(低模)渲染出表面很细腻的复杂模型(高模)的效果。那么,它到底是什么原理呢?

 

首先,学法线贴图前,最好先理解光照模型,不过不理解也没关系。

我们先看一个简单的漫反射模型——兰伯特定律

简化一下,好写些,呵呵。

cdiffuse = (c  m) * max(0, n  I)

模型上某个具体的点,在屏幕上会对应一个像素。上面这个公式用于计算这个点对应的像素是什么颜色。

cdiffuse 漫反射颜色 计算结果
c
平行光的颜色 这个其实很复杂,先简化成平行光的颜色
m
模型材质的颜色 可设定的值
n 此点的法线  
I 光照方向 具体点的世界坐标 - 光源的世界坐标

别去管这个公式是怎么算的,我们关心 c m n I 四个参数。其中 c m I 是固定值,只有 n 是变化的。

 

重要的事情说三遍:

不管你是高模还是低模,结果都只与 n 有关。

不管你是高模还是低模,结果都只与 n 有关。

不管你是高模还是低模,结果都只与 n 有关。

 

那么,我们用一个低模近似的表达高模的样子,然后计算低模上每一个点映射到高模上的点的法线 n,并记录在一张位图中——这就是法线贴图了。

渲染步骤中,在上述光照模型计算时,将 n 低模表面的法线替换为法线贴图中的法线,这样就可以得到近似的高模的效果了。

 

就酱

转载于:https://www.cnblogs.com/softcat/p/6268311.html

你可能感兴趣的文章
VS2013中Python学习笔记[Django Web的第一个网页]
查看>>
数据库主体在该数据库中拥有架构,无法删除解决方法
查看>>
linux编译安装MySQL
查看>>
iOS xcode6.0使用7.1运行程序 iphone5上下有黑条
查看>>
2014年市场需求排名前10的编程语言 - 生命的延续是 BI
查看>>
MYSQL 查看表上索引的 1 方法
查看>>
android中Canvas使用drawBitmap绘制图片
查看>>
Java虚拟机工作原理具体解释
查看>>
fuel Explain
查看>>
Caused by: javax.xml.bind.JAXBException: standardPremiumUpdateMessageDTO is not a valid property on
查看>>
Android SDK Manager 无法更新SDK
查看>>
Solr4.0使用
查看>>
Leetcode--Reverse Nodes in k-Group
查看>>
linux 信号处理 二 (信号的默认处理)
查看>>
Isilon
查看>>
Deep Learning论文笔记之(一)K-means特征学习
查看>>
java 正则匹配空格字符串 正则表达式截取字符串
查看>>
Web系统大规模并发——电商秒杀与抢购
查看>>
为 IIS 7.0 配置 <system.webServer>
查看>>
hive 字段名称显示
查看>>