Skip to content

Commit 1d544d0

Browse files
authored
Remove LogLuv encoding from the shaders (#22876)
* Remove logLuv encoding from the shaders * Update constants
1 parent d471257 commit 1d544d0

File tree

7 files changed

+3
-87
lines changed

7 files changed

+3
-87
lines changed

docs/api/en/constants/Textures.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,6 @@ <h2>Encoding</h2>
561561
THREE.sRGBEncoding
562562
THREE.GammaEncoding
563563
THREE.RGBEEncoding
564-
THREE.LogLuvEncoding
565564
THREE.RGBM7Encoding
566565
THREE.RGBM16Encoding
567566
THREE.RGBDEncoding

examples/jsm/nodes/utils/ColorSpaceNode.js

Lines changed: 1 addition & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,6 @@ ColorSpaceNode.Nodes = ( function () {
197197
}`
198198
);
199199

200-
201200
const LinearToRGBD = new FunctionNode( /* glsl */`
202201
vec3 LinearToRGBD( in vec4 value, in float maxRange ) {
203202
@@ -209,45 +208,6 @@ ColorSpaceNode.Nodes = ( function () {
209208
}`
210209
);
211210

212-
// LogLuv reference: http://graphicrants.blogspot.ca/2009/04/rgbm-color-encoding.html
213-
214-
// M matrix, for encoding
215-
216-
const cLogLuvM = new ConstNode( 'const mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );' );
217-
218-
const LinearToLogLuv = new FunctionNode( /* glsl */`
219-
vec4 LinearToLogLuv( in vec4 value ) {
220-
221-
vec3 Xp_Y_XYZp = cLogLuvM * value.rgb;
222-
Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));
223-
vec4 vResult;
224-
vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;
225-
float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;
226-
vResult.w = fract(Le);
227-
vResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;
228-
return vResult;
229-
230-
}`
231-
, [ cLogLuvM ] );
232-
233-
// Inverse M matrix, for decoding
234-
235-
const cLogLuvInverseM = new ConstNode( 'const mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );' );
236-
237-
const LogLuvToLinear = new FunctionNode( /* glsl */`
238-
vec4 LogLuvToLinear( in vec4 value ) {
239-
240-
float Le = value.z * 255.0 + value.w;
241-
vec3 Xp_Y_XYZp;
242-
Xp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);
243-
Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;
244-
Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;
245-
vec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;
246-
return vec4( max(vRGB, 0.0), 1.0 );
247-
248-
}`
249-
, [ cLogLuvInverseM ] );
250-
251211
return {
252212
LinearToLinear: LinearToLinear,
253213
GammaToLinear: GammaToLinear,
@@ -259,11 +219,7 @@ ColorSpaceNode.Nodes = ( function () {
259219
RGBMToLinear: RGBMToLinear,
260220
LinearToRGBM: LinearToRGBM,
261221
RGBDToLinear: RGBDToLinear,
262-
LinearToRGBD: LinearToRGBD,
263-
cLogLuvM: cLogLuvM,
264-
LinearToLogLuv: LinearToLogLuv,
265-
cLogLuvInverseM: cLogLuvInverseM,
266-
LogLuvToLinear: LogLuvToLinear
222+
LinearToRGBD: LinearToRGBD
267223
};
268224

269225
} )();
@@ -285,9 +241,6 @@ ColorSpaceNode.LINEAR_TO_RGBM = 'LinearToRGBM';
285241
ColorSpaceNode.RGBD_TO_LINEAR = 'RGBDToLinear';
286242
ColorSpaceNode.LINEAR_TO_RGBD = 'LinearToRGBD';
287243

288-
ColorSpaceNode.LINEAR_TO_LOG_LUV = 'LinearToLogLuv';
289-
ColorSpaceNode.LOG_LUV_TO_LINEAR = 'LogLuvToLinear';
290-
291244
ColorSpaceNode.getEncodingComponents = function ( encoding ) {
292245

293246
switch ( encoding ) {

examples/jsm/renderers/nodes/display/ColorSpaceNode.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { ShaderNode } from '../ShaderNode.js';
33

44
import { LinearEncoding/*,
55
sRGBEncoding, RGBEEncoding, RGBM7Encoding, RGBM16Encoding,
6-
RGBDEncoding, GammaEncoding, LogLuvEncoding*/ } from 'three';
6+
RGBDEncoding, GammaEncoding*/ } from 'three';
77

88
export const LinearToLinear = new ShaderNode( ( inputs ) => {
99

@@ -30,8 +30,6 @@ function getEncodingComponents ( encoding ) {
3030
return [ 'RGBD', new FloatNode( 256.0 ).setConst( true ) ];
3131
case GammaEncoding:
3232
return [ 'Gamma', new CodeNode( 'float( GAMMA_FACTOR )' ) ];
33-
case LogLuvEncoding:
34-
return [ 'LogLuv' ];
3533
*/
3634
}
3735

@@ -55,9 +53,6 @@ class ColorSpaceNode extends TempNode {
5553
5654
static RGBD_TO_LINEAR = 'RGBDToLinear';
5755
static LINEAR_TO_RGBD = 'LinearToRGBD';
58-
59-
static LINEAR_TO_LOG_LUV = 'LinearToLogLuv';
60-
static LOG_LUV_TO_LINEAR = 'LogLuvToLinear';
6156
*/
6257
constructor( method, node ) {
6358

src/constants.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,6 @@ export const LinearEncoding = 3000;
159159
export const sRGBEncoding = 3001;
160160
export const GammaEncoding = 3007;
161161
export const RGBEEncoding = 3002;
162-
export const LogLuvEncoding = 3003;
163162
export const RGBM7Encoding = 3004;
164163
export const RGBM16Encoding = 3005;
165164
export const RGBDEncoding = 3006;

src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -59,31 +59,4 @@ vec4 LinearToRGBD( in vec4 value, in float maxRange ) {
5959
D = clamp( floor( D ) / 255.0, 0.0, 1.0 );
6060
return vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );
6161
}
62-
63-
// LogLuv reference: http://graphicrants.blogspot.ca/2009/04/rgbm-color-encoding.html
64-
65-
// M matrix, for encoding
66-
const mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );
67-
vec4 LinearToLogLuv( in vec4 value ) {
68-
vec3 Xp_Y_XYZp = cLogLuvM * value.rgb;
69-
Xp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );
70-
vec4 vResult;
71-
vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;
72-
float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;
73-
vResult.w = fract( Le );
74-
vResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;
75-
return vResult;
76-
}
77-
78-
// Inverse M matrix, for decoding
79-
const mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );
80-
vec4 LogLuvToLinear( in vec4 value ) {
81-
float Le = value.z * 255.0 + value.w;
82-
vec3 Xp_Y_XYZp;
83-
Xp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );
84-
Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;
85-
Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;
86-
vec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;
87-
return vec4( max( vRGB, 0.0 ), 1.0 );
88-
}
8962
`;

src/renderers/webgl/WebGLProgram.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { WebGLUniforms } from './WebGLUniforms.js';
22
import { WebGLShader } from './WebGLShader.js';
33
import { ShaderChunk } from '../shaders/ShaderChunk.js';
4-
import { RGBFormat, NoToneMapping, AddOperation, MixOperation, MultiplyOperation, CubeRefractionMapping, CubeUVRefractionMapping, CubeUVReflectionMapping, CubeReflectionMapping, PCFSoftShadowMap, PCFShadowMap, VSMShadowMap, ACESFilmicToneMapping, CineonToneMapping, CustomToneMapping, ReinhardToneMapping, LinearToneMapping, GammaEncoding, RGBDEncoding, RGBM16Encoding, RGBM7Encoding, RGBEEncoding, sRGBEncoding, LinearEncoding, LogLuvEncoding, GLSL3 } from '../../constants.js';
4+
import { RGBFormat, NoToneMapping, AddOperation, MixOperation, MultiplyOperation, CubeRefractionMapping, CubeUVRefractionMapping, CubeUVReflectionMapping, CubeReflectionMapping, PCFSoftShadowMap, PCFShadowMap, VSMShadowMap, ACESFilmicToneMapping, CineonToneMapping, CustomToneMapping, ReinhardToneMapping, LinearToneMapping, GammaEncoding, RGBDEncoding, RGBM16Encoding, RGBM7Encoding, RGBEEncoding, sRGBEncoding, LinearEncoding, GLSL3 } from '../../constants.js';
55

66
let programIdCount = 0;
77

@@ -37,8 +37,6 @@ function getEncodingComponents( encoding ) {
3737
return [ 'RGBD', '( value, 256.0 )' ];
3838
case GammaEncoding:
3939
return [ 'Gamma', '( value, float( GAMMA_FACTOR ) )' ];
40-
case LogLuvEncoding:
41-
return [ 'LogLuv', '( value )' ];
4240
default:
4341
console.warn( 'THREE.WebGLProgram: Unsupported encoding:', encoding );
4442
return [ 'Linear', '( value )' ];

test/unit/src/constants.tests.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ export default QUnit.module( 'Constants', () => {
133133
assert.equal( Constants.sRGBEncoding, 3001, 'sRGBEncoding is equal to 3001' );
134134
assert.equal( Constants.GammaEncoding, 3007, 'GammaEncoding is equal to 3007' );
135135
assert.equal( Constants.RGBEEncoding, 3002, 'RGBEEncoding is equal to 3002' );
136-
assert.equal( Constants.LogLuvEncoding, 3003, 'LogLuvEncoding is equal to 3003' );
137136
assert.equal( Constants.RGBM7Encoding, 3004, 'RGBM7Encoding is equal to 3004' );
138137
assert.equal( Constants.RGBM16Encoding, 3005, 'RGBM16Encoding is equal to 3005' );
139138
assert.equal( Constants.RGBDEncoding, 3006, 'RGBDEncoding is equal to 3006' );

0 commit comments

Comments
 (0)