Questions tagged «normal-mapping»

1
法线与法线贴图
我正在使用Assimp资产导入器(http://assimp.sourceforge.net/lib_html/index.html)来解析3d模型。 到目前为止,我已经简单地提取了为网格中每个顶点定义的法线向量。但是我还在法线贴图上找到了各种教程... 据我了解,对于法线贴图,法线矢量存储在法线贴图的每个纹理元素中,您可以将它们从着色器的法线纹理中拉出。 为什么有两种获取法线的方法,一种被认为是最佳实践,为什么呢?

1
延期贴花正常问题
我一直在研究延迟贴花系统。到目前为止,我已经完成了投影部分,这意味着我可以单击场景中的某些东西,它将正确地将贴图投影到对象的表面上。 我希望添加到此系统中的其他几项内容:普通裁剪和普通映射贴花。正常剪裁是当我丢弃延伸锐角的片段时。在这里看到。解决此问题的一种方法是,丢弃G缓冲区中的法线与贴花法线之间存在较大差异的片段。这将需要读取G缓冲区的正常纹理。 为了进行贴图法线贴图,我需要将贴图的法线(来自法线贴图)与G缓冲区的法线混合。需要写入G缓冲区的常规纹理。 我希望很明显,为了支持这两个功能,我需要在同一着色器通道中读取和写入普通纹理。可悲的是,这是未定义的行为,所以我想知道是否还有其他方法可以实现这些功能。

2
为什么切线空间法线贴图不是全蓝色的?
为什么法线贴图不只是蓝色的?我认为法线贴图应主要为蓝色,因为法线的Z分量由蓝色表示。法线在Z方向上指向曲面之外,因此我们应该将蓝色视为主要颜色,因为Z分量占主导。 根据定义,切线空间垂直于表面。在任何时候,我们都应该使法线始终指向Z(蓝色方向),而没有X(红色方向)或Y(绿色方向)。因此,法线贴图(因为它是“法线贴图”)应具有仅蓝色的法线颜色(R = x = 0,G = y = 0,B = z = 1),中间没有阴影。 但是法线贴图并非如此,并且它们中具有阴影渐变。为什么会这样呢?

4
法线贴图如何真正起作用?
我试图理解法线贴图的概念,但是我对一些事情感到困惑。简而言之,我不确定法线贴图是否依赖于视点(即,围绕同一对象旋转时是否会得到同一对象的不同法线贴图)。其次,我不明白为什么蓝色是法线贴图中的主要颜色。 我如何看待法线及其与RGB颜色的关系,如下所示。单位球体表示任何可能的单位法线-换句话说,单位法向向量的X,Y和Z分量的范围是-1至1。RGB颜色的分量的范围都是0至255。因此,这很有意义将-1(标准分量)映射到0(颜色分量),0到127或128以及1到255。介于两者之间的任何值都只是线性插值。 将此映射应用于任意3D对象的法线会产生非常彩色的图像,而根本不是蓝色。例如,当取一个立方体时,所有六个面将具有不同但均匀的颜色。例如,法线为(1,0,0)的脸将为(255,128,128),法线为(0,0,-1)的脸将为(128,128,0),依此类推。 但是,由于某种原因,我找到的多维数据集的法线贴图完全是蓝色的,即(128,128,255)。但很明显,法线并非全部在正z方向上,即(0,0,1)。这是如何运作的? [编辑] 好的,因此上述方法似乎被称为对象空间法线贴图或世界空间法线贴图。另一个称为切线法线贴图。我了解如何使用这种切线空间法线贴图来修改几何体的法线,但是我仍然不确定完全如何计算它(请参阅我在Nicol Bolas的回答中的评论)。 [编辑2] 我可能应该提到我正在处理分段参数化曲面。这些表面由一组表面补丁组成,其中每个补丁都与其自己的参数空间(u,v)= [0,1] x [0,1]相关联。可以在表面的任何一点上精确计算法线。显然,跨越切线空间所需的向量T(切线)和B(双切线)不仅仅是在u和v方向上​​表面补丁的偏导数。

2
搅拌器-烘烤法线贴图-奇怪的颜色
我有一个金属鼓网,当烘烤其法线贴图时,会得到怪异的颜色(请参见所附图片)。我说的是颜色的水平渐变。我的网格上没有这样的变形,颜色为何如此?我尝试了各种空间(相机,世界等),但仍然很糟糕(尽管水平梯度会随着每个空间而变化)。切线空间也将全部返回块状蓝色。 有人可以告诉我如何从网格物体中获得良好的法线贴图吗? ===更新 解决了,非常感谢LukeB。仍然存在一些问题,即要稍微扩展两个重叠版本之一(例如低分辨率),以获得真正好的结果,但是应该这样做。 ===更新2 在进一步遵循Luke B的建议之后,我在我的低分辨率网格上使用了多分辨率修改器,并从那里进行了烘焙。它看起来比以前要好得多,颜色伪影已降至最低,实际上,在GIMP中进行了一些更正后,它非常有用:
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.