Buckets:
| /** | |
| * @module OutputShader | |
| * @three_import import { OutputShader } from 'three/addons/shaders/OutputShader.js'; | |
| */ | |
| /** | |
| * Performs tone mapping and color space conversion for | |
| * FX workflows. | |
| * | |
| * Used by {@link OutputPass}. | |
| * | |
| * @constant | |
| * @type {ShaderMaterial~Shader} | |
| */ | |
| const OutputShader = { | |
| name: 'OutputShader', | |
| uniforms: { | |
| 'tDiffuse': { value: null }, | |
| 'toneMappingExposure': { value: 1 } | |
| }, | |
| vertexShader: /* glsl */` | |
| precision highp float; | |
| uniform mat4 modelViewMatrix; | |
| uniform mat4 projectionMatrix; | |
| attribute vec3 position; | |
| attribute vec2 uv; | |
| varying vec2 vUv; | |
| void main() { | |
| vUv = uv; | |
| gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); | |
| }`, | |
| fragmentShader: /* glsl */` | |
| precision highp float; | |
| uniform sampler2D tDiffuse; | |
| #include <tonemapping_pars_fragment> | |
| #include <colorspace_pars_fragment> | |
| varying vec2 vUv; | |
| void main() { | |
| gl_FragColor = texture2D( tDiffuse, vUv ); | |
| // tone mapping | |
| #ifdef LINEAR_TONE_MAPPING | |
| gl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb ); | |
| #elif defined( REINHARD_TONE_MAPPING ) | |
| gl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb ); | |
| #elif defined( CINEON_TONE_MAPPING ) | |
| gl_FragColor.rgb = CineonToneMapping( gl_FragColor.rgb ); | |
| #elif defined( ACES_FILMIC_TONE_MAPPING ) | |
| gl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb ); | |
| #elif defined( AGX_TONE_MAPPING ) | |
| gl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb ); | |
| #elif defined( NEUTRAL_TONE_MAPPING ) | |
| gl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb ); | |
| #elif defined( CUSTOM_TONE_MAPPING ) | |
| gl_FragColor.rgb = CustomToneMapping( gl_FragColor.rgb ); | |
| #endif | |
| // color space | |
| #ifdef SRGB_TRANSFER | |
| gl_FragColor = sRGBTransferOETF( gl_FragColor ); | |
| #endif | |
| }` | |
| }; | |
| export { OutputShader }; | |
Xet Storage Details
- Size:
- 1.88 kB
- Xet hash:
- ebe3bda3abceda44030399e7d0b035655078c777e24b536b5295bb73c0ca53b2
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.