游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2647|回复: 3

有关生成Normal Map的想法和疑问

[复制链接]

6

主题

390

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2005-12-22 23:05:00 | 显示全部楼层 |阅读模式
生成normal map,最简单的办法应该是,在高模保证uv没有overlapping的情况下,让(u,v)作为位置输出到(x,y,0.0f),然后normal输出到diffuse colour,渲染到一张rendertarget上,这样一张纹理便应该是object space的normal map。如果需要是tangent space的则需要乘上正切基形成的一个变换矩阵进行空间变换。以上的说法是不是大家常用的方法?

我的问题比较偏向于process:
A、如果高模不是从低模生成出来,或低模重新制作过,则uv mapping可能改变,上述方法似乎就无法适用。而且上述方法必须将高模也进行uv mapping,否则normal map无从生成。这种情况下是不是应该对美术的制作流程作出限制?

B、Doom3的normal map应该是tangent space的,为什么选择生成的normal map是在tangent space中?如果是在object space中会有什么不利之处吗?望指教!

C、看GPG3上介绍的另一种方法,是通过插值法线后,对高模三角形求交生成normal map,觉得比较麻烦。这种方法比起上述方法有什么优势吗?而nVIDIA也有Melody之类的工具可以用于生成normal map(相信ATi也有),各位通常都是用什么方法处理的呢?

D、现在似乎都不使用2D DCC工具如PhotoShop生成normal map,经历过2D生成normal map的朋友能不能谈谈这样做的弊端?

34

主题

629

帖子

629

积分

高级会员

Rank: 4

积分
629
发表于 2005-12-22 23:14:00 | 显示全部楼层

Re:有关生成Normal Map的想法和疑问

个人觉得先计算高度图,再转为法线图是个可取的办法

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
发表于 2005-12-23 08:59:00 | 显示全部楼层

Re:有关生成Normal Map的想法和疑问

关于NormalMap的缺陷我发现过一个: http://blog.gameres.com/thread.asp?BlogID=1201&threadid=41654

关于生成NormalMap,目前3DSMax新增的插件里可以做到从模型生成出NormalMap

NormalMap我觉得不存在从ObjectSpace中生成这种提法,只有Tangent、Binormal从模型的UV空间中生成这种说法,NormalMap坐标系本来就是以一张2D纹理为基础,XZ分别平行与UV的

6

主题

390

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
 楼主| 发表于 2005-12-24 02:58:00 | 显示全部楼层

Re: 有关生成Normal Map的想法和疑问

>>NormalMap我觉得不存在从ObjectSpace中生成这种提法,只有Tangent、Binormal从模型的UV空间中生成这种说法,NormalMap坐标系本来就是以一张2D纹理为基础,XZ分别平行与UV的


我好像找到了点答案:object space做normal map是有的,但限制是将normal map和几何体的外观绑定在一起。也就是说限制了同一张normal map的复用。

>>个人觉得先计算高度图,再转为法线图是个可取的办法

而现在生成normal map的做法有从高模生成的,也有从height map中生成的。由高模生成的normal map可以由写工具的程序定义是在object space还是tangent space,而由height map生成的normal map则一定是tangent space的(没有几何外观)。

以下谈一些优劣:
object space生成的normal map直观,但上面提到的缺点则是不能复用normal map,只能为特定的model生成。但如果采用通过高模生成normal map的做法,这个则不成为问题。不过人工修改则非常麻烦甚至不可行。

tangent space生成的normal map似乎是现在比较普遍的做法,完全可以复用normal map。适合从高模生成normal map和从height map生成normal map两种生产方法,且人工修改相对较直观。但计算成本和带宽会提高,因为会为每一个定点多传一个tangent,并需要将light direction转换到tangent space(这需要生成binormal再构建转换矩阵)。

如有问题请拍砖。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 02:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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