tangent space /handness
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的更多相关文章
- 引擎设计跟踪(九.14.2a) 导出插件问题修复和 Tangent Space 裂缝修复
由于工作很忙, 近半年的业余时间没空搞了, 不过工作马上忙完了, 趁十一有时间修了一些小问题. 这次更新跟骨骼动画无关, 修复了一个之前的, 关于tangent space裂缝的问题: 引擎设计跟踪( ...
- tangent space与object space
3d渲染每个网格(Mesh)的面都可配一个材质(Material),要想在一个面上显示出更多的细节,除了模型做的更精致,还可以使用法线贴图(Normal Texture). 法线向量(Normal V ...
- Normal Map中的值, Tangent Space, 求算 Tangent 与 Binormal 与 TBN Matrix
- Normal Map中的值 - 有没有想过,Normal Map(法线贴图)为什么看上去都是“偏蓝色”的?这是因为,在map中存储的值都是在Tangent Space(切空间)下的.比如, ...
- 切线空间(Tangent Space)法线映射(Normal Mapping)【转】
// 请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 切线空间(Tangent Space) 切换空间,同局部空间.世界空间等一样,是3D图形学中众多的坐标系之一.切 ...
- [转]Normal Map中的值, Tangent Space, 求算 Tangent 与 Binormal 与 TBN Matrix
原文出处 https://www.cnblogs.com/lookof/p/3509970.html - Normal Map中的值 - 有没有想过,Normal Map(法线贴图)为什么看上去都 ...
- Tangent space(切线空间)
https://en.wikipedia.org/wiki/Frenet%E2%80%93Serret_formulas The tangent, normal, and binormal unit ...
- 切线空间(Tangent Space)
http://download.autodesk.com/global/docs/maya2012/zh-cn/index.html?url=files/Polygons_nodes_Tangent_ ...
- [译]为任意网格计算tangent空间的基向量
+BIT祝威+悄悄在此留下版了个权的信息说: [译]为任意网格计算tangent空间的基向量 Computing Tangent Space Basis Vectors for an Arbitrar ...
- 【译】Unity3D Shader 新手教程(5/6) —— Bumped Diffuse Shader
本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 动机 如果你满足以下条件,我建议你阅读这篇教程: 你想学习片段着色器(Fragment Shader). 你想实现 ...
随机推荐
- oracle 数据库导入导出
要把公司的数据库导入到自己的电脑上(都需要再命令窗口下输入指令) 导出数据库的基本代码: exp zj_user_kf/oracle@tzsw_4 file=d:\test3.dmp full=y 导 ...
- flume+kafka (分区实现 默认单分区) (二)
这篇文章主要在上一篇文章的基础上讲一下 如何自定义flume到kafka的分区 上一节中从下面的地址下载了一个源码 https://github.com/beyondj2ee/flumeng-kafk ...
- Python实现Linux下文件查找
import os, sys def search(curpath, s): L = os.listdir(curpath) #列出当前目录下所有文件 for subpath in L: #遍历当前目 ...
- Vim保存文件命令 ":wq" 与 ":x" 的区别
CSDN转载 [1] Vim是Unix/Linux系统最常用的编辑器之一,在保存文件时,我通常选择":wq",因为最开始学习vim的时候,就只记住了几个常用的命令:也没有细究命令的 ...
- Mysql表基本操作
一. 创建表的方法 语法:create table 表名( 属性名数据类型完整约束条件, 属性名数据类型条完整约束件, ......... 属性名数据类型 ); (1)举例:1 create tabl ...
- 【Qt】Qt环境搭建(Qt Creator)【转】
简述 上一节中介绍了如何进行Qt和Visual Studio的下载安装,随后演示了如何将Qt集成到Visual Studio中,并完成了我们第一个Qt小程序-Hello World.下面主要讲解如何利 ...
- CDH JPS 出现没有名字的进程
jps 时出现没有名字的进程 或者process information unavailable 把服务关掉,执行一下 rm -rf /tmp/hsperfdata_* 再重启就好了.
- Linux 下常用的压缩,解压方法
压缩命令: tar.gz 格式: tar -zcvf 自定义压缩文件名.tar.gz 被压缩文件名 zip 格式: zip -r 自定义压缩文件名.zip 被压缩文件名 如果要压缩整个文件夹,也 ...
- jQuery对Select操作大集合
介绍了jQuery对Select的操作进行了详细的汇总. 1.jQuery添加/删除Select的Option项: 2.$("#select_id").append("& ...
- php中url传递中文字符,特殊危险字符的解决方法
php中的urldecode,base64_encode函数然后再结合自己写的替换函数来进行安全传递url中文字符,特殊危险字符. 需要在url中传递中文字符或是其它的html等特殊字符,似乎总会有各 ...