ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

凹凸映射和法线纹理

2021-07-11 15:02:07  阅读:307  来源: 互联网

标签:法线 映射 normal 切线 xyz 纹理 凹凸 空间


凹凸映射

凹凸映射就是通过一些特殊的纹理来增加信息量,通过这些附加信息来修改模型表面的法线

有两种实现方法:

  • 高度纹理
  • 法线纹理

法线纹理

法线纹理直接存储了表面法线,本质就是将法线转换成了颜色存储了起来,算是一种数据可视化了

值得注意的是法线纹理中的法线和模型中法线一点关系都没有,就如球体的法线都是过球心向外的射线,而法线纹理可以由你自己决定(因为是额外的调整信息)


法线的 xyz分量都在 [-1,1] 之间,而像素的(颜色)分量在 [0,1] 之间

所以存储时需要简单的映射

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

从法线纹理读取数据后,逆映射获取法线

\[nomal = 2*pixel-1 \]


法线纹理分为两种:模型空间下的法线纹理、切线空间下的法线纹理

模型空间下的法线纹理
模型空间下的法线纹理五颜六色,所有法线共用一个模型坐标系,朝各个方向的法线都有,映射后颜色差异极大

映射后颜色差异极大

切线空间下的法线纹理

切线空间是对每个顶点来说的
坐标原点是顶点本身,z 轴是顶点本身(即模型)的法线方向,x 轴是顶点的切线方向,y 轴(又叫副切线)可由其他两轴叉积出来,副切线的方向由切线的w分量决定

如果顶点没有凹凸效果,即当前顶点在切线空间中的法线就是 z 轴本身(0, 0, 1),映射后的为RGB(0.5, 0.5, 1) 浅蓝色
由于凹凸效果一般只要对原法线做微小的变化,所以切线空间下的法线纹理一般都有大面积的蓝色,如下图:

大面积蓝色

两种法线纹理的优缺点

模型空间:更直观,突变较少,不可压缩
切线空间:可压缩(z可由xy推导),

一般使用切线空间下的法线纹理

切线空间下对切线空间的法线纹理的使用

模型空间到切线空间的转换
将光源方向和视角方向转换至切线空间计算

\[假设切线空间下的矢量坐标(a,b,c,0)\\ 即ax_t+by_t+cz_t\\ 每个轴由模型空间下的xyz定义的\\ a( Model_{tangent}.xyz)+b( Model_{binormal}.xyz)+c( Model_{normal}.xyz)\\ (x_0,y_0,z_0)=(a+b+c)x+(a+b+c).y+(a+b+c).z\\ 从切线空间到模型空间的矩阵 \left[ \begin{matrix} |&|&|\\tangent.xyz&binormal.xyz&normal.xyz\\|&|&|\\ \end{matrix} \right] \]

\[模型空间到切线空间的矩阵就是上面的逆矩阵\\ \left[ \begin{matrix} ——tengent.xyz——\\——binormal.xyz——\\——normal.xyz——\\ \end{matrix} \right] \]

推导 z 值
由于法线都是单位向量,利用三维的勾股定理可求出 z

举个例子 假设读取到上面的RGB(0.5, 0.5 ,1)

如果有压缩就是不存储 z,即读取到(0.5, 0.5)

\[先逆映射 \\ normal=pixel*2-1=(0, 0) \\ //x^2+y^2=(x, y)·(x,y)\\ z=sqrt(1.0-dot(normal.xy, normal.xy))=1.0\\ normal(0,0,1.0) \]

到这里就已经获取了切线空间下所有光照计算有关的矢量了

标签:法线,映射,normal,切线,xyz,纹理,凹凸,空间
来源: https://www.cnblogs.com/-Mirror-/p/14998629.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有