我试图使用three.js所r.58正常着色器进行置换贴图。 我有它正确地移动,但照明似乎并没有被尊重后位移法线,甚至当我使用computeTangents()。
当我关掉位移,我看到默认法线是绝对有趣。 这里有一个球的顶视图,从侧面亮起(白点标志着POINTLIGHT):
而这里的演示页: http://meetar.github.io/three.js-normal-map-0/index0.html
是什么造成的? 而且是那里的three.js所正常着色器Anywhere文档?
我试图使用three.js所r.58正常着色器进行置换贴图。 我有它正确地移动,但照明似乎并没有被尊重后位移法线,甚至当我使用computeTangents()。
当我关掉位移,我看到默认法线是绝对有趣。 这里有一个球的顶视图,从侧面亮起(白点标志着POINTLIGHT):
而这里的演示页: http://meetar.github.io/three.js-normal-map-0/index0.html
是什么造成的? 而且是那里的three.js所正常着色器Anywhere文档?
你是不是在传递一个法线贴图,这是必需的。 尝试通过在平坦的一个。
ComputeTangents()
就像在北极-可以在具有不连续的UV顶点做奇怪的事情。
该代码是doucmentation。 :-)
的“扭曲”法线每个顶点正常被评估作为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/