WestLangley 7 лет назад
Родитель
Сommit
e044de6eff

+ 3 - 2
docs/api/objects/Sprite.html

@@ -57,9 +57,10 @@ scene.add( sprite );
 		</div>
 
 
-		<h3>[property:Vector2 pivot]</h3>
+		<h3>[property:Vector2 center]</h3>
 		<div>
-		The origin of the sprite, and the point around which the sprite rotates. The lower-left is (-0.5, -0.5). The upper-right is (0.5, 0.5). The default is (0.0, 0.0), the center of the sprite.
+		The sprite's anchor point, and the point around which the sprite rotates. A value of (0.5, 0.5) corresponds to the midpoint of the sprite.
+		A value of (0, 0) corresponds to the lower left corner of the sprite. The default is (0.5, 0.5).
 		</div>
 
 		<h2>Methods</h2>

+ 5 - 5
examples/webgl_sprites.html

@@ -119,27 +119,27 @@
 				var height = material.map.image.height;
 
 				spriteTL = new THREE.Sprite( material );
-				spriteTL.pivot.set( - 0.5, 0.5 );
+				spriteTL.center.set( 0.0, 1.0 );
 				spriteTL.scale.set( width, height, 1 );
 				sceneOrtho.add( spriteTL );
 
 				spriteTR = new THREE.Sprite( material );
-				spriteTR.pivot.set( 0.5, 0.5 );
+				spriteTR.center.set( 1.0, 1.0 );
 				spriteTR.scale.set( width, height, 1 );
 				sceneOrtho.add( spriteTR );
 
 				spriteBL = new THREE.Sprite( material );
-				spriteBL.pivot.set( - 0.5, - 0.5 );
+				spriteBL.center.set( 0.0, 0.0 );
 				spriteBL.scale.set( width, height, 1 );
 				sceneOrtho.add( spriteBL );
 
 				spriteBR = new THREE.Sprite( material );
-				spriteBR.pivot.set( 0.5, - 0.5 );
+				spriteBR.center.set( 1.0, 0.0 );
 				spriteBR.scale.set( width, height, 1 );
 				sceneOrtho.add( spriteBR );
 
 				spriteC = new THREE.Sprite( material );
-				spriteC.pivot.set( 0, 0 );
+				spriteC.center.set( 0.5, 0.5 );
 				spriteC.scale.set( width, height, 1 );
 				sceneOrtho.add( spriteC );
 

+ 1 - 1
src/objects/Sprite.js

@@ -16,7 +16,7 @@ function Sprite( material ) {
 
 	this.material = ( material !== undefined ) ? material : new SpriteMaterial();
 
-	this.pivot = new Vector2( 0, 0 );
+	this.center = new Vector2( 0.5, 0.5 );
 
 }
 

+ 7 - 7
src/renderers/webgl/WebGLSpriteRenderer.js

@@ -55,7 +55,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 			uvScale: gl.getUniformLocation( program, 'uvScale' ),
 
 			rotation: gl.getUniformLocation( program, 'rotation' ),
-			pivot: gl.getUniformLocation( program, 'pivot' ),
+			center: gl.getUniformLocation( program, 'center' ),
 			scale: gl.getUniformLocation( program, 'scale' ),
 
 			color: gl.getUniformLocation( program, 'color' ),
@@ -172,7 +172,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 		// render all sprites
 
 		var scale = [];
-		var pivot = [];
+		var center = [];
 
 		for ( var i = 0, l = sprites.length; i < l; i ++ ) {
 
@@ -191,8 +191,8 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 			scale[ 0 ] = spriteScale.x;
 			scale[ 1 ] = spriteScale.y;
 
-			pivot[ 0 ] = sprite.pivot.x;
-			pivot[ 1 ] = sprite.pivot.y;
+			center[ 0 ] = sprite.center.x - 0.5;
+			center[ 1 ] = sprite.center.y - 0.5;
 
 			var fogType = 0;
 
@@ -225,7 +225,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 			gl.uniform3f( uniforms.color, material.color.r, material.color.g, material.color.b );
 
 			gl.uniform1f( uniforms.rotation, material.rotation );
-			gl.uniform2fv( uniforms.pivot, pivot );
+			gl.uniform2fv( uniforms.center, center );
 			gl.uniform2fv( uniforms.scale, scale );
 
 			state.setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha );
@@ -265,7 +265,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 			'uniform mat4 modelViewMatrix;',
 			'uniform mat4 projectionMatrix;',
 			'uniform float rotation;',
-			'uniform vec2 pivot;',
+			'uniform vec2 center;',
 			'uniform vec2 scale;',
 			'uniform vec2 uvOffset;',
 			'uniform vec2 uvScale;',
@@ -280,7 +280,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 
 			'	vUV = uvOffset + uv * uvScale;',
 
-			'	vec2 alignedPosition = ( position - pivot ) * scale;',
+			'	vec2 alignedPosition = ( position - center ) * scale;',
 
 			'	vec2 rotatedPosition;',
 			'	rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;',