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里面有

tangent space /handness的更多相关文章

  1. 引擎设计跟踪(九.14.2a) 导出插件问题修复和 Tangent Space 裂缝修复

    由于工作很忙, 近半年的业余时间没空搞了, 不过工作马上忙完了, 趁十一有时间修了一些小问题. 这次更新跟骨骼动画无关, 修复了一个之前的, 关于tangent space裂缝的问题: 引擎设计跟踪( ...

  2. tangent space与object space

    3d渲染每个网格(Mesh)的面都可配一个材质(Material),要想在一个面上显示出更多的细节,除了模型做的更精致,还可以使用法线贴图(Normal Texture). 法线向量(Normal V ...

  3. Normal Map中的值, Tangent Space, 求算 Tangent 与 Binormal 与 TBN Matrix

      - Normal Map中的值 -   有没有想过,Normal Map(法线贴图)为什么看上去都是“偏蓝色”的?这是因为,在map中存储的值都是在Tangent Space(切空间)下的.比如, ...

  4. 切线空间(Tangent Space)法线映射(Normal Mapping)【转】

    // 请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 切线空间(Tangent Space) 切换空间,同局部空间.世界空间等一样,是3D图形学中众多的坐标系之一.切 ...

  5. [转]Normal Map中的值, Tangent Space, 求算 Tangent 与 Binormal 与 TBN Matrix

    原文出处 https://www.cnblogs.com/lookof/p/3509970.html - Normal Map中的值 -   有没有想过,Normal Map(法线贴图)为什么看上去都 ...

  6. Tangent space(切线空间)

    https://en.wikipedia.org/wiki/Frenet%E2%80%93Serret_formulas The tangent, normal, and binormal unit ...

  7. 切线空间(Tangent Space)

    http://download.autodesk.com/global/docs/maya2012/zh-cn/index.html?url=files/Polygons_nodes_Tangent_ ...

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

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

  9. 【译】Unity3D Shader 新手教程(5/6) —— Bumped Diffuse Shader

    本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 动机 如果你满足以下条件,我建议你阅读这篇教程: 你想学习片段着色器(Fragment Shader). 你想实现 ...

随机推荐

  1. C#代码配置IIS 操纵IIS

    前言: IIS到目前经历了四个版本分别为 IIS4.0  IIS5.0 IIS6.0 IIS7.0,其中IIS6.0 IIS7.0是在5.0的安全问题的基础上获得的发展,目前为止.6.0版本以后的都是 ...

  2. FastSocket学习笔记~制定自已的传输协议~续~制定基于FastSocket的协议

    FastSocket这个东西上次我已经说过,它使用简单,功能强大,扩展灵活,目前在新浪的生产环境中已经被广泛使用,所以它的性能,安全等各方面我们绝对可以信赖,今天我们来说一个话题,和上一讲有关,这次我 ...

  3. 细说SQL 连接

          连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句       也可以包含搜索条件,以进一步筛选连接条件所选的行.         ...

  4. php面向对象的特性:OOP的继承

    1.关键字extends 2.PHP只支持单继承,不支持方法重载 /*使用protect 调用字段*/ class Computer{ //父类的字段 protected $_name="联 ...

  5. 《JavaScript高级程序设计》心得笔记-----第四篇章

    第十六章 1.  跨文档消息传送: postMessage("消息", "发送消息的文档所在域") 2.  拖放事件: 1)   拖动某元素会依次触发:drag ...

  6. 6.struts登陆页面的演示

    1.创建一个web project "Struts_1" 添加struts的jar包 --在项目文件右键->myeclipse->add struts...       ...

  7. 【Qt】Qt之进程间通信(Windows消息)【转】

    简述 通过上一节的了解,我们可以看出进程通信的方式很多,今天分享下如何利用Windows消息机制来进行不同进程间的通信. 简述 效果 发送消息 自定义类型与接收窗体 发送数据 接收消息 设置标题 重写 ...

  8. JS重写alert,保证弹窗错误的友好性

    // ------------------------------------------------------------- // 重写alert,保证弹窗错误的友好性 var j_oldAler ...

  9. [大牛翻译系列]Hadoop(10)MapReduce 性能调优:诊断reduce性能瓶颈

    6.2.3 Reduce的性能问题 Reduce的性能问题有和map类似的方面,也有和map不同的方面.图6.13是reduce任务的具体的执行各阶段,标识了可能影响性能的区域. 这一章将介绍影响re ...

  10. 自动设置iframe大小的jQuery代码

    自动设置iframe的宽度,如何用jquery来实现呢? 代码: <iframe src="main_folder.aspx" class="global_main ...