|
|
生成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的朋友能不能谈谈这样做的弊端? |
|