normal

tangent

bitangent

三者互相垂直。

组成一个tangent space

表示一个点 对于原本位置的偏移(扰动)

考虑到这是为了 normalmap做出虚假的normal来受光

我目前是这么理解的,下面做下去可以印证这个想法

保证同一个平面的顶点的切线向量是一样的

减少光照插值失真

http://www.gamedev.net/topic/320413-calculating-tangent-vectors-for-normal-bump-mappinghelp-again/

http://www.cnblogs.com/olswcsr/archive/2010/12/10/1902338.html

http://www.gamedev.net/topic/347799-mirrored-uvs-and-tangent-space-solved/

http://blog.csdn.net/mike_zw/article/details/6045668

------------------

http://www.cnblogs.com/ThreeThousandBigWorld/archive/2012/07/16/2593892.html

ogre

-------------

这里会产生一个问题是 UV winding order

表现是,模型的normalmap结果 在某一半是反掉的

因为身体对称的部分在同样的uv采样 导致有一半是反的

maya里面tangentspace 里勾选 uv winding order detected或者ignored

得到的tangent数值是一样的 那种不对称的(uv竖向)

得到的binormal数值会改变 detected时uv竖向是对称的 横向是反的

解决方法 dot(cross(normal, tangent), binormal)<0 tangent=-tangent

再用这个tangent去算normal

大概是这个思路

------------------------------------

上面写的矫正 normalmap的方法是不对的

the right solution is:

first we need a matrix (tangent space to world) cuz, the normap normal is in tangent space.

TBN

then mul (normal, TBN)

这样就解决了 normal map normal 对称的地方 反了的问题因为,采样同一块贴图放在不同位置

组成tbn的 三个数据是顶点数据 有时间我会上传 这部分 代码

在github jorge sss  google (separetable subsurface scatter

main.fx 这里面有这部分代码

--------------------------------------------------

又一次更新 :原理见之前的一篇博文吧

是很久之前引用的

http://www.cnblogs.com/minggoddess/archive/2011/04/07/2007637.html

其实就是normal在tangent space 把它用tbn转到world space 就没有这个手性的问题了

在introduction to 3d game programming with directx 10里面有

转载于:https://www.cnblogs.com/minggoddess/p/3876556.html

tangent space /handness相关推荐

  1. [图形学]切向空间(Tangent Space)

    2009年3月17日 阅读评论 发表评论     这个应该算是补遗漏,去年在MSN Space上写过一篇关于凹凸贴图的,当时写了半天其实写的一点也不明白,呵呵,因为有很多细节其实我也没搞太清楚,现在这 ...

  2. 切线空间(Tangent Space)

    1. 线性变换 2. 切线空间(坐标系) 2.1 切线空间的构成 2.2 切线空间中光照计算及其弊端 Reference 1. 线性变换 在掌握切线空间之前我们先来简单了解线性变换与向量空间.矩阵的关 ...

  3. [译]为任意网格计算tangent空间的基向量

    +BIT祝威+悄悄在此留下版了个权的信息说: [译]为任意网格计算tangent空间的基向量 Computing Tangent Space Basis Vectors for an Arbitrar ...

  4. Minkowski space

    In mathematical physics, Minkowski space (or Minkowski spacetime) (/mɪŋˈkɔːfski, -ˈkɒf-/[1]) is a co ...

  5. matlab 降维工具箱

    Matlab Toolbox for Dimensionality Reduction 降维方法包括: Principal Component Analysis (PCA) • Probabilist ...

  6. 流形学习之LLE(LocallyLinearEmbedding)模型

    sklearn.manifold.LocallyLinearEmbedding The sklearn.manifold module implements data embedding techni ...

  7. 麻省理工学院的牛人解说数学体系,你到哪个层次了?

    来源:数学与人工智能 为什么要深入数学的世界 我不否认现在广泛流行的Graphical Model是对复杂现象建模的有力工具,但是,我认为它不是panacea,并不能取代对于所研究的问题的深入的钻研. ...

  8. 麻省理工牛人解说数学体系

    来源:P.Linux's blog与 ima 一.为什么要深入数学的世界 作为计算机的学生,我没有任何企图要成为一个数学家.我学习数学的目的,是要想爬上巨人的肩膀,希望站在更高的高度,能把我自己研究的 ...

  9. 把数据保存到cook_将用户信息保存到Cookie中

    /** * 把用户保存到Cookie * * @param request * @param response * @param member */ private void rememberPwdA ...

  10. Opengl-法线贴图(用来细化表面的表现表现的凹凸)

    我们通过这张图可以看出来,使用了法线贴图的物体表面更有细节更逼真,其实这就是发现贴图的作用,没什么钻牛角尖的. 其实表面没有凹凸的情况是因为我们把表面一直按照平整来做的,要想突出这个表面的凹凸就要用到 ...

最新文章

  1. 【UGV】Arduino Mega2560 获取小车角度信息,传感器JY60
  2. JavaScript面向对象--封装
  3. PAT-乙级-1062 最简分数
  4. python给excel文件加密码,并重新生成文件
  5. linux 程序/usr
  6. 9.jsonp的实现原理
  7. python源码剖析_Python源码剖析 深度探索动态语言核心技术
  8. Ansys最新报告找到阻碍仿真效率提升“元凶”,竟然是……
  9. 闲鱼易用高可扩的文章发布工具建设
  10. 北欧计算机专业出国,留学北欧,哪个国家计算机专业比较好?
  11. 跑跑卡丁车最新等级奖励2016
  12. js中 ‘ ‘==0 为什么等于true?
  13. 头部主播批量被封,直播电商还有未来吗?
  14. 【代码】HTML网站维护更新简易单页源码
  15. 单片机---12---DMX512
  16. 爬虫与反爬虫(斗智斗勇)
  17. php ligerui 导出excel,asp.net+Ligerui实现grid导出Excel和Word的方法
  18. iOS短视频源码音频采集过程中的音效实现
  19. Office 365系列之十五:配置Outlook MAPI方式连接Exchange Online
  20. Excel 表格在线转Markdown 或 HTML 或 LaTeX代码

热门文章

  1. 不同的count用法
  2. 树莓派4b主板特点_树莓派4B的入手操作
  3. CWP控制面板登录异常
  4. bit,byte,b,B,KB的整理
  5. c语言程序设计第07章在线测,《C语言程序设计》第07章在线测试.doc
  6. java 判断标点符号_Java判断中英文符号、标点的实现
  7. 科普 | Cat.1bis 你懂了么
  8. 2022年G3锅炉水处理考试题库及模拟考试
  9. TCP中的RST标志(Reset)详解
  10. 路由器恢复出厂设置后dns服务器未响应,路由器恢复出厂设置后连不上网怎么办?...