Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 奇怪的三重影[r84]阴影_Javascript_Three.js_Shadows - Fatal编程技术网

Javascript 奇怪的三重影[r84]阴影

Javascript 奇怪的三重影[r84]阴影,javascript,three.js,shadows,Javascript,Three.js,Shadows,我有一个有铁路灯的小场景。使用Blender创建并导出模型 这是我的密码: var场景、摄影机、渲染器、环境光、方向光、聚光灯、模型、进度; var统计、工具箱、加载程序; 可变屏幕宽度、屏幕高度; 函数init(model){ //瓦尔斯 container=document.getElementById('webGL_container'); toolbox=document.getElementById('toolbox'); loaderDiv=document.getElementB

我有一个有铁路灯的小场景。使用Blender创建并导出模型

这是我的密码:

var场景、摄影机、渲染器、环境光、方向光、聚光灯、模型、进度;
var统计、工具箱、加载程序;
可变屏幕宽度、屏幕高度;
函数init(model){
//瓦尔斯
container=document.getElementById('webGL_container');
toolbox=document.getElementById('toolbox');
loaderDiv=document.getElementById('loader');
//场面
场景=新的三个。场景();
scene.fog=新的3.FogExp2(0x929599,0.001);
//进展
进度=新的三个。加载管理器();
progress.onProgress=功能(项目、已加载、总计){
//控制台日志(项目、已加载、总计);
};
//装载机
loader=新的三个。ObjectLoader(进度);
loader.load(型号、功能(obj){
//在加载场景时执行
场景。添加(obj);
loaderDiv.style.display='none';
cameraControls.enabled=true;
});
//摄像机
摄像头=新的三个透视摄像头(45,window.innerWidth/window.innerHeight,1150);
摄像机位置设置(0,10,-10);
//轻的
环境光=新的三个环境光(0xffffff,0.1);
场景。添加(环境光);
方向光=新的三个方向光(0xffffff,1.1);
方向灯。位置。设置(100200150);
场景。添加(方向光);
聚光灯=新的三个聚光灯(0xFFAA88);
聚光灯。位置。设置(10、25、15);
spotLight.castShadow=true;
spotLight.shadow.bias=0.001;
spotLight.shadow.camera.near=10;
spotLight.shadow.camera.far=100;
spotLight.shadow.mapSize.width=2048;
spotLight.shadow.mapSize.height=2048;
场景。添加(聚光灯);
var helper=new THREE.CameraHelper(spotLight.shadow.camera);
场景.添加(助手);
//渲染器
renderer=new THREE.WebGLRenderer({
反别名:true,alpha:true
});    
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(window.innerWidth、window.innerHeight);
renderer.setClearColor(scene.fog.color);
renderer.gammaInput=true;
renderer.gammaOutput=true;
渲染器.setFaceCulling(三个.CullFaceNone);
//影子
renderer.shadowMap.enabled=true;
renderer.shadowMap.type=THREE.PCFSoftShadowMap;
//
container.appendChild(renderer.domeElement);
//控制
cameraControls=新的三个.OrbitControls(camera、renderer.DoElement);
CameraControl.target.set(0,0,0);
CameraControl.enablePan=true;
cameraControls.enabled=false;
//统计数据
统计数据=新统计数据();
insertBefore(stats.domElement,toolbox.children[1]);
制作动画();
}
//渲染
函数render(){
.clear();
渲染器。渲染(场景、摄影机);
}  
//生动活泼
函数animate(){
stats.begin();
请求动画帧(动画);
render();
cameraControls.update();
stats.end();
}
//调整场景大小
window.onresize=函数(){
屏幕宽度=window.innerWidth;
屏幕高度=窗内高度;
camera.aspect=屏幕宽度/屏幕高度;
camera.updateProjectMatrix();
设置大小(屏幕宽度、屏幕高度);

};-这是一个网站上的工作副本,这些不是阴影。该对象没有法线,也没有接收到光线计算。@Gatat模型有法线,我可以在Blender中看到它们,并且我在导出到JSON设置中使用了“导出法线”标记,因此,JSON文件也有法线。您需要反转那里三角形的方向。表面是由内而外的,由于材料是双面的,你无法分辨出区别。@gaitat,谢谢,我会设法修复它!