扭曲的法线与three.js所正常着色器 - r.58(Twisted normals with

2019-10-18 08:23发布

我试图使用three.js所r.58正常着色器进行置换贴图。 我有它正确地移动,但照明似乎并没有被尊重后位移法线,甚至当我使用computeTangents()。

当我关掉位移,我看到默认法线是绝对有趣。 这里有一个球的顶视图,从侧面亮起(白点标志着POINTLIGHT):

而这里的演示页: http://meetar.github.io/three.js-normal-map-0/index0.html

是什么造成的? 而且是那里的three.js所正常着色器Anywhere文档?

Answer 1:

  1. 你是不是在传递一个法线贴图,这是必需的。 尝试通过在平坦的一个。

  2. ComputeTangents()就像在北极-可以在具有不连续的UV顶点做奇怪的事情。

  3. 该代码是doucmentation。 :-)



Answer 2:

的“扭曲”法线每个顶点正常被评估作为RGB值的结果(255, 255, 255)其对应于切线空间XYZ坐标(1.0, 1.0, 1.0) 这似乎是默认的行为时,没有通过正常的地图使用three.js所法线贴图材质。 如果你通过一个全白的法线贴图,你会看到相同的行为。

要通过法线贴图到法线贴图着色器,这行添加到您的统一声明:

uniforms[ "tNormal" ].value = new THREE.ImageUtils.loadTexture( 'normalmap.png' );

传递一个“平面”正常的地图,使你“normalmap.png”固体(128, 128, 255)薰衣草,其归一化到正切空间坐标(0.0, 0.0, 1.0)

对于普通的地图,包括大量的例子有很大的明细信息,请点击此链接: http://wiki.polycount.com/NormalMap/



文章来源: Twisted normals with the Three.js normal shader - r.58