소스 검색

Merge pull request #13925 from 06wj/patch1

Add gammaFactor param for convertGammaToLinear & convertLinearToGamma
Mr.doob 7 년 전
부모
커밋
40f2935827
2개의 변경된 파일15개의 추가작업 그리고 15개의 파일을 삭제
  1. 11 5
      docs/api/math/Color.html
  2. 4 10
      src/math/Color.js

+ 11 - 5
docs/api/math/Color.html

@@ -121,11 +121,17 @@ var color = new THREE.Color( 1, 0, 0 );
 			Copies the [page:.r r], [page:.g g] and [page:.b b] parameters from [page:Color color] in to this color.
 		</p>
 
-		<h3>[method:Color convertGammaToLinear]() </h3>
-		<p>Converts this color from gamma to linear space by squaring the values of [page:.r r], [page:.g g] and [page:.b b] ).</p>
-
-		<h3>[method:Color convertLinearToGamma]() </h3>
-		<p>Converts this color from linear to gamma space by taking the square root of [page:.r r], [page:.g g] and [page:.b b]).</p>
+		<h3>[method:Color convertGammaToLinear]( [param:Float gammaFactor] ) </h3>
+		<p>
+		[page:Float gammaFactor] - (optional). Default is *2.0*.<br /><br />
+		Converts this color from gamma to linear space by taking [page:.r r], [page:.g g] and [page:.b b] to the power of [page:Float gammaFactor].
+		</p>
+		
+		<h3>[method:Color convertLinearToGamma]( [param:Float gammaFactor] ) </h3>
+		<p>
+		[page:Float gammaFactor] - (optional). Default is *2.0*.<br /><br />
+		Converts this color from linear to gamma space by taking [page:.r r], [page:.g g] and [page:.b b] to the power of 1 / [page:Float gammaFactor].
+		</p>
 
 		<h3>[method:Color copyGammaToLinear]( [param:Color color], [param:Float gammaFactor] ) </h3>
 		<p>

+ 4 - 10
src/math/Color.js

@@ -313,23 +313,17 @@ Object.assign( Color.prototype, {
 
 	},
 
-	convertGammaToLinear: function () {
+	convertGammaToLinear: function ( gammaFactor ) {
 
-		var r = this.r, g = this.g, b = this.b;
-
-		this.r = r * r;
-		this.g = g * g;
-		this.b = b * b;
+		this.copyGammaToLinear( this, gammaFactor );
 
 		return this;
 
 	},
 
-	convertLinearToGamma: function () {
+	convertLinearToGamma: function ( gammaFactor ) {
 
-		this.r = Math.sqrt( this.r );
-		this.g = Math.sqrt( this.g );
-		this.b = Math.sqrt( this.b );
+		this.copyLinearToGamma( this, gammaFactor );
 
 		return this;