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