three
Version:
JavaScript 3D library
21 lines (16 loc) • 708 B
JavaScript
import { bvec3, vec3, Fn } from '../tsl/TSLBase.js';
import { greaterThan } from '../math/OperatorNode.js';
import { max, pow, mix } from '../math/MathNode.js';
export const mx_srgb_texture_to_lin_rec709 = /*@__PURE__*/ Fn( ( [ color_immutable ] ) => {
const color = vec3( color_immutable ).toVar();
const isAbove = bvec3( greaterThan( color, vec3( 0.04045 ) ) ).toVar();
const linSeg = vec3( color.div( 12.92 ) ).toVar();
const powSeg = vec3( pow( max( color.add( vec3( 0.055 ) ), vec3( 0.0 ) ).div( 1.055 ), vec3( 2.4 ) ) ).toVar();
return mix( linSeg, powSeg, isAbove );
} ).setLayout( {
name: 'mx_srgb_texture_to_lin_rec709',
type: 'vec3',
inputs: [
{ name: 'color', type: 'vec3' }
]
} );