Javascript 为什么灯光位置不更新?
我正在使用three.js渲染移动的圆柱体:Javascript 为什么灯光位置不更新?,javascript,three.js,Javascript,Three.js,我正在使用three.js渲染移动的圆柱体: let渲染器、摄影机、场景、灯光、圆柱体; 初始化(); 制作动画(); 函数初始化(){ renderer=new THREE.WebGLRenderer({alpha:true,antialas:true}); renderer.setSize(window.innerWidth、window.innerHeight); document.body.appendChild(renderer.doElement); 摄像头=新的三个透视摄像头(4
let渲染器、摄影机、场景、灯光、圆柱体;
初始化();
制作动画();
函数初始化(){
renderer=new THREE.WebGLRenderer({alpha:true,antialas:true});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
摄像头=新的三个透视摄像头(45,窗。内宽/窗。内高);
场景=新的三个。场景();
灯光=新的三个。聚光灯();
场景。添加(灯光);
圆柱体=新的三个网格();
cylinder.material=新的三个.MeshToonMaterial({颜色:#007700“});
圆柱体几何体=新的三个圆柱体几何体(3,3,12,25)
场景.添加(圆柱体);
}
函数animate(){
气缸位置z-=1;
圆柱旋转x-=三个数学degToRad(2);
light.position.x=圆柱体.position.x;
灯位置y=气缸位置y+100;
light.position.z=圆柱体.position.z;
camera.position.x=圆柱体.position.x;
camera.position.y=圆柱体.position.y+10;
camera.position.z=圆柱体.position.z+30;
摄像机.观察(气缸.位置);
请求动画帧(动画);
渲染器。渲染(场景、摄影机);
}
正文{
宽度:100%;
身高:100%;
保证金:0;
填充:0;
边界:0;
背景:#aaccaa;
}
帆布{
显示:块;
}
如果不设置聚光灯的目标,就会发生这种情况 文件说: .目标 聚光灯从其位置指向target.position。目标的默认位置是(0,0,0) 注意:要将目标位置更改为默认位置以外的任何位置,必须使用将其添加到场景中 因此,这意味着当您使用圆柱体移动灯光时,它(灯光)指向场景的中心,这是默认设置 将圆柱体指定为灯光的目标,您将获得所需的结果
让渲染器、摄影机、场景、灯光、光位置、圆柱体;
初始化();
制作动画();
函数初始化(){
renderer=new THREE.WebGLRenderer({alpha:true,antialas:true});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
摄像头=新的三个透视摄像头(45,窗。内宽/窗。内高);
场景=新的三个。场景();
圆柱体=新的三个网格();
cylinder.material=新的三个.MeshToonMaterial({颜色:#007700“});
圆柱体几何体=新的三个圆柱体几何体(3,3,12,25)
场景.添加(圆柱体);
灯光=新的三个。聚光灯();
lightPosition=新的三个矢量3(0,100,0);
light.target=圆柱体;
场景。添加(灯光);
}
函数animate(){
气缸位置z-=1;
圆柱旋转x-=三个数学degToRad(2);
灯。位置。复制(气缸。位置)。添加(灯位置);
camera.position.x=圆柱体.position.x;
camera.position.y=圆柱体.position.y+10;
camera.position.z=圆柱体.position.z+30;
摄像机.观察(气缸.位置);
请求动画帧(动画);
渲染器。渲染(场景、摄影机);
}
正文{
宽度:100%;
身高:100%;
保证金:0;
填充:0;
边界:0;
背景:#aaccaa;
}
帆布{
显示:块;
}
如果不设置聚光灯的目标,就会发生这种情况 文件说: .目标 聚光灯从其位置指向target.position。目标的默认位置是(0,0,0) 注意:要将目标位置更改为默认位置以外的任何位置,必须使用将其添加到场景中 因此,这意味着当您使用圆柱体移动灯光时,它(灯光)指向场景的中心,这是默认设置 将圆柱体指定为灯光的目标,您将获得所需的结果
让渲染器、摄影机、场景、灯光、光位置、圆柱体;
初始化();
制作动画();
函数初始化(){
renderer=new THREE.WebGLRenderer({alpha:true,antialas:true});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
摄像头=新的三个透视摄像头(45,窗。内宽/窗。内高);
场景=新的三个。场景();
圆柱体=新的三个网格();
cylinder.material=新的三个.MeshToonMaterial({颜色:#007700“});
圆柱体几何体=新的三个圆柱体几何体(3,3,12,25)
场景.添加(圆柱体);
灯光=新的三个。聚光灯();
lightPosition=新的三个矢量3(0,100,0);
light.target=圆柱体;
场景。添加(灯光);
}
函数animate(){
气缸位置z-=1;
圆柱旋转x-=三个数学degToRad(2);
灯。位置。复制(气缸。位置)。添加(灯位置);
camera.position.x=圆柱体.position.x;
camera.position.y=圆柱体.position.y+10;
camera.position.z=圆柱体.position.z+30;
摄像机.观察(气缸.位置);
请求动画帧(动画);
渲染器。渲染(场景、摄影机);
}
正文{
宽度:100%;
身高:100%;
保证金:0;
填充:0;
边界:0;
背景:#aaccaa;
}
帆布{
显示:块;
}