法线纹理的拓扑微分性质

拓扑性质,流形映射到平面上,就是拓扑(纹理,展UV)映射,模型像素<->纹理(空间)像素<->切线空间的法线(其他定义在纹理上的属性,比如高度等等)。

微分性质,流形上面局部的弯曲程度,就是每一点的切线空间,模型像素<->切线空间。

拓扑微分可以结合在一起,先将流形映射到平面,然后每一点都有自己的切线空间。

计算光照时,固然流型上面的切丛(每一点都能对应纹理上的切线空间)法线,只需要预计算或者动态计算切线空间,将光线转换或者法线转换到世界空间。

从求解难度上来看,拓扑要更大一些,微分有固定的方法,不过也会遇到有难度的问题,理想的拓扑也是需要微分的支持,

所以微分几何的重要性就体现了出来,拓扑后仍然保角保长,那是very perfect,对于动态纹理寻址就更加重要。

这就要求切线空间在拓扑前后有一定联系,可以参考第一基本形式的保角保长判定条件。

时间: 2024-08-03 06:13:28

法线纹理的拓扑微分性质的相关文章

【Unity Shaders】法线纹理(Normal Mapping)的实现细节

写在前面 写这篇的目的是为了总结我长期以来的混乱.虽然题目是"法线纹理的实现细节",但其实我想讲的是如何在shader中编程正确使用法线进行光照计算.这里面最让人头大的就是各种矩阵运算和坐标系之间的转换,很容易因为坐标系错误而造成光照结果的错误. 我们将要讨论以下几个问题: 为什么法线纹理通常都是偏蓝色的? 在Unity里,法线纹理是需要把"Texture Type"设置成"Normal Map"才能正确显示,为什么? 把"Textur

【Unity Shader】(四) ------ 纹理之法线纹理、单张纹理及遮罩纹理的实现

笔者使用的是 Unity 2018.2.0f2 + VS2017,建议读者使用与 Unity 2018 相近的版本,避免一些因为版本不一致而出现的问题. [Unity Shader](三) ------ 光照模型原理及漫反射和高光反射的实现 [Unity Shader](五) ------ 透明效果之半透明效果的实现及原理 在游戏中,我们除了能看到游戏物体的形体轮廓,还能看到物体的一些具体外观,包括颜色,凹凸等.而实现这一步的就是使用 纹理.与纹理相对应的技术就是 纹理映射技术 ,相当于把一张图

法线贴图——Normal Mapping

对于不曾学过.用过法线贴图的人来说,提到法线贴图,经常会提到的问题是什么是法线贴图?法线贴图用于解决什么问题?法线贴图的原理是什么?本文将就这三个问题阐述本人的一些见解,各位不喜勿喷!!! 谈到法线贴图首先提到的是切线空间,参考网站 http://blog.csdn.net/bonchoix/article/details/8619624 PS:常提到的纹理坐标就是定义在切线空间的,U坐标对应切线空间的T轴,V轴对应切线空间的B轴,顶点法向量N对应切线空间的N轴,模型中每个三角形都有对应的切线空

法线贴图的一些总结

总的来说法线贴图就是一张RGB图记录了XYZ的法线信息,无它,但关键是一个切线空间,推荐以下几篇文章. http://blog.csdn.net/bonchoix/article/details/8619624 http://www.cnblogs.com/shuifenzi/articles/2551364.html http://www.cnblogs.com/jim-game-dev/archive/2016/04/19/5410529.html 摘出文章中一些最关键的知识点: 1.模型顶

NormalMap 法线贴图

法线贴图 存储法线的一张贴图,法线的 xyz 的值被映射成为对应的 RGB 值.即法线的分量由(-1,1)映射成(0,127).法线贴图一般呈蓝色,因为大多数朝向 (0,0,1)的法线被映射成为了 (0,0,127). 切空间(Tangent Space,TBN):纹理空间 切空间是在某一点所有的切向量组成的线性空间.也就是说,在模型每个顶点中,都存在这样的一个切空间坐标系,以模型顶点为圆心,再加上TBN3个轴(Tangent,Binormal,Normal),N是顶点的法线方向,T.B两个向量

相量变换的性质

相量    线性性质        正弦量的线性组合的相量等于各相量的同一线性组合        相量变换是线性变换    微分性质        正弦量对时间的一阶导数等于该正弦量的相量变换乘虚数$j\omega $        $\frac{\mathrm{d}f(t)}{\mathrm{d}t}=\frac{\mathrm{d}}{\mathrm{d}t}\mathrm{Re}[\dot{F}_me^{j\omega\n t}]=\mathrm{Re}[\frac{\mathrm{d}}

【一步步学OpenGL 26】-《法线贴图》

教程 26 法线贴图 原文: http://ogldev.atspace.co.uk/www/tutorial26/tutorial26.html CSDN完整版专栏: http://blog.csdn.net/column/details/13062.html 背景 之前的我们的光线着色器类已经可以达到很不错的效果了,光线效果通过插值计算遍布到整个模型表面,使整个场景看上去比较真实,但这个效果还可以进行更好的优化.事实上,有时插值计算反而会影响场景的真实性,尤其是用材质来表现一些凹凸不平的纹理

关于法线贴图

问题:为什么需要把法线纹理的“Texture Type”设置成“Normal Map”才能正确显示. 回答:这样的设置可以让Unity根据不同平台对纹理进行压缩,通过UnpackNormal函数对法线纹理进行正确的采样,即“将把颜色通道变成一个适合于实时法向映射的格式”. 问题:把“Texture Type”设置成“Normal Map”后,有一个复选框是“Create from grayscale”,这个是做什么用的. 回答:默认是Tangent-Space Normal Map,勾选后就表示

[离散时间信号处理学习笔记] 9. z变换性质

z变换描述 $x[n] \stackrel{\mathcal{Z}}{\longleftrightarrow}X(z) ,\quad ROC=R_x$ 序列$x[n]$经过z变换后得到复变函数$X(z)$,该函数的收敛域为$R_x$ 线性 z变换的线性性质 $ax_1[n]+bx_2[n] \stackrel{\mathcal{Z}}{\longleftrightarrow} aX_1(z)+bX_2(z),\quad ROC\ contains\ R_{x_1}\cap R_{x_2}$ 证明