【发布时间】:2012-10-14 18:10:12
【问题描述】:
我正在尝试绘制一个立方体,它使用 6 个不同的纹理图像,每个面一个。我想用点光源照亮立方体。
我正在使用画布渲染器,因为这是 iOS 上可用的平台。
我知道兰伯特是要走的路。我使用MeshLambertMaterial 构建了我的材料数组。
我设法渲染了具有不同面的立方体,但没有照明,see this link。
这里我用过:
cube = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial());
(您需要使用 Firefox 来查看,在 Mac 上的 Safari 中看起来很可怕(但这是一个不同的问题),但在 iPhone 模拟器中很好。)
我也有一个版本可以在照明工作的情况下工作,但面部都有相同的颜色,纹理图像似乎丢失了,see this link。
这里我用过
cube = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial());
很遗憾,我无法将带纹理的面和灯光一起使用。
代码只有这一行不同。
我一定是做错了什么,但我不知道是什么,我所有的谷歌搜索都无济于事。如果有人能指出我正确的方向,我将不胜感激。
顺便感谢作者提供了这个出色的软件。
【问题讨论】:
-
我很确定有些灯光/材质在 CanvasRenderer 中不起作用,您是否尝试过使用 WebGLRenderer 来排除这种情况?
-
在 Lion WebGLRenderer 上的 Firefox 和 Safari 中按需要工作。在 iOS 上,WebGL 很遗憾不可用。至少5.1的iPhone模拟器不行,以后的版本我也没试过。
标签: canvas textures three.js cube light