Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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/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 来自point Light three.js的光线_Javascript_Three.js - Fatal编程技术网

Javascript 来自point Light three.js的光线

Javascript 来自point Light three.js的光线,javascript,three.js,Javascript,Three.js,有没有一种方法可以在三个js场景中查看点光源的光线。我尝试过雾,但它使场景中的所有对象都变成雾的颜色 var width = $('#g_pre_emo').width(); var scene = new THREE.Scene(); scene.fog = new THREE.Fog(0xffff00, 0, 10); var camera = new THREE.PerspectiveCamera(50, width / 500, 0.1, 1000); var rendere

有没有一种方法可以在三个js场景中查看点光源的光线。我尝试过雾,但它使场景中的所有对象都变成雾的颜色

 var width = $('#g_pre_emo').width();

 var scene = new THREE.Scene();
 scene.fog = new THREE.Fog(0xffff00, 0, 10);
 var camera = new THREE.PerspectiveCamera(50, width / 500, 0.1, 1000);
 var renderer = new THREE.WebGLRenderer({antialias: false});
 renderer.setSize(width, 500);

 $('#g_pre_emo').append(renderer.domElement);


 var intensity = 2.5;
 var distance = 5;
 var decay = 2.0;

 var light = new THREE.AmbientLight(0x404040); // soft white light
 scene.add(light);

renderer.shadowMap.Enabled = true;
renderer.setClearColor(0xffffff, 1);
var happyGroup = new THREE.Object3D();
var sadGroup = new THREE.Object3D();
var angryGroup = new THREE.Object3D();
var relaxedGroup = new THREE.Object3D();

scene.add(happyGroup);
scene.add(sadGroup);
scene.add(angryGroup);
scene.add(relaxedGroup);
var c1 = 0xffff00;


var sphere = new THREE.SphereGeometry(0.25, 16, 8);
light1 = new THREE.PointLight(c1, intensity, distance, decay);
light1.add(new THREE.Mesh(sphere, new THREE.MeshBasicMaterial({color: c1})));
scene.add(light1);

happyGroup.position.set(-3, 3, 0);
sadGroup.position.set(3, 3, 0);
angryGroup.position.set(-3, -3, 0);
relaxedGroup.position.set(3, -3, 0);


var happyGeometry = new THREE.SphereGeometry(1, 50, 50);
var happyMaterial = new THREE.MeshNormalMaterial();
var happySphere = new THREE.Mesh(happyGeometry, happyMaterial);
scene.add(happySphere);
happyGroup.add(happySphere);

var sadGeometry = new THREE.SphereGeometry(1, 50, 50);
var sadMaterial = new THREE.MeshNormalMaterial();
var sadSphere = new THREE.Mesh(sadGeometry, sadMaterial);
scene.add(sadSphere);
sadGroup.add(sadSphere);

var angryGeometry = new THREE.SphereGeometry(1, 50, 50);
var angryMaterial = new THREE.MeshNormalMaterial();
var angrySphere = new THREE.Mesh(angryGeometry, angryMaterial);
scene.add(angrySphere);
angryGroup.add(angrySphere);

var relaxedGeometry = new THREE.SphereGeometry(1, 50, 50);
var relaxedMaterial = new THREE.MeshNormalMaterial();
var relaxedSphere = new THREE.Mesh(relaxedGeometry, relaxedMaterial);
scene.add(relaxedSphere);
relaxedGroup.add(relaxedSphere);


renderer.gammaInput = true;
renderer.gammaOutput = true;
camera.position.z = 15;

function render() {
    renderer.render(scene, camera);
}
 ;
render();
animate();
function animate() {
    requestAnimationFrame(animate);

}
如果我运行上面的代码,我在场景中看不到任何雾 上面代码的提琴是
光线不是自动产生的。
通常,光线是使用高级像素着色器(照明区域上的模板/阴影投影/体积雾)创建的,或者在简单情况下,通过创建简单的alpha混合多边形并应用“光线”纹理来创建的

点光源只是在着色阶段不应用方向计算的光源。相反,只进行基于距离的计算


祝你好运

“光线”不是自动产生的东西。
通常,光线是使用高级像素着色器(照明区域上的模板/阴影投影/体积雾)创建的,或者在简单情况下,通过创建简单的alpha混合多边形并应用“光线”纹理来创建的

点光源只是在着色阶段不应用方向计算的光源。相反,只进行基于距离的计算

祝你好运

您可以使用Jerome Etienne提供的

对我来说,它在Three.js r71上运行良好,尽管我还没有在以后的版本中尝试过

用法

可能的话,你可以使用Jerome Etienne的

对我来说,它在Three.js r71上运行良好,尽管我还没有在以后的版本中尝试过


用法说明

请阅读我们的页面,了解如何改进此问题的提示。你可以从添加一个问题开始,请阅读我们的页面,了解如何改进这个问题。你可以从添加一个问题开始如果我添加聚光灯,它会在有雾的场景中产生光线吗?你能给我发送一个链接吗?嗨,Suhail,这些线在我看来是一个辅助机制,让你可以看到平行光指向的方向。我认为它除了节省时间之外没有其他用途(我通常在DirectX项目中创建光源时也这么做)。点光源是一种不太容易混淆的光源形式,因为它不完全指向一个方向,因此减少了对指导原则的需要。我刚刚遇到了一个可能会有所帮助的问题:如果我添加聚光灯,它会在有雾的场景中产生光线吗?你能给我发一个链接吗?嗨,Suhail,在我看来,这些线是一种辅助机制,可以让你看到平行光指向哪个方向。我认为它除了节省时间之外没有其他用途(我通常在DirectX项目中创建光源时也这么做)。点光源是一种不太容易混淆的光源形式,因为它不完全指向一个方向,因此减少了对指导原则的需要。我刚刚发现了这一点,这可能会有所帮助: