Canvas 使用画布渲染器的点光源照亮具有不同纹理面的ThreeJS立方体?

Canvas 使用画布渲染器的点光源照亮具有不同纹理面的ThreeJS立方体?,canvas,textures,three.js,cube,light,Canvas,Textures,Three.js,Cube,Light,我试图画一个立方体,使用6种不同的纹理图像,每个面一个。我想用点光源照亮立方体 我使用画布渲染器是因为它是iOS上可用的平台 我明白兰伯特是一条路要走。我使用MeshLambertMaterial构建了材质数组 我设法使立方体具有不同的面进行渲染,但没有照明工作 在这里,我使用: cube = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial()); (你需要使用Firefox来查看这个,它在Mac上的Safari中看起来很可怕(但这是另一

我试图画一个立方体,使用6种不同的纹理图像,每个面一个。我想用点光源照亮立方体

我使用画布渲染器是因为它是iOS上可用的平台

我明白兰伯特是一条路要走。我使用
MeshLambertMaterial
构建了材质数组

我设法使立方体具有不同的面进行渲染,但没有照明工作

在这里,我使用:

cube = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial());
(你需要使用Firefox来查看这个,它在Mac上的Safari中看起来很可怕(但这是另一个问题),但在iPhone模拟器中也可以。)

我也得到了一个版本的工作,其中照明工程,但所有的脸都有相同的颜色,纹理图像似乎丢失

这里我用过

cube = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial());
不幸的是,我不能让纹理脸和灯光一起工作

代码只有一行不同

我一定是做错了什么,但我想不出是什么,我所有的谷歌搜索都没有用。如果有人能给我指出正确的方向,我将不胜感激


顺便说一句,感谢作者提供了这个出色的软件。

不幸的是,事实证明,

我非常确定一些灯光/材质在CanvasRenderer中不起作用,您是否尝试过使用WebGLRenderer来排除这种情况?在Firefox和Safari中,Lion上的WebGLRenderer可以按预期工作。很遗憾,iOS上没有WebGL。至少在5.1版iPhone模拟器中没有,我没有尝试过更高版本。这正是我在第一个示例中所做的。您可以看到纹理,但照明没有效果。在第二个示例中,您看到照明是有效的,但纹理消失了。@pedrevans:Oops,对不起-出于某种原因,我将您的第一行读为
MeshBasicMaterial
,感谢您提供的问题链接。哦,好吧,回到绘图板:)