社区
游戏开发
帖子详情
顶点的法线和切线变换
sunrisefe
2009-11-23 08:55:03
DX中,顶点中有位置POS 法线NORMAL 和切线TANGENT,当对顶点进行各种变换(旋转 平移和缩放)矩阵M时,请问法线和切线应该怎么变换,是否有顶点声明可以保证在对POS运用M的时候,NORMAL和TANGENT自动变换的?谢谢
...全文
513
10
打赏
收藏
顶点的法线和切线变换
DX中,顶点中有位置POS 法线NORMAL 和切线TANGENT,当对顶点进行各种变换(旋转 平移和缩放)矩阵M时,请问法线和切线应该怎么变换,是否有顶点声明可以保证在对POS运用M的时候,NORMAL和TANGENT自动变换的?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zwqxin
2009-11-27
打赏
举报
回复
乘以M的逆转置矩阵的说....
怎么不觉得与归一化有关....
xingzhe2001
2009-11-23
打赏
举报
回复
normal, binormal, tangent这三个向量互相垂直
sunrisefe
2009-11-23
打赏
举报
回复
谢谢各位
法线和切线(令W=0,以防止被平移)乘上顶点的变换矩阵,将结果规范化(消除缩放的影响)即可,是吧。
再问一下,binormal 和 normal有什么关系?
xingzhe2001
2009-11-23
打赏
举报
回复
我的意思是世界矩阵的前3*3,其实如果把normal.w=0, 那么也可以乘以整个世界矩阵
luoya263547560
2009-11-23
打赏
举报
回复
恩,行者的shader渲染方法有见解,可以节省一些运算,不过在函数操作方面,不如直接乘上世界变换矩阵来的简单用一个mul函数加个normalize函数就OK了,如果把世界矩阵拆开的话,操作就有点复杂了。
xingzhe2001
2009-11-23
打赏
举报
回复
固定管线的话,不用关心,d3d会帮你变幻的
shader的话,要注意旋转是不应该影响法线和切线的,所以只要乘以世界矩阵的旋转分量就可以,但是世界矩阵的缩放可能会影响法线,你只要在变换后对法线和切线normalize一下就好了。
luoya263547560
2009-11-23
打赏
举报
回复
进行定点变换的时候,也就是变换的世界矩阵吧,在后来D3D的渲染流程中,法线自动都乘上这个世界矩阵了,LZ不用操心变换的时,变换过程就是确定世界矩阵之后,定点位置、法线、等等乘上相应的世界矩阵,如果LZ用shader的话,在shader里要自己去用函数实现矩阵的相乘。
张赐
2009-11-23
打赏
举报
回复
把法线和切线同样应用于变换矩阵就可以了。也就是说,乘以顶点坐标的变换矩阵同时乘以法线或切线就可以了。
xingzhe2001
2009-11-23
打赏
举报
回复
切空间一般在使用normal map时用来,因为存在normalmap上的法线是切空间的。
sunrisefe
2009-11-23
打赏
举报
回复
[Quote=引用 7 楼 xingzhe2001 的回复:]
normal, binormal, tangent这三个向量互相垂直
[/Quote]通常在什么时候使用切空间?
mikktspace-wasm:使用Web AssemblyJavaScriptTypeScriptNode.js的MikkTSpace
顶点
切线
计算
mikktspace-wasm Web程序
顶点
切线
计算。 关于
切线
法线
贴图的一个常见误解是,这种表示某种程度上与资产无关。 但是,从高分辨率表面采样/捕获然后转换为
切线
空间的
法线
更像是编码。 因此,为了反转
法线
的原始捕获场,用于解码的
变换
必须与用于编码的
变换
完全相反。 —莫滕·S·米克森 当
法线
贴图渲染不正确,变形或意外倒置的插入和拉伸时,可能是造成这种误解的原因。 大多数
法线
贴图贝克使用MikkTSpace标准在创建
法线
贴图时生成
顶点
切线
,而glTF 2.0规范建议使用该技术。 当未提供原始
切线
时,在运行时重建
切线
空间的引擎通常会使用其他方法(例如,像素着色器中的导数)来提高效率。 这对于大多数资产而言效果很好,但对其他资产可能效果不佳。 如果你有... 需要在许多引擎中可预测地呈现的资产 需要生产具有可预测的
法线
图行为的资产的资产管道 需要完美支持任意资产的引擎(并且可以承受
Unity 模型
顶点
法线
不统一————使用Blender修改
顶点
法线
遇到的问题:使用Blender创建的模型,
顶点
法线
都是默认的,或者说
顶点
法线
是基于自身三角形(矩形)的。这就导致同一个空间位置上的一个(在图形学引擎中被视为多个)
顶点
拥有若干个不同的
法线
向量。当你使用程序进行
顶点
法线
相关的计算时,会出现不同
法线
计算出的复数结果。 实际问题介绍: 如图,我在unity对一个圆柱模型的
顶点
进行沿
法线
方向的移动,希望得到闭合的膨胀体积光特效。但是,因为...
Layabox WebGL Shader编程教程
在Html5 3D游戏开发中WebGL Shader的作用非常重要,然而学习WebGL Shader的路却不是那么容易,第一它涉及到方方面面的知识和基础, 比如:3D数学,计算机图形学甚至硬件。第二各个Html5游戏引擎关于WebGL Shader的资源都比较少,不方便初学者入门学习。与其在互联网上四处搜索零散的资料,不如从头开始,系统全面的去学习WebGL Shader的“代码的艺术”。本教程“授人以渔”,为大家带来零起点的WebGL Shader教学,从图形硬件的发展史开始,讲GPU可编程管线,讲3D模型数据结构、贴图、光照、渲染,让大家能从一个纵深的过程中宏观的了解这种技术的前因后果。教程以LayaBox引擎为环境 ,重点放在GLSL语言的学习,经典光照的计算,各种纹理贴图的原理与使用,PBR、NPR、SSS等渲染类型的实现。 手把手在Layabox环境下进行逐行代码的教学,期望帮助大家进入WebGL Shader编程的大门,最终能在实际的工程实践中有些创造和创新。1. 课程为99课时,总时长约为2000分钟到2500分钟。2. 课程 源代码 在对应课时的课件资源中,可下载。
法线
和
切线
什么是
切线
空间?
切线
空间就是,基于模型上的一个
顶点
建立的坐标空间,它的X轴是这个
顶点
在模型中的
切线
分量,Z轴是改点在模型上的
法线
,Y轴就是这个
顶点
的副
切线
,因为坐标空间XYZ三个面都是互相垂直的嘛,所以这个副
切线
我们是可以求出来的(以为同样是与一个平面垂直的单位向量是有两方向的,在Unity中模型会提供一个副
切线
的方向的数据)。来上一个图,让我们更好的理解这个所谓的
切线
空间。所以,
法线
贴图就是记录...
Shader学习(9)
法线
和
切线
空间的定义和
变换
演示
不如醉里风吹尽,又是一天未学习。西山日下雨足稀,又是一周未学习。垂死病中惊坐起,又是一月未学习 最近迷上了骑砍,游戏一玩啥都不管,做什么事都意兴阑珊。 一、
法线
的概念 三维模型是用一个一个的点构成的,在前面的各种空间
变换
中,对
顶点
的位置信息进行了各种计算,但是要想构成一个模型光知道
顶点
的位置信息是不够的,有一个问题就是,如果我们用几个点构成了一个平面之后,我们该怎么确定哪一面是平面的正面?
法线
就是为了确定模型的正面是朝向哪里而存在的。
法线
(normal)是定义一个点的朝向的信息,它是一个矢量信息,所以也被
游戏开发
8,303
社区成员
23,682
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章