Raycaster

De OSWiki
Aller à la navigation Aller à la recherche

Cette classe est conçu pour faciliter le raycasting. Le raycasting est utilisé entre autres choses, pour détecter ce que la souris sélectionne (trouver les objets que la souris survole dans l'espace 3D).

Exemple

var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2();

function onMouseMove( event ) {

	// Définition de la position de la souris dans des coordonnées normalisées du système
	// (-1 à +1) pour les deux composantes

	mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
	mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;

}

function render() {
	// mise à jour du rayon de sélection avec les positions de la caméra et de la souris 
 	raycaster.setFromCamera( mouse, camera );

	//définition des objets qui croisent le rayon de sélection
	var intersects = raycaster.intersectObjects( scene.children );

	for ( var i = 0; i < intersects.length; i++ ) {

		intersects[ i ].object.material.color.set( 0xff0000 );

	}
	renderer.render( scene, camera );

}

window.addEventListener( 'mousemove', onMouseMove, false );
window.requestAnimationFrame(render);

Constructeur

Raycaster( origin, direction, near, far )

origin — vecteur d'origine d'où provient le rayon.

direction — vecteur de direction qui donne la direction du rayon. Il doit être normalisé.

near — Tous les résultats retournés sont plus éloignés que near. Near ne peut pas être négatif. La valeur par défaut est 0.

far — Tous les résultats retournés sont plus proches que far. Far ne peut pas être inférieur à near. La valeur par défaut est Infinity.

Cela crée un nouvel objet raycaster.

Propriétés

.far

C'est le facteur far de raycaster. Cette valeur indique quels objets peuvent être éliminés en fonction de la distance.

Cette valeur ne doit pas être négative et doit être supérieure à la propriété near.


.linePrecision

Facteur de précision du raycaster quand il intercepte un objet Line.


.near

Le facteur near de raycaster. Cette valeur indique quels objets peuvent être éliminés en fonction de la distance.

Cette valeur ne doit pas être négative en doit être plus petite que la propriété far.


.params

Un objet avec les propriétés suivantes :

{

 Mesh: {},
 Line: {},
 LOD: {},
 Points: {Threshold: 1},
 Sprite: {}

}


.ray

L'objet Ray utilisé pour le raycasting.

Méthodes