2013-02-21 3 views
2

Возможно ли создать в Three.js источник света, который имеет пользовательскую геометрию, например. символ. Существует Arealight в Three.js, который работает как прямоугольный источник света и имеет параметры парика и высоты. И, наконец, цель состоит в том, чтобы получить поверхность, освещенную таким источником, которая визуально является таковой фигурой.Three.js, пользовательская геометрия света

Спасибо WestLangley, это отличный пример, я пробовал этот путь, но, к сожалению, это не сработало для меня. Я попытался это:

var textTexture = new THREE.Texture("textures/text.jpg"); 
     //var textTexture = THREE.ImageUtils.loadTexture("textures/text.jpg"); 
     textTexture.format = THREE.RGBFormat; 
     textTexture.wrapS = textTexture.wrapT = THREE.MirroredRepeatWrapping; 
     textTexture.anisotropy = 4; 
     var textLight = new THREE.AreaLight(0xffffff, 3); 
     textLight.position.set(10, 5, -5); 
     textLight.rotation.x = Math.PI/2; 
     textLight.width = 30; 
     textLight.height = 10; 
     textLight.texture = textTexture; 
     scene.add(textLight) 

ответ

1

AreaLight работает только с WebGLDeferredRenderer, который является совершенно новым, часть примеров (не библиотеки), и не очень много примеров его использования.

Если вы посмотрите на this example, вы можете увидеть, что текстура фильма используется как источник света.

В этом примере, вы можете заменить другую текстуру для видео текстуры, как так:

// texture = new THREE.Texture(video); 
texture = THREE.ImageUtils.loadTexture("texture.jpg"); 

К сожалению, этот пример использует модифицированную версию библиотеки.

Three.js R.56

+0

Единственный способ, которым я вижу это место размытую текстуру стены, которая может быть, казалось, как свет освещения. Использование THREE.MeshBasicMaterial –

+0

Предлагаемые работы. В какой-то момент, я надеюсь, будет поддерживаться то, что вы хотите сделать. На данный момент это лучшее, что вы можете сделать. Не забудьте «принять» ответы, нажав на галочку. Спасибо. – WestLangley

+0

Я попробовал, что вы предложили, но Arealight сияет обычным белым светом. Наверное, мне нужно что-то дополнительное для Three.js? –

Смежные вопросы