diff --git a/examples/webgl_raycast_sprite.html b/examples/webgl_raycast_sprite.html
index 9cc1a7936574ad..15988e313ccf29 100644
--- a/examples/webgl_raycast_sprite.html
+++ b/examples/webgl_raycast_sprite.html
@@ -87,6 +87,26 @@
sprite.material.rotation = Math.PI / 3;
group2.add( sprite );
+
+ var num = 20;
+ var radius = 10;
+ while(num --) {
+
+ var x = Math.random() - 0.5;
+ var y = Math.random() - 0.5;
+ var z = Math.random() - 0.5;
+
+ var sprite = new THREE.Sprite( new THREE.SpriteMaterial( { color: '#96f' } ));
+ sprite.position.set( x, y, z );
+ sprite.position.normalize();
+ sprite.position.multiplyScalar( radius );
+ sprite.scale.set(0.05 * Math.random(), 0.05 * Math.random(), 0.05 * Math.random());
+ sprite.material.rotation = Math.random() * Math.PI * 2;
+ sprite.material.sizeAttenuation = false;
+ group.add( sprite );
+
+ }
+
window.addEventListener( 'resize', onWindowResize, false );
window.addEventListener( "mousemove", onDocumentMouseMove, false );
@@ -115,7 +135,7 @@
event.preventDefault();
if ( selectedObject ) {
- selectedObject.material.color.set( '#69f' );
+ selectedObject.material.color.set( selectedObject.originColor );
selectedObject = null;
}
@@ -132,6 +152,7 @@
if ( res && res.object ) {
selectedObject = res.object;
+ selectedObject.originColor = selectedObject.material.color.getHex();
selectedObject.material.color.set( '#f00' );
}
diff --git a/src/objects/Sprite.js b/src/objects/Sprite.js
index e653fc1c464f1a..e0a629a8a77e89 100644
--- a/src/objects/Sprite.js
+++ b/src/objects/Sprite.js
@@ -104,6 +104,12 @@ Sprite.prototype = Object.assign( Object.create( Object3D.prototype ), {
viewWorldMatrix.getInverse( this.modelViewMatrix ).premultiply( this.matrixWorld );
mvPosition.setFromMatrixPosition( this.modelViewMatrix );
+ if ( this.material.sizeAttenuation === false ) {
+
+ worldScale.multiplyScalar( - mvPosition.z );
+
+ }
+
var rotation = this.material.rotation;
var sin, cos;
if ( rotation !== 0 ) {