【问题标题】:ThreeJS cube with different texture faces lit by point light with canvas renderer?具有不同纹理面的 ThreeJS 立方体由画布渲染器的点光照亮?
【发布时间】: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


【解决方案1】:

【讨论】:

  • 这正是我在第一个示例中所做的。您会看到纹理,但照明没有效果。在第二个示例中,您会看到照明有效但纹理消失了。
  • @pedrevans:糟糕,请原谅我 - 出于某种原因,我将您的第一行读作MeshBasicMaterial
  • 感谢问题链接。哦,好吧,回到绘图板:)
猜你喜欢
  • 2018-04-30
  • 1970-01-01
  • 2012-02-27
  • 1970-01-01
  • 1970-01-01
  • 2023-01-08
  • 1970-01-01
  • 2013-06-29
  • 1970-01-01
相关资源
最近更新 更多