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). 你想实现 ...
随机推荐
- iOS 中对各种视图的截屏以及分享
1.一个第三方的工具,主要是对表视图.滚动视图.视图的扩展,用法也很简单 image = [tableview screenshot]; 2.然后将截的图片分享出去,在分享的时候,因为多个地方用到了截 ...
- c# SQL CLR 之一
CLR就是公共运行时,本文就对c#编写SQL StoredProcedures的过程进行简单讲解. [步骤] 2. 3. 7.打开设置 8. 注意删除方式:注意删除Assembly时,一定要先把引用此 ...
- 通过js判断手机访问跳转到手机站
第一种方法: <script> ){ //pc //window.location.href="电脑网址"; }else{ //shouji window.locati ...
- libjpeg 交叉编译动态库和静态库
1.下载libjpeg库,解压之 得到了jpeg6b和libtool-2.2.4两个文件夹. 2.编译安装libtool工具. 这是配置libtool,这里需要注意:configure 参 ...
- ListView 总结----持续中
ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉, 原因是,滚动时,列表里面的view重绘时,用的依 ...
- Tomcat找不到service.bat文件
说明:我们给客户做安装包,Tomcat我们设置了编码和端口,所以用绿色版的,同时又要注册成windows服务.但是bin下面没有service.bat文件(tomcat6.exe,tomcat6x.e ...
- Codevs 1205 单词翻转
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 题解 题目描述 Description 给出一个英语句子,希望你把句子里的单词顺序都翻转过来 输入 ...
- windows phone 8 开发系列(二)Hello Wp8!
上篇我们了解了WP8的环境搭建,从今天开始,我们就正式进入WP8的设计,开发阶段. 一. 项目模板介绍 打开vs,选择Windows Phone的项目模板,我们发现如下有很多模板,那么我们就从认识这些 ...
- C# ProperTyGrid 自定义属性
C# 如果要实现自定义属性必须要需要实现接口ICustomTypeDescriptor // 摘要: // 提供为对象提供动态自定义类型信息的接口. public interface ...
- win7局域网无法ping通本机的问题解决方法
对于window7系统,很多朋友会发现:默认下是不允许被ping的,其实都系统自带的防护墙所阻止了,新建一个策略就可以实现被ping通,如下操作