游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1969|回复: 8

顶点法线的正确性如何保证?

[复制链接]

14

主题

37

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2009-7-2 15:47:00 | 显示全部楼层 |阅读模式
DirectX SDK里讲,如果法线贴图内的向量是基于物体空间的,那么如果物体有动画变形,法线就会出错。因此法线贴图内的向量是基于切空间的。
但切空间的确定是基于顶点法线的,如果物体有动画变形,顶点法线照样会出错。
我想知道,这个顶点法线的正确性是如何保证的?每次动画变形重新计算一次所有顶点的法线?

11

主题

650

帖子

651

积分

高级会员

Rank: 4

积分
651
发表于 2009-7-2 15:58:00 | 显示全部楼层

Re:顶点法线的正确性如何保证?

难道你没注意到vs里 法线会被归一化 或者 乘个矩阵什么的

14

主题

37

帖子

37

积分

注册会员

Rank: 2

积分
37
 楼主| 发表于 2009-7-2 16:02:00 | 显示全部楼层

Re:顶点法线的正确性如何保证?

动画变形和正交变换不同啊,正交变换不改变位置关系,因此法线可以保证正确性。
但动画变形就不同了。把一个立方体拉成平行六面体,法线肯定出错了。


就是说
顶点做正交变换时法线做同样的变换:OK。
顶点做动画变形时法线做同样的变形:不OK。

11

主题

650

帖子

651

积分

高级会员

Rank: 4

积分
651
发表于 2009-7-2 16:16:00 | 显示全部楼层

Re:顶点法线的正确性如何保证?

非均匀伸缩变换  就乘转置矩阵啊

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2009-7-2 16:22:00 | 显示全部楼层

Re:顶点法线的正确性如何保证?

如果是那种有规律的非正交形变,你只要能推导出描述形变规律的方程,就可以用Jacobi矩阵动态计算法线的变换
如果是无规律的动画,比如关键帧变形,那就在多个MorphTarget之间做法线插值

34

主题

629

帖子

629

积分

高级会员

Rank: 4

积分
629
发表于 2009-7-2 16:34:00 | 显示全部楼层

Re:顶点法线的正确性如何保证?

在VS里把光源变到切空间,在PS里sample出法线直接算,没见过sample后再变换的,会慢死

14

主题

37

帖子

37

积分

注册会员

Rank: 2

积分
37
 楼主| 发表于 2009-7-2 17:09:00 | 显示全部楼层

Re:顶点法线的正确性如何保证?

感谢指点。

39

主题

170

帖子

170

积分

注册会员

Rank: 2

积分
170
发表于 2009-7-4 18:01:00 | 显示全部楼层

Re: 顶点法线的正确性如何保证?

试试 把顶点变化的矩阵乘上法线

14

主题

37

帖子

37

积分

注册会员

Rank: 2

积分
37
 楼主| 发表于 2009-7-5 06:04:00 | 显示全部楼层

Re:顶点法线的正确性如何保证?

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-19 21:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表