为什么我墙上的灯光看起来很奇怪?Three.js

3

我正在使用Three.js(r52)制作游戏,但在调光方面遇到了一些问题。

这个地牢级别使用简单的立方体作为墙壁和屋顶。不知道为什么,灯光在每个网格的开始处很亮,但向另一侧逐渐变暗。

请注意,地板没有伪影,因为它是一个巨大的四边形。 enter image description here

使用的灯光是PointLight。我的网格材料简单地创建如下:

   var texture  = new THREE.Texture( image,
    new THREE.UVMapping(),
    THREE.RepeatWrapping,
    THREE.RepeatWrapping,
    THREE.NearestFilter,
    THREE.NearestMipMapLinearFilter );

  return new THREE.MeshLambertMaterial({
    map : texture
  });

这些长方体是从3ds max导出的OBJ模型,使用gw::OBJ-exporter进行转换。以下是我的导出设置: enter image description here 有什么想法吗?
1个回答

3

3
实际上,您问了“为什么?”原因是您立方体面的左边缘顶点法线与立方体面右边缘顶点法线不平行。因此,在两个立方体相遇的接缝处存在不连续性。使用THREE.FlatShading会忽略顶点法线,并改为在照明计算中使用面法线。如果您的顶点法线是平行的,则不会看到这种伪影。 - WestLangley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接