シーン内の特定の点の光度やピクセル値(rgba)を取得する方法が不思議です。例えばThreeJS - x/y/zの任意の点で光強度/ピクセル値を測定するにはどうすればよいですか?
私は、キューブの上に輝いて移動する光でシーンを持っていると、キューブの特定のポイントはどのように明るい測定したい:
// Our Javascript will go here.
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer({ preserveDrawingBuffer: true });
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var geometry = new THREE.BoxGeometry(1, 1, 1);
var material = new THREE.MeshLambertMaterial();
var cube = new THREE.Mesh(geometry, material);
cube.rotation.x += 0.4;
cube.rotation.y += 0.4;
scene.add(cube);
var plane_geo = new THREE.PlaneGeometry(2,2,2);
var plane = new THREE.Mesh(plane_geo, material);
plane.rotation.x = -1;
plane.position.y = -0.5;
scene.add(plane);
var light = new THREE.SpotLight(0xff0000, 1, 100);
//var light = new THREE.PointLight(0xff0000, 1, 100);
light.position.set(3, 2, 2);
scene.add(light);
var sphereSize = 0.1;
var pointLightHelper = new THREE.PointLightHelper(light, sphereSize);
scene.add(pointLightHelper);
var lightX = 0.5;
var lightY = 0.5;
camera.position.z = 5;
animate();
document.addEventListener("mousemove",mousemove_handler);
function animate() {
\t requestAnimationFrame(animate);
\t light.position.set(lightX,lightY,1);
\t renderer.render(scene, camera);
}
function mousemove_handler(event)
{
\t // get Mouse Coords mapped to the 3D Vector
\t var vector = new THREE.Vector3();
\t vector.set(
\t (event.clientX/window.innerWidth) * 2 - 1,
\t - (event.clientY/window.innerHeight) * 2 + 1,
\t 0.5);
\t vector.unproject(camera);
\t var dir = vector.sub(camera.position).normalize();
\t var distance = - camera.position.z/dir.z;
\t var pos = camera.position.clone().add(dir.multiplyScalar(distance));
\t lightX = pos.x;
\t lightY = pos.y;
}
body { margin: 0; }
\t \t \t canvas { width: 100%; height: 100% }
<!DOCTYPE html>
<html>
\t <head>
\t \t <meta charset=utf-8>
\t \t <title>My first three.js app</title>
\t \t <style>
\t \t \t body { margin: 0; }
\t \t \t canvas { width: 100%; height: 100% }
\t \t </style>
\t </head>
\t <body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/87/three.min.js"></script>
</body>
</html>
r71を使用するのは良い考えではない可能性があります。それを指摘するために、r87 https://cdnjs.cloudflare.com/ajax/libs/three.js/87/three.min.js – Radio
thxにアップグレードする方が良いでしょう。完了しました。 – gauguerilla