Куб ThreeJS с гранями различной текстуры, освещенный точечным светом с помощью рендера Canvas?
Я пытаюсь нарисовать куб, который использует 6 различных изображений для текстур, по одному для каждого лица. Я хотел бы осветить куб точечным источником света.
Я использую Canvas Renderer, потому что это платформа, доступная на iOS.
Я понял, что Ламберт - это путь. Я построил массив материалов, используя MeshLambertMaterial
,
Мне удалось получить куб с разными гранями для рендеринга, но без подсветки, смотрите эту ссылку.
Здесь я использовал:
cube = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial());
(Вам нужно использовать Firefox, чтобы увидеть это, в Safari на Mac это выглядит ужасно (но это другая проблема), но в симуляторе iPhone это нормально.)
У меня также есть работающая версия, где освещение работает, но все лица имеют одинаковый цвет, изображения текстуры кажутся потерянными, см. Эту ссылку.
Здесь я использовал
cube = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial());
К сожалению, я не могу заставить текстурированные лица и освещение работать вместе.
Код отличается только одной строкой.
Я, должно быть, делаю что-то не так, но я не могу понять, что это такое, все мои поиски были напрасны. Я был бы благодарен, если бы кто-то мог указать мне правильное направление.
Кстати, спасибо автору за это блестящее программное обеспечение.
1 ответ
К сожалению, получается, что MeshLambertMaterial
не поддерживается CanvasRenderer
,