Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/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 3.js平行光阴影_Javascript_Three.js_Shadow_Light - Fatal编程技术网

Javascript 3.js平行光阴影

Javascript 3.js平行光阴影,javascript,three.js,shadow,light,Javascript,Three.js,Shadow,Light,var摄像机、场景、渲染器; var多维数据集=[]; init(); 制作动画(); 函数init(){ 场景=新的三个。场景(); 添加(新的三个环境光(0x212223)); 对于(变量i=0;i

var摄像机、场景、渲染器;
var多维数据集=[];
init();
制作动画();
函数init(){
场景=新的三个。场景();
添加(新的三个环境光(0x212223));
对于(变量i=0;i<10;i++){
var立方计量法=新的三个立方计量法(1,1.5,1);
var cubeMaterial=new THREE.MeshLambertMaterial({color:0x1ec876});
var cube=新的三网格(立方计量法、立方材料);
立方体位置集(i*1.2,0,0.5);
cube.castShadow=true;
场景.添加(立方体);
立方体。推(立方体);
}
摄像头=新的三个透视摄像头(45,window.innerWidth/window.innerHeight,0.11000);
camera.position.x=-4;
摄像机位置y=-4;
摄像机位置z=20;
摄像机。注视(立方体[5]。位置);
场景。添加(摄影机);
var terrainGeo=新的三个平面几何体(50,50);
var terrainMaterial=新的3.MeshLambertMaterial({color:0xc0c0a0});
var地形=新的三点网格(terrainGeo、terrainMaterial);
terrain.receiveShadow=真;
场景。添加(地形);
var灯=新的三方向灯(0xffffff,1);
light.castShadow=true;
light.shadowCameravible=真;
光。位置。设置(-3,1,5);
场景。添加(灯光);
添加(新的3.DirectionalLightHelper(灯光,0.2));
renderer=new THREE.WebGLRenderer({antialas:true});
renderer.setSize(window.innerWidth、window.innerHeight);
renderer.shadowMapEnabled=true;
renderer.shadowMapSoft=false;
document.body.appendChild(renderer.doElement);
}
函数animate(){
请求动画帧(动画);
对于(变量i=0;i
为什么阴影不起作用

我查看了相关问题和三个.js参考资料,但不明白我做错了什么


将这些添加到灯光定义中:

light.shadowMapWidth = 
light.shadowMapHeight = 1024;
light.shadowCameraNear = 1;
light.shadowCameraFar = 100;

将以下内容添加到灯光定义中:

light.shadowMapWidth = 
light.shadowMapHeight = 1024;
light.shadowCameraNear = 1;
light.shadowCameraFar = 100;

首先,将摄影机控制器添加到场景中,以便可以看到正在执行的操作。现在,您可以为不同的视图旋转摄影机

controls = new THREE.OrbitControls( camera, renderer.domElement );
其次,在使用JSFIDLE时,请确保链接到three.js库的最新版本

<script src="http://threejs.org/build/three.min.js"></script>
对于平行光,只有灯光位置的“方向”起作用。但是,当涉及阴影贴图时,灯光的实际位置很重要,因为它也控制阴影摄影机

light.position.set( -60, 20, 100 );
这是一把最新的小提琴。用鼠标旋转相机


three.js r.66

首先,在场景中添加一个摄影机控制器,以便您可以看到自己在做什么。现在,您可以为不同的视图旋转摄影机

controls = new THREE.OrbitControls( camera, renderer.domElement );
其次,在使用JSFIDLE时,请确保链接到three.js库的最新版本

<script src="http://threejs.org/build/three.min.js"></script>
对于平行光,只有灯光位置的“方向”起作用。但是,当涉及阴影贴图时,灯光的实际位置很重要,因为它也控制阴影摄影机

light.position.set( -60, 20, 100 );
这是一把最新的小提琴。用鼠标旋转相机


three.js r.66

我设置了参数
light.shadowcamerarlight=15
light.shadowCameraLeft=-5
light.shadowCameraTop=5
light.shadowCameraBottom=-5
,出现了一个阴影。这个参数是什么意思?我设置了参数
light.shadowcamerarlight=15
light.shadowCameraLeft=-5
light.shadowCameraTop=5
light.shadowcamerarbottom=-5
,然后出现了一个阴影。这个参数是什么意思?添加到
light.shadowcamerarlight=15
light.shadowCameraLeft=-5
等。Shadow可以工作。如何展示这些特性?它们依赖于什么?添加到
light.shadowcamerarlight=15
light.shadowCameraLeft=-5
等。阴影可以工作。如何展示这些特性?他们依靠什么?