我有一个显示几个缩略图的功能区。为了提供背景,缩略图图像被绘制在画布上,然后添加到纹理。SpotLight不能在ThreeJS工作
var texture = new THREE.Texture(textureCanvas);
如下
loader.load('mesh_blender.js', function(geom) {
var mesh = new THREE.Mesh(geom, new THREE.MeshLambertMaterial({
color: 0xffffffff,
opacity: 0.7,
overdraw: 0.21,
side: THREE.DoubleSide,
transparent: true,
//shading: THREE.SmoothShading,
map: texture
}));
一切到这里是精细的网格创建。碳带如下
我有这个没有投诉创建。但是我需要在下面的图片中看到这个额外的效果。可以看出,位于中心(焦点)的缩略图需要有较暗的效果才能显示它正在突出显示/可选。所有剩下的缩略图都有一个透明效果,表示它们不可选。
我试图环绕在Threejs此使用灯光我的头,但不是很成功。我想过使用AmbientLight来投射整个色带,然后只在中心图像上使用额外的SpotLight(颜色可能较暗)以达到所需的效果。但那并不奏效。我有这样的事情
但中央聚焦图像没有任何影响。正如您在图片中看到的,我曾经使用助手来显示Light方向,但我无法真正看到图像上的任何光线。这是我用来开发SpotLight的代码
var spotLight = new THREE.SpotLight(0xffeedd);
spotLight.position.set(0, -50, 50);
spotLight.castShadow = true;
//spotLight.penumbra = 0.2;
spotLight.decay = 2;
spotLight.distance = 300;
spotLight.angle = 0.5;
var helper = new THREE.SpotLightHelper(spotLight, 2.5);
scene.add(helper);
scene.add(spotLight);
我对Threejs和3D图形很新颖。任何帮助将不胜感激。谢谢。如果Lights不能用于实现最终结果,我也愿意接受其他建议。
另一种计算策略已经给可能创建自己的ShaderMaterial – 2pha