@needle-tools/three 0.162.7 → 0.162.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/three.cjs +1214 -1205
- package/build/three.module.js +798 -789
- package/build/three.module.min.js +6 -6
- package/package.json +1 -1
- package/src/extras/PMREMGenerator.js +9 -0
package/build/three.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2010-2023 Three.js Authors
|
|
4
|
-
* SPDX-License-Identifier: MIT
|
|
5
|
-
*/
|
|
6
|
-
'use strict';
|
|
7
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2010-2023 Three.js Authors
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
8
|
const REVISION = '162';
|
|
9
9
|
|
|
10
10
|
const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
|
|
@@ -221,8 +221,8 @@ const GLSL3 = '300 es';
|
|
|
221
221
|
const _SRGBAFormat = 1035; // fallback for WebGL 1
|
|
222
222
|
|
|
223
223
|
const WebGLCoordinateSystem = 2000;
|
|
224
|
-
const WebGPUCoordinateSystem = 2001;
|
|
225
|
-
|
|
224
|
+
const WebGPUCoordinateSystem = 2001;
|
|
225
|
+
|
|
226
226
|
/**
|
|
227
227
|
* https://github.com/mrdoob/eventdispatcher.js/
|
|
228
228
|
*/
|
|
@@ -306,8 +306,8 @@ class EventDispatcher {
|
|
|
306
306
|
|
|
307
307
|
}
|
|
308
308
|
|
|
309
|
-
}
|
|
310
|
-
|
|
309
|
+
}
|
|
310
|
+
|
|
311
311
|
const _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];
|
|
312
312
|
|
|
313
313
|
let _seed = 1234567;
|
|
@@ -642,8 +642,8 @@ const MathUtils = {
|
|
|
642
642
|
setQuaternionFromProperEuler: setQuaternionFromProperEuler,
|
|
643
643
|
normalize: normalize,
|
|
644
644
|
denormalize: denormalize
|
|
645
|
-
};
|
|
646
|
-
|
|
645
|
+
};
|
|
646
|
+
|
|
647
647
|
class Vector2 {
|
|
648
648
|
|
|
649
649
|
constructor( x = 0, y = 0 ) {
|
|
@@ -1119,8 +1119,8 @@ class Vector2 {
|
|
|
1119
1119
|
|
|
1120
1120
|
}
|
|
1121
1121
|
|
|
1122
|
-
}
|
|
1123
|
-
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
1124
|
class Matrix3 {
|
|
1125
1125
|
|
|
1126
1126
|
constructor( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {
|
|
@@ -1506,8 +1506,8 @@ class Matrix3 {
|
|
|
1506
1506
|
|
|
1507
1507
|
}
|
|
1508
1508
|
|
|
1509
|
-
const _m3 = /*@__PURE__*/ new Matrix3();
|
|
1510
|
-
|
|
1509
|
+
const _m3 = /*@__PURE__*/ new Matrix3();
|
|
1510
|
+
|
|
1511
1511
|
function arrayNeedsUint32( array ) {
|
|
1512
1512
|
|
|
1513
1513
|
// assumes larger values usually on last
|
|
@@ -1564,8 +1564,8 @@ function warnOnce( message ) {
|
|
|
1564
1564
|
|
|
1565
1565
|
console.warn( message );
|
|
1566
1566
|
|
|
1567
|
-
}
|
|
1568
|
-
|
|
1567
|
+
}
|
|
1568
|
+
|
|
1569
1569
|
/**
|
|
1570
1570
|
* Matrices converting P3 <-> Rec. 709 primaries, without gamut mapping
|
|
1571
1571
|
* or clipping. Based on W3C specifications for sRGB and Display P3,
|
|
@@ -1701,8 +1701,8 @@ function LinearToSRGB( c ) {
|
|
|
1701
1701
|
|
|
1702
1702
|
return ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055;
|
|
1703
1703
|
|
|
1704
|
-
}
|
|
1705
|
-
|
|
1704
|
+
}
|
|
1705
|
+
|
|
1706
1706
|
let _canvas;
|
|
1707
1707
|
|
|
1708
1708
|
class ImageUtils {
|
|
@@ -1826,8 +1826,8 @@ class ImageUtils {
|
|
|
1826
1826
|
|
|
1827
1827
|
}
|
|
1828
1828
|
|
|
1829
|
-
}
|
|
1830
|
-
|
|
1829
|
+
}
|
|
1830
|
+
|
|
1831
1831
|
let _sourceId = 0;
|
|
1832
1832
|
|
|
1833
1833
|
class Source {
|
|
@@ -1950,8 +1950,8 @@ function serializeImage( image ) {
|
|
|
1950
1950
|
|
|
1951
1951
|
}
|
|
1952
1952
|
|
|
1953
|
-
}
|
|
1954
|
-
|
|
1953
|
+
}
|
|
1954
|
+
|
|
1955
1955
|
let _textureId = 0;
|
|
1956
1956
|
|
|
1957
1957
|
class Texture extends EventDispatcher {
|
|
@@ -2242,8 +2242,8 @@ class Texture extends EventDispatcher {
|
|
|
2242
2242
|
|
|
2243
2243
|
Texture.DEFAULT_IMAGE = null;
|
|
2244
2244
|
Texture.DEFAULT_MAPPING = UVMapping;
|
|
2245
|
-
Texture.DEFAULT_ANISOTROPY = 1;
|
|
2246
|
-
|
|
2245
|
+
Texture.DEFAULT_ANISOTROPY = 1;
|
|
2246
|
+
|
|
2247
2247
|
class Vector4 {
|
|
2248
2248
|
|
|
2249
2249
|
constructor( x = 0, y = 0, z = 0, w = 1 ) {
|
|
@@ -2885,8 +2885,8 @@ class Vector4 {
|
|
|
2885
2885
|
|
|
2886
2886
|
}
|
|
2887
2887
|
|
|
2888
|
-
}
|
|
2889
|
-
|
|
2888
|
+
}
|
|
2889
|
+
|
|
2890
2890
|
/*
|
|
2891
2891
|
In options, we can specify:
|
|
2892
2892
|
* Texture parameters for an auto-generated target texture
|
|
@@ -3032,8 +3032,8 @@ class RenderTarget extends EventDispatcher {
|
|
|
3032
3032
|
|
|
3033
3033
|
}
|
|
3034
3034
|
|
|
3035
|
-
}
|
|
3036
|
-
|
|
3035
|
+
}
|
|
3036
|
+
|
|
3037
3037
|
class WebGLRenderTarget extends RenderTarget {
|
|
3038
3038
|
|
|
3039
3039
|
constructor( width = 1, height = 1, options = {} ) {
|
|
@@ -3044,8 +3044,8 @@ class WebGLRenderTarget extends RenderTarget {
|
|
|
3044
3044
|
|
|
3045
3045
|
}
|
|
3046
3046
|
|
|
3047
|
-
}
|
|
3048
|
-
|
|
3047
|
+
}
|
|
3048
|
+
|
|
3049
3049
|
class DataArrayTexture extends Texture {
|
|
3050
3050
|
|
|
3051
3051
|
constructor( data = null, width = 1, height = 1, depth = 1 ) {
|
|
@@ -3067,8 +3067,8 @@ class DataArrayTexture extends Texture {
|
|
|
3067
3067
|
|
|
3068
3068
|
}
|
|
3069
3069
|
|
|
3070
|
-
}
|
|
3071
|
-
|
|
3070
|
+
}
|
|
3071
|
+
|
|
3072
3072
|
class WebGLArrayRenderTarget extends WebGLRenderTarget {
|
|
3073
3073
|
|
|
3074
3074
|
constructor( width = 1, height = 1, depth = 1, options = {} ) {
|
|
@@ -3085,8 +3085,8 @@ class WebGLArrayRenderTarget extends WebGLRenderTarget {
|
|
|
3085
3085
|
|
|
3086
3086
|
}
|
|
3087
3087
|
|
|
3088
|
-
}
|
|
3089
|
-
|
|
3088
|
+
}
|
|
3089
|
+
|
|
3090
3090
|
class Data3DTexture extends Texture {
|
|
3091
3091
|
|
|
3092
3092
|
constructor( data = null, width = 1, height = 1, depth = 1 ) {
|
|
@@ -3116,8 +3116,8 @@ class Data3DTexture extends Texture {
|
|
|
3116
3116
|
|
|
3117
3117
|
}
|
|
3118
3118
|
|
|
3119
|
-
}
|
|
3120
|
-
|
|
3119
|
+
}
|
|
3120
|
+
|
|
3121
3121
|
class WebGL3DRenderTarget extends WebGLRenderTarget {
|
|
3122
3122
|
|
|
3123
3123
|
constructor( width = 1, height = 1, depth = 1, options = {} ) {
|
|
@@ -3134,8 +3134,8 @@ class WebGL3DRenderTarget extends WebGLRenderTarget {
|
|
|
3134
3134
|
|
|
3135
3135
|
}
|
|
3136
3136
|
|
|
3137
|
-
}
|
|
3138
|
-
|
|
3137
|
+
}
|
|
3138
|
+
|
|
3139
3139
|
class Quaternion {
|
|
3140
3140
|
|
|
3141
3141
|
constructor( x = 0, y = 0, z = 0, w = 1 ) {
|
|
@@ -3817,8 +3817,8 @@ class Quaternion {
|
|
|
3817
3817
|
|
|
3818
3818
|
}
|
|
3819
3819
|
|
|
3820
|
-
}
|
|
3821
|
-
|
|
3820
|
+
}
|
|
3821
|
+
|
|
3822
3822
|
class Vector3 {
|
|
3823
3823
|
|
|
3824
3824
|
constructor( x = 0, y = 0, z = 0 ) {
|
|
@@ -4537,8 +4537,8 @@ class Vector3 {
|
|
|
4537
4537
|
}
|
|
4538
4538
|
|
|
4539
4539
|
const _vector$c = /*@__PURE__*/ new Vector3();
|
|
4540
|
-
const _quaternion$4 = /*@__PURE__*/ new Quaternion();
|
|
4541
|
-
|
|
4540
|
+
const _quaternion$4 = /*@__PURE__*/ new Quaternion();
|
|
4541
|
+
|
|
4542
4542
|
class Box3 {
|
|
4543
4543
|
|
|
4544
4544
|
constructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {
|
|
@@ -5068,8 +5068,8 @@ function satForAxes( axes, v0, v1, v2, extents ) {
|
|
|
5068
5068
|
|
|
5069
5069
|
return true;
|
|
5070
5070
|
|
|
5071
|
-
}
|
|
5072
|
-
|
|
5071
|
+
}
|
|
5072
|
+
|
|
5073
5073
|
const _box$3 = /*@__PURE__*/ new Box3();
|
|
5074
5074
|
const _v1$6 = /*@__PURE__*/ new Vector3();
|
|
5075
5075
|
const _v2$3 = /*@__PURE__*/ new Vector3();
|
|
@@ -5309,8 +5309,8 @@ class Sphere {
|
|
|
5309
5309
|
|
|
5310
5310
|
}
|
|
5311
5311
|
|
|
5312
|
-
}
|
|
5313
|
-
|
|
5312
|
+
}
|
|
5313
|
+
|
|
5314
5314
|
const _vector$a = /*@__PURE__*/ new Vector3();
|
|
5315
5315
|
const _segCenter = /*@__PURE__*/ new Vector3();
|
|
5316
5316
|
const _segDir = /*@__PURE__*/ new Vector3();
|
|
@@ -5799,8 +5799,8 @@ class Ray {
|
|
|
5799
5799
|
|
|
5800
5800
|
}
|
|
5801
5801
|
|
|
5802
|
-
}
|
|
5803
|
-
|
|
5802
|
+
}
|
|
5803
|
+
|
|
5804
5804
|
class Matrix4 {
|
|
5805
5805
|
|
|
5806
5806
|
constructor( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {
|
|
@@ -6710,8 +6710,8 @@ const _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 );
|
|
|
6710
6710
|
const _one = /*@__PURE__*/ new Vector3( 1, 1, 1 );
|
|
6711
6711
|
const _x = /*@__PURE__*/ new Vector3();
|
|
6712
6712
|
const _y = /*@__PURE__*/ new Vector3();
|
|
6713
|
-
const _z = /*@__PURE__*/ new Vector3();
|
|
6714
|
-
|
|
6713
|
+
const _z = /*@__PURE__*/ new Vector3();
|
|
6714
|
+
|
|
6715
6715
|
const _matrix$2 = /*@__PURE__*/ new Matrix4();
|
|
6716
6716
|
const _quaternion$3 = /*@__PURE__*/ new Quaternion();
|
|
6717
6717
|
|
|
@@ -7020,8 +7020,8 @@ class Euler {
|
|
|
7020
7020
|
|
|
7021
7021
|
}
|
|
7022
7022
|
|
|
7023
|
-
Euler.DEFAULT_ORDER = 'XYZ';
|
|
7024
|
-
|
|
7023
|
+
Euler.DEFAULT_ORDER = 'XYZ';
|
|
7024
|
+
|
|
7025
7025
|
class Layers {
|
|
7026
7026
|
|
|
7027
7027
|
constructor() {
|
|
@@ -7078,8 +7078,8 @@ class Layers {
|
|
|
7078
7078
|
|
|
7079
7079
|
}
|
|
7080
7080
|
|
|
7081
|
-
}
|
|
7082
|
-
|
|
7081
|
+
}
|
|
7082
|
+
|
|
7083
7083
|
let _object3DId = 0;
|
|
7084
7084
|
|
|
7085
7085
|
const _v1$4 = /*@__PURE__*/ new Vector3();
|
|
@@ -8087,8 +8087,8 @@ class Object3D extends EventDispatcher {
|
|
|
8087
8087
|
|
|
8088
8088
|
Object3D.DEFAULT_UP = /*@__PURE__*/ new Vector3( 0, 1, 0 );
|
|
8089
8089
|
Object3D.DEFAULT_MATRIX_AUTO_UPDATE = true;
|
|
8090
|
-
Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;
|
|
8091
|
-
|
|
8090
|
+
Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;
|
|
8091
|
+
|
|
8092
8092
|
const _v0$1 = /*@__PURE__*/ new Vector3();
|
|
8093
8093
|
const _v1$3 = /*@__PURE__*/ new Vector3();
|
|
8094
8094
|
const _v2$2 = /*@__PURE__*/ new Vector3();
|
|
@@ -8395,8 +8395,8 @@ class Triangle {
|
|
|
8395
8395
|
|
|
8396
8396
|
}
|
|
8397
8397
|
|
|
8398
|
-
}
|
|
8399
|
-
|
|
8398
|
+
}
|
|
8399
|
+
|
|
8400
8400
|
const _colorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF,
|
|
8401
8401
|
'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2,
|
|
8402
8402
|
'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50,
|
|
@@ -9013,8 +9013,8 @@ class Color {
|
|
|
9013
9013
|
|
|
9014
9014
|
const _color = /*@__PURE__*/ new Color();
|
|
9015
9015
|
|
|
9016
|
-
Color.NAMES = _colorKeywords;
|
|
9017
|
-
|
|
9016
|
+
Color.NAMES = _colorKeywords;
|
|
9017
|
+
|
|
9018
9018
|
let _materialId = 0;
|
|
9019
9019
|
|
|
9020
9020
|
class Material extends EventDispatcher {
|
|
@@ -9530,8 +9530,8 @@ class Material extends EventDispatcher {
|
|
|
9530
9530
|
|
|
9531
9531
|
}
|
|
9532
9532
|
|
|
9533
|
-
}
|
|
9534
|
-
|
|
9533
|
+
}
|
|
9534
|
+
|
|
9535
9535
|
class MeshBasicMaterial extends Material {
|
|
9536
9536
|
|
|
9537
9537
|
constructor( parameters ) {
|
|
@@ -9608,8 +9608,8 @@ class MeshBasicMaterial extends Material {
|
|
|
9608
9608
|
|
|
9609
9609
|
}
|
|
9610
9610
|
|
|
9611
|
-
}
|
|
9612
|
-
|
|
9611
|
+
}
|
|
9612
|
+
|
|
9613
9613
|
// Fast Half Float Conversions, http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
|
|
9614
9614
|
|
|
9615
9615
|
const _tables = /*@__PURE__*/ _generateTables();
|
|
@@ -9777,8 +9777,8 @@ function fromHalfFloat( val ) {
|
|
|
9777
9777
|
const DataUtils = {
|
|
9778
9778
|
toHalfFloat: toHalfFloat,
|
|
9779
9779
|
fromHalfFloat: fromHalfFloat,
|
|
9780
|
-
};
|
|
9781
|
-
|
|
9780
|
+
};
|
|
9781
|
+
|
|
9782
9782
|
const _vector$9 = /*@__PURE__*/ new Vector3();
|
|
9783
9783
|
const _vector2$1 = /*@__PURE__*/ new Vector2();
|
|
9784
9784
|
|
|
@@ -10395,8 +10395,8 @@ class Float32BufferAttribute extends BufferAttribute {
|
|
|
10395
10395
|
|
|
10396
10396
|
}
|
|
10397
10397
|
|
|
10398
|
-
}
|
|
10399
|
-
|
|
10398
|
+
}
|
|
10399
|
+
|
|
10400
10400
|
let _id$2 = 0;
|
|
10401
10401
|
|
|
10402
10402
|
const _m1$2 = /*@__PURE__*/ new Matrix4();
|
|
@@ -11455,8 +11455,8 @@ class BufferGeometry extends EventDispatcher {
|
|
|
11455
11455
|
|
|
11456
11456
|
}
|
|
11457
11457
|
|
|
11458
|
-
}
|
|
11459
|
-
|
|
11458
|
+
}
|
|
11459
|
+
|
|
11460
11460
|
const _inverseMatrix$3 = /*@__PURE__*/ new Matrix4();
|
|
11461
11461
|
const _ray$3 = /*@__PURE__*/ new Ray();
|
|
11462
11462
|
const _sphere$6 = /*@__PURE__*/ new Sphere();
|
|
@@ -11871,8 +11871,8 @@ function checkGeometryIntersection( object, material, raycaster, ray, uv, uv1, n
|
|
|
11871
11871
|
|
|
11872
11872
|
return intersection;
|
|
11873
11873
|
|
|
11874
|
-
}
|
|
11875
|
-
|
|
11874
|
+
}
|
|
11875
|
+
|
|
11876
11876
|
class BoxGeometry extends BufferGeometry {
|
|
11877
11877
|
|
|
11878
11878
|
constructor( width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1 ) {
|
|
@@ -12046,8 +12046,8 @@ class BoxGeometry extends BufferGeometry {
|
|
|
12046
12046
|
|
|
12047
12047
|
}
|
|
12048
12048
|
|
|
12049
|
-
}
|
|
12050
|
-
|
|
12049
|
+
}
|
|
12050
|
+
|
|
12051
12051
|
/**
|
|
12052
12052
|
* Uniform Utilities
|
|
12053
12053
|
*/
|
|
@@ -12147,12 +12147,12 @@ function getUnlitUniformColorSpace( renderer ) {
|
|
|
12147
12147
|
|
|
12148
12148
|
// Legacy
|
|
12149
12149
|
|
|
12150
|
-
const UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };
|
|
12151
|
-
|
|
12152
|
-
var default_vertex = "void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";
|
|
12153
|
-
|
|
12154
|
-
var default_fragment = "void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";
|
|
12155
|
-
|
|
12150
|
+
const UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };
|
|
12151
|
+
|
|
12152
|
+
var default_vertex = "void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";
|
|
12153
|
+
|
|
12154
|
+
var default_fragment = "void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";
|
|
12155
|
+
|
|
12156
12156
|
class ShaderMaterial extends Material {
|
|
12157
12157
|
|
|
12158
12158
|
constructor( parameters ) {
|
|
@@ -12333,8 +12333,8 @@ class ShaderMaterial extends Material {
|
|
|
12333
12333
|
|
|
12334
12334
|
}
|
|
12335
12335
|
|
|
12336
|
-
}
|
|
12337
|
-
|
|
12336
|
+
}
|
|
12337
|
+
|
|
12338
12338
|
class Camera extends Object3D {
|
|
12339
12339
|
|
|
12340
12340
|
constructor() {
|
|
@@ -12397,8 +12397,8 @@ class Camera extends Object3D {
|
|
|
12397
12397
|
|
|
12398
12398
|
}
|
|
12399
12399
|
|
|
12400
|
-
}
|
|
12401
|
-
|
|
12400
|
+
}
|
|
12401
|
+
|
|
12402
12402
|
const _v3$1 = /*@__PURE__*/ new Vector3();
|
|
12403
12403
|
const _minTarget = /*@__PURE__*/ new Vector2();
|
|
12404
12404
|
const _maxTarget = /*@__PURE__*/ new Vector2();
|
|
@@ -12659,8 +12659,8 @@ class PerspectiveCamera extends Camera {
|
|
|
12659
12659
|
|
|
12660
12660
|
}
|
|
12661
12661
|
|
|
12662
|
-
}
|
|
12663
|
-
|
|
12662
|
+
}
|
|
12663
|
+
|
|
12664
12664
|
const fov = - 90; // negative fov is not an error
|
|
12665
12665
|
const aspect = 1;
|
|
12666
12666
|
|
|
@@ -12827,8 +12827,8 @@ class CubeCamera extends Object3D {
|
|
|
12827
12827
|
|
|
12828
12828
|
}
|
|
12829
12829
|
|
|
12830
|
-
}
|
|
12831
|
-
|
|
12830
|
+
}
|
|
12831
|
+
|
|
12832
12832
|
class CubeTexture extends Texture {
|
|
12833
12833
|
|
|
12834
12834
|
constructor( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace ) {
|
|
@@ -12856,8 +12856,8 @@ class CubeTexture extends Texture {
|
|
|
12856
12856
|
|
|
12857
12857
|
}
|
|
12858
12858
|
|
|
12859
|
-
}
|
|
12860
|
-
|
|
12859
|
+
}
|
|
12860
|
+
|
|
12861
12861
|
class WebGLCubeRenderTarget extends WebGLRenderTarget {
|
|
12862
12862
|
|
|
12863
12863
|
constructor( size = 1, options = {} ) {
|
|
@@ -12992,8 +12992,8 @@ class WebGLCubeRenderTarget extends WebGLRenderTarget {
|
|
|
12992
12992
|
|
|
12993
12993
|
}
|
|
12994
12994
|
|
|
12995
|
-
}
|
|
12996
|
-
|
|
12995
|
+
}
|
|
12996
|
+
|
|
12997
12997
|
const _vector1 = /*@__PURE__*/ new Vector3();
|
|
12998
12998
|
const _vector2 = /*@__PURE__*/ new Vector3();
|
|
12999
12999
|
const _normalMatrix = /*@__PURE__*/ new Matrix3();
|
|
@@ -13193,8 +13193,8 @@ class Plane {
|
|
|
13193
13193
|
|
|
13194
13194
|
}
|
|
13195
13195
|
|
|
13196
|
-
}
|
|
13197
|
-
|
|
13196
|
+
}
|
|
13197
|
+
|
|
13198
13198
|
const _sphere$5 = /*@__PURE__*/ new Sphere();
|
|
13199
13199
|
const _vector$7 = /*@__PURE__*/ new Vector3();
|
|
13200
13200
|
|
|
@@ -13372,8 +13372,8 @@ class Frustum {
|
|
|
13372
13372
|
|
|
13373
13373
|
}
|
|
13374
13374
|
|
|
13375
|
-
}
|
|
13376
|
-
|
|
13375
|
+
}
|
|
13376
|
+
|
|
13377
13377
|
function WebGLAnimation() {
|
|
13378
13378
|
|
|
13379
13379
|
let context = null;
|
|
@@ -13424,8 +13424,8 @@ function WebGLAnimation() {
|
|
|
13424
13424
|
|
|
13425
13425
|
};
|
|
13426
13426
|
|
|
13427
|
-
}
|
|
13428
|
-
|
|
13427
|
+
}
|
|
13428
|
+
|
|
13429
13429
|
function WebGLAttributes( gl, capabilities ) {
|
|
13430
13430
|
|
|
13431
13431
|
const isWebGL2 = capabilities.isWebGL2;
|
|
@@ -13651,8 +13651,8 @@ function WebGLAttributes( gl, capabilities ) {
|
|
|
13651
13651
|
|
|
13652
13652
|
};
|
|
13653
13653
|
|
|
13654
|
-
}
|
|
13655
|
-
|
|
13654
|
+
}
|
|
13655
|
+
|
|
13656
13656
|
class PlaneGeometry extends BufferGeometry {
|
|
13657
13657
|
|
|
13658
13658
|
constructor( width = 1, height = 1, widthSegments = 1, heightSegments = 1 ) {
|
|
@@ -13745,292 +13745,292 @@ class PlaneGeometry extends BufferGeometry {
|
|
|
13745
13745
|
|
|
13746
13746
|
}
|
|
13747
13747
|
|
|
13748
|
-
}
|
|
13749
|
-
|
|
13750
|
-
var alphahash_fragment = "#ifdef USE_ALPHAHASH\n\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif";
|
|
13751
|
-
|
|
13752
|
-
var alphahash_pars_fragment = "#ifdef USE_ALPHAHASH\n\tconst float ALPHA_HASH_SCALE = 0.05;\n\tfloat hash2D( vec2 value ) {\n\t\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n\t}\n\tfloat hash3D( vec3 value ) {\n\t\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\n\t}\n\tfloat getAlphaHashThreshold( vec3 position ) {\n\t\tfloat maxDeriv = max(\n\t\t\tlength( dFdx( position.xyz ) ),\n\t\t\tlength( dFdy( position.xyz ) )\n\t\t);\n\t\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\n\t\tvec2 pixScales = vec2(\n\t\t\texp2( floor( log2( pixScale ) ) ),\n\t\t\texp2( ceil( log2( pixScale ) ) )\n\t\t);\n\t\tvec2 alpha = vec2(\n\t\t\thash3D( floor( pixScales.x * position.xyz ) ),\n\t\t\thash3D( floor( pixScales.y * position.xyz ) )\n\t\t);\n\t\tfloat lerpFactor = fract( log2( pixScale ) );\n\t\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n\t\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\n\t\tvec3 cases = vec3(\n\t\t\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\n\t\t\t( x - 0.5 * a ) / ( 1.0 - a ),\n\t\t\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\n\t\t);\n\t\tfloat threshold = ( x < ( 1.0 - a ) )\n\t\t\t? ( ( x < a ) ? cases.x : cases.y )\n\t\t\t: cases.z;\n\t\treturn clamp( threshold , 1.0e-6, 1.0 );\n\t}\n#endif";
|
|
13753
|
-
|
|
13754
|
-
var alphamap_fragment = "#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif";
|
|
13755
|
-
|
|
13756
|
-
var alphamap_pars_fragment = "#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif";
|
|
13757
|
-
|
|
13758
|
-
var alphatest_fragment = "#ifdef USE_ALPHATEST\n\t#ifdef ALPHA_TO_COVERAGE\n\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\n\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\tif ( diffuseColor.a < alphaTest ) discard;\n\t#endif\n#endif";
|
|
13759
|
-
|
|
13760
|
-
var alphatest_pars_fragment = "#ifdef USE_ALPHATEST\n\tuniform float alphaTest;\n#endif";
|
|
13761
|
-
|
|
13762
|
-
var aomap_fragment = "#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_CLEARCOAT ) \n\t\tclearcoatSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_SHEEN ) \n\t\tsheenSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n\t#endif\n#endif";
|
|
13763
|
-
|
|
13764
|
-
var aomap_pars_fragment = "#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif";
|
|
13765
|
-
|
|
13766
|
-
var batching_pars_vertex = "#ifdef USE_BATCHING\n\tattribute float batchId;\n\tuniform highp sampler2D batchingTexture;\n\tmat4 getBatchingMatrix( const in float i ) {\n\t\tint size = textureSize( batchingTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif";
|
|
13767
|
-
|
|
13768
|
-
var batching_vertex = "#ifdef USE_BATCHING\n\tmat4 batchingMatrix = getBatchingMatrix( batchId );\n#endif";
|
|
13769
|
-
|
|
13770
|
-
var begin_vertex = "vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n\tvPosition = vec3( position );\n#endif";
|
|
13771
|
-
|
|
13772
|
-
var beginnormal_vertex = "vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif";
|
|
13773
|
-
|
|
13774
|
-
var bsdfs = "float G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n} // validated";
|
|
13775
|
-
|
|
13776
|
-
var iridescence_fragment = "#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\treturn vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif";
|
|
13777
|
-
|
|
13778
|
-
var bumpmap_pars_fragment = "#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n\t\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif";
|
|
13779
|
-
|
|
13780
|
-
var clipping_planes_fragment = "#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#ifdef ALPHA_TO_COVERAGE\n\t\tfloat distanceToPlane, distanceGradient;\n\t\tfloat clipOpacity = 1.0;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\tif ( clipOpacity == 0.0 ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tfloat unionClipOpacity = 1.0;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\n\t\t#endif\n\t\tdiffuseColor.a *= clipOpacity;\n\t\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tbool clipped = true;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tif ( clipped ) discard;\n\t\t#endif\n\t#endif\n#endif";
|
|
13781
|
-
|
|
13782
|
-
var clipping_planes_pars_fragment = "#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif";
|
|
13783
|
-
|
|
13784
|
-
var clipping_planes_pars_vertex = "#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif";
|
|
13785
|
-
|
|
13786
|
-
var clipping_planes_vertex = "#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif";
|
|
13787
|
-
|
|
13788
|
-
var color_fragment = "#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif";
|
|
13789
|
-
|
|
13790
|
-
var color_pars_fragment = "#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif";
|
|
13791
|
-
|
|
13792
|
-
var color_pars_vertex = "#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif";
|
|
13793
|
-
|
|
13794
|
-
var color_vertex = "#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif";
|
|
13795
|
-
|
|
13796
|
-
var common = "#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated";
|
|
13797
|
-
|
|
13798
|
-
var cube_uv_reflection_fragment = "#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif";
|
|
13799
|
-
|
|
13800
|
-
var defaultnormal_vertex = "vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n\tmat3 bm = mat3( batchingMatrix );\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n\ttransformedNormal = bm * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = bm * transformedTangent;\n\t#endif\n#endif\n#ifdef USE_INSTANCING\n\tmat3 im = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n\ttransformedNormal = im * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = im * transformedTangent;\n\t#endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif";
|
|
13801
|
-
|
|
13802
|
-
var displacementmap_pars_vertex = "#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif";
|
|
13803
|
-
|
|
13804
|
-
var displacementmap_vertex = "#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif";
|
|
13805
|
-
|
|
13806
|
-
var emissivemap_fragment = "#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif";
|
|
13807
|
-
|
|
13808
|
-
var emissivemap_pars_fragment = "#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif";
|
|
13809
|
-
|
|
13810
|
-
var colorspace_fragment = "gl_FragColor = linearToOutputTexel( gl_FragColor );";
|
|
13811
|
-
|
|
13812
|
-
var colorspace_pars_fragment = "\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\n\tvec3( 0.8224621, 0.177538, 0.0 ),\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\n);\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\n);\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\n}\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\n}\nvec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn sRGBTransferOETF( value );\n}";
|
|
13813
|
-
|
|
13814
|
-
var envmap_fragment = "#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif";
|
|
13815
|
-
|
|
13816
|
-
var envmap_common_pars_fragment = "#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform mat3 envMapRotation;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif";
|
|
13817
|
-
|
|
13818
|
-
var envmap_pars_fragment = "#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif";
|
|
13819
|
-
|
|
13820
|
-
var envmap_pars_vertex = "#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif";
|
|
13821
|
-
|
|
13822
|
-
var envmap_vertex = "#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif";
|
|
13823
|
-
|
|
13824
|
-
var fog_vertex = "#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif";
|
|
13825
|
-
|
|
13826
|
-
var fog_pars_vertex = "#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif";
|
|
13827
|
-
|
|
13828
|
-
var fog_fragment = "#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif";
|
|
13829
|
-
|
|
13830
|
-
var fog_pars_fragment = "#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif";
|
|
13831
|
-
|
|
13832
|
-
var gradientmap_pars_fragment = "#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}";
|
|
13833
|
-
|
|
13834
|
-
var lightmap_fragment = "#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif";
|
|
13835
|
-
|
|
13836
|
-
var lightmap_pars_fragment = "#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif";
|
|
13837
|
-
|
|
13838
|
-
var lights_lambert_fragment = "LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;";
|
|
13839
|
-
|
|
13840
|
-
var lights_lambert_pars_fragment = "varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert";
|
|
13841
|
-
|
|
13842
|
-
var lights_pars_begin = "uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif";
|
|
13843
|
-
|
|
13844
|
-
var envmap_physical_pars_fragment = "#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif";
|
|
13845
|
-
|
|
13846
|
-
var lights_toon_fragment = "ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;";
|
|
13847
|
-
|
|
13848
|
-
var lights_toon_pars_fragment = "varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon";
|
|
13849
|
-
|
|
13850
|
-
var lights_phong_fragment = "BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;";
|
|
13851
|
-
|
|
13852
|
-
var lights_phong_pars_fragment = "varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong";
|
|
13853
|
-
|
|
13854
|
-
var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tif( material.anisotropy == 0.0 ) {\n\t\tanisotropyV = vec2( 1.0, 0.0 );\n\t} else {\n\t\tanisotropyV /= material.anisotropy;\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\n\t}\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif";
|
|
13855
|
-
|
|
13856
|
-
var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}";
|
|
13857
|
-
|
|
13858
|
-
var lights_fragment_begin = "\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif";
|
|
13859
|
-
|
|
13860
|
-
var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif";
|
|
13861
|
-
|
|
13862
|
-
var lights_fragment_end = "#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif";
|
|
13863
|
-
|
|
13864
|
-
var logdepthbuf_fragment = "#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif";
|
|
13865
|
-
|
|
13866
|
-
var logdepthbuf_pars_fragment = "#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif";
|
|
13867
|
-
|
|
13868
|
-
var logdepthbuf_pars_vertex = "#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif";
|
|
13869
|
-
|
|
13870
|
-
var logdepthbuf_vertex = "#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif";
|
|
13871
|
-
|
|
13872
|
-
var map_fragment = "#ifdef USE_MAP\n#ifdef USE_MIPMAP_BIAS\n vec4 sampledDiffuseColor = texture2D( map, vMapUv, mipmapBias );\n#else\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n#endif\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif";
|
|
13873
|
-
|
|
13874
|
-
var map_pars_fragment = "#ifdef USE_MAP\n\tuniform sampler2D map;\n \n#ifdef USE_MIPMAP_BIAS\n uniform float mipmapBias;\n#endif\n#endif";
|
|
13875
|
-
|
|
13876
|
-
var map_particle_fragment = "#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif";
|
|
13877
|
-
|
|
13878
|
-
var map_particle_pars_fragment = "#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif";
|
|
13879
|
-
|
|
13880
|
-
var metalnessmap_fragment = "float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif";
|
|
13881
|
-
|
|
13882
|
-
var metalnessmap_pars_fragment = "#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif";
|
|
13883
|
-
|
|
13884
|
-
var morphinstance_vertex = "#ifdef USE_INSTANCING_MORPH\n\tfloat morphTargetInfluences[MORPHTARGETS_COUNT];\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n\t}\n#endif";
|
|
13885
|
-
|
|
13886
|
-
var morphcolor_vertex = "#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif";
|
|
13887
|
-
|
|
13888
|
-
var morphnormal_vertex = "#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif";
|
|
13889
|
-
|
|
13890
|
-
var morphtarget_pars_vertex = "#ifdef USE_MORPHTARGETS\n\t#ifndef USE_INSTANCING_MORPH\n\t\tuniform float morphTargetBaseInfluence;\n\t#endif\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\t#ifndef USE_INSTANCING_MORPH\n\t\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\t#endif\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif";
|
|
13891
|
-
|
|
13892
|
-
var morphtarget_vertex = "#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif";
|
|
13893
|
-
|
|
13894
|
-
var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;";
|
|
13895
|
-
|
|
13896
|
-
var normal_fragment_maps = "#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif";
|
|
13897
|
-
|
|
13898
|
-
var normal_pars_fragment = "#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif";
|
|
13899
|
-
|
|
13900
|
-
var normal_pars_vertex = "#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif";
|
|
13901
|
-
|
|
13902
|
-
var normal_vertex = "#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif";
|
|
13903
|
-
|
|
13904
|
-
var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif";
|
|
13905
|
-
|
|
13906
|
-
var clearcoat_normal_fragment_begin = "#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif";
|
|
13907
|
-
|
|
13908
|
-
var clearcoat_normal_fragment_maps = "#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif";
|
|
13909
|
-
|
|
13910
|
-
var clearcoat_pars_fragment = "#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif";
|
|
13911
|
-
|
|
13912
|
-
var iridescence_pars_fragment = "#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif";
|
|
13913
|
-
|
|
13914
|
-
var opaque_fragment = "#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );";
|
|
13915
|
-
|
|
13916
|
-
var packing = "vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}";
|
|
13917
|
-
|
|
13918
|
-
var premultiplied_alpha_fragment = "#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif";
|
|
13919
|
-
|
|
13920
|
-
var project_vertex = "vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n\tmvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;";
|
|
13921
|
-
|
|
13922
|
-
var dithering_fragment = "#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif";
|
|
13923
|
-
|
|
13924
|
-
var dithering_pars_fragment = "#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif";
|
|
13925
|
-
|
|
13926
|
-
var roughnessmap_fragment = "float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif";
|
|
13927
|
-
|
|
13928
|
-
var roughnessmap_pars_fragment = "#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif";
|
|
13929
|
-
|
|
13930
|
-
var shadowmap_pars_fragment = "#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif";
|
|
13931
|
-
|
|
13932
|
-
var shadowmap_pars_vertex = "#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif";
|
|
13933
|
-
|
|
13934
|
-
var shadowmap_vertex = "#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif";
|
|
13935
|
-
|
|
13936
|
-
var shadowmask_pars_fragment = "float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}";
|
|
13937
|
-
|
|
13938
|
-
var skinbase_vertex = "#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif";
|
|
13939
|
-
|
|
13940
|
-
var skinning_pars_vertex = "#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tint size = textureSize( boneTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif";
|
|
13941
|
-
|
|
13942
|
-
var skinning_vertex = "#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif";
|
|
13943
|
-
|
|
13944
|
-
var skinnormal_vertex = "#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif";
|
|
13945
|
-
|
|
13946
|
-
var specularmap_fragment = "float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif";
|
|
13947
|
-
|
|
13948
|
-
var specularmap_pars_fragment = "#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif";
|
|
13949
|
-
|
|
13950
|
-
var tonemapping_fragment = "#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif";
|
|
13951
|
-
|
|
13952
|
-
var tonemapping_pars_fragment = "#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor *= toneMappingExposure;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\tcolor = clamp( color, 0.0, 1.0 );\n\treturn color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n\tfloat startCompression = 0.8 - 0.04;\n\tfloat desaturation = 0.15;\n\tcolor *= toneMappingExposure;\n\tfloat x = min(color.r, min(color.g, color.b));\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max(color.r, max(color.g, color.b));\n\tif (peak < startCompression) return color;\n\tfloat d = 1. - startCompression;\n\tfloat newPeak = 1. - d * d / (peak + d - startCompression);\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / (desaturation * (peak - newPeak) + 1.);\n\treturn mix(color, vec3(1, 1, 1), g);\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }";
|
|
13953
|
-
|
|
13954
|
-
var transmission_fragment = "#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif";
|
|
13955
|
-
|
|
13956
|
-
var transmission_pars_fragment = "#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif";
|
|
13957
|
-
|
|
13958
|
-
var uv_pars_fragment = "#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif";
|
|
13959
|
-
|
|
13960
|
-
var uv_pars_vertex = "#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif";
|
|
13961
|
-
|
|
13962
|
-
var uv_vertex = "#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif";
|
|
13963
|
-
|
|
13964
|
-
var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_BATCHING\n\t\tworldPosition = batchingMatrix * worldPosition;\n\t#endif\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif";
|
|
13965
|
-
|
|
13748
|
+
}
|
|
13749
|
+
|
|
13750
|
+
var alphahash_fragment = "#ifdef USE_ALPHAHASH\n\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif";
|
|
13751
|
+
|
|
13752
|
+
var alphahash_pars_fragment = "#ifdef USE_ALPHAHASH\n\tconst float ALPHA_HASH_SCALE = 0.05;\n\tfloat hash2D( vec2 value ) {\n\t\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n\t}\n\tfloat hash3D( vec3 value ) {\n\t\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\n\t}\n\tfloat getAlphaHashThreshold( vec3 position ) {\n\t\tfloat maxDeriv = max(\n\t\t\tlength( dFdx( position.xyz ) ),\n\t\t\tlength( dFdy( position.xyz ) )\n\t\t);\n\t\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\n\t\tvec2 pixScales = vec2(\n\t\t\texp2( floor( log2( pixScale ) ) ),\n\t\t\texp2( ceil( log2( pixScale ) ) )\n\t\t);\n\t\tvec2 alpha = vec2(\n\t\t\thash3D( floor( pixScales.x * position.xyz ) ),\n\t\t\thash3D( floor( pixScales.y * position.xyz ) )\n\t\t);\n\t\tfloat lerpFactor = fract( log2( pixScale ) );\n\t\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n\t\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\n\t\tvec3 cases = vec3(\n\t\t\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\n\t\t\t( x - 0.5 * a ) / ( 1.0 - a ),\n\t\t\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\n\t\t);\n\t\tfloat threshold = ( x < ( 1.0 - a ) )\n\t\t\t? ( ( x < a ) ? cases.x : cases.y )\n\t\t\t: cases.z;\n\t\treturn clamp( threshold , 1.0e-6, 1.0 );\n\t}\n#endif";
|
|
13753
|
+
|
|
13754
|
+
var alphamap_fragment = "#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif";
|
|
13755
|
+
|
|
13756
|
+
var alphamap_pars_fragment = "#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif";
|
|
13757
|
+
|
|
13758
|
+
var alphatest_fragment = "#ifdef USE_ALPHATEST\n\t#ifdef ALPHA_TO_COVERAGE\n\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\n\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\tif ( diffuseColor.a < alphaTest ) discard;\n\t#endif\n#endif";
|
|
13759
|
+
|
|
13760
|
+
var alphatest_pars_fragment = "#ifdef USE_ALPHATEST\n\tuniform float alphaTest;\n#endif";
|
|
13761
|
+
|
|
13762
|
+
var aomap_fragment = "#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_CLEARCOAT ) \n\t\tclearcoatSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_SHEEN ) \n\t\tsheenSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n\t#endif\n#endif";
|
|
13763
|
+
|
|
13764
|
+
var aomap_pars_fragment = "#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif";
|
|
13765
|
+
|
|
13766
|
+
var batching_pars_vertex = "#ifdef USE_BATCHING\n\tattribute float batchId;\n\tuniform highp sampler2D batchingTexture;\n\tmat4 getBatchingMatrix( const in float i ) {\n\t\tint size = textureSize( batchingTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif";
|
|
13767
|
+
|
|
13768
|
+
var batching_vertex = "#ifdef USE_BATCHING\n\tmat4 batchingMatrix = getBatchingMatrix( batchId );\n#endif";
|
|
13769
|
+
|
|
13770
|
+
var begin_vertex = "vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n\tvPosition = vec3( position );\n#endif";
|
|
13771
|
+
|
|
13772
|
+
var beginnormal_vertex = "vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif";
|
|
13773
|
+
|
|
13774
|
+
var bsdfs = "float G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n} // validated";
|
|
13775
|
+
|
|
13776
|
+
var iridescence_fragment = "#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\treturn vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif";
|
|
13777
|
+
|
|
13778
|
+
var bumpmap_pars_fragment = "#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n\t\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif";
|
|
13779
|
+
|
|
13780
|
+
var clipping_planes_fragment = "#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#ifdef ALPHA_TO_COVERAGE\n\t\tfloat distanceToPlane, distanceGradient;\n\t\tfloat clipOpacity = 1.0;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\tif ( clipOpacity == 0.0 ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tfloat unionClipOpacity = 1.0;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\n\t\t#endif\n\t\tdiffuseColor.a *= clipOpacity;\n\t\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tbool clipped = true;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tif ( clipped ) discard;\n\t\t#endif\n\t#endif\n#endif";
|
|
13781
|
+
|
|
13782
|
+
var clipping_planes_pars_fragment = "#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif";
|
|
13783
|
+
|
|
13784
|
+
var clipping_planes_pars_vertex = "#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif";
|
|
13785
|
+
|
|
13786
|
+
var clipping_planes_vertex = "#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif";
|
|
13787
|
+
|
|
13788
|
+
var color_fragment = "#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif";
|
|
13789
|
+
|
|
13790
|
+
var color_pars_fragment = "#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif";
|
|
13791
|
+
|
|
13792
|
+
var color_pars_vertex = "#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif";
|
|
13793
|
+
|
|
13794
|
+
var color_vertex = "#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif";
|
|
13795
|
+
|
|
13796
|
+
var common = "#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated";
|
|
13797
|
+
|
|
13798
|
+
var cube_uv_reflection_fragment = "#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif";
|
|
13799
|
+
|
|
13800
|
+
var defaultnormal_vertex = "vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n\tmat3 bm = mat3( batchingMatrix );\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n\ttransformedNormal = bm * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = bm * transformedTangent;\n\t#endif\n#endif\n#ifdef USE_INSTANCING\n\tmat3 im = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n\ttransformedNormal = im * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = im * transformedTangent;\n\t#endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif";
|
|
13801
|
+
|
|
13802
|
+
var displacementmap_pars_vertex = "#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif";
|
|
13803
|
+
|
|
13804
|
+
var displacementmap_vertex = "#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif";
|
|
13805
|
+
|
|
13806
|
+
var emissivemap_fragment = "#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif";
|
|
13807
|
+
|
|
13808
|
+
var emissivemap_pars_fragment = "#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif";
|
|
13809
|
+
|
|
13810
|
+
var colorspace_fragment = "gl_FragColor = linearToOutputTexel( gl_FragColor );";
|
|
13811
|
+
|
|
13812
|
+
var colorspace_pars_fragment = "\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\n\tvec3( 0.8224621, 0.177538, 0.0 ),\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\n);\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\n);\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\n}\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\n}\nvec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn sRGBTransferOETF( value );\n}";
|
|
13813
|
+
|
|
13814
|
+
var envmap_fragment = "#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif";
|
|
13815
|
+
|
|
13816
|
+
var envmap_common_pars_fragment = "#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform mat3 envMapRotation;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif";
|
|
13817
|
+
|
|
13818
|
+
var envmap_pars_fragment = "#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif";
|
|
13819
|
+
|
|
13820
|
+
var envmap_pars_vertex = "#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif";
|
|
13821
|
+
|
|
13822
|
+
var envmap_vertex = "#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif";
|
|
13823
|
+
|
|
13824
|
+
var fog_vertex = "#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif";
|
|
13825
|
+
|
|
13826
|
+
var fog_pars_vertex = "#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif";
|
|
13827
|
+
|
|
13828
|
+
var fog_fragment = "#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif";
|
|
13829
|
+
|
|
13830
|
+
var fog_pars_fragment = "#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif";
|
|
13831
|
+
|
|
13832
|
+
var gradientmap_pars_fragment = "#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}";
|
|
13833
|
+
|
|
13834
|
+
var lightmap_fragment = "#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif";
|
|
13835
|
+
|
|
13836
|
+
var lightmap_pars_fragment = "#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif";
|
|
13837
|
+
|
|
13838
|
+
var lights_lambert_fragment = "LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;";
|
|
13839
|
+
|
|
13840
|
+
var lights_lambert_pars_fragment = "varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert";
|
|
13841
|
+
|
|
13842
|
+
var lights_pars_begin = "uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif";
|
|
13843
|
+
|
|
13844
|
+
var envmap_physical_pars_fragment = "#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif";
|
|
13845
|
+
|
|
13846
|
+
var lights_toon_fragment = "ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;";
|
|
13847
|
+
|
|
13848
|
+
var lights_toon_pars_fragment = "varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon";
|
|
13849
|
+
|
|
13850
|
+
var lights_phong_fragment = "BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;";
|
|
13851
|
+
|
|
13852
|
+
var lights_phong_pars_fragment = "varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong";
|
|
13853
|
+
|
|
13854
|
+
var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tif( material.anisotropy == 0.0 ) {\n\t\tanisotropyV = vec2( 1.0, 0.0 );\n\t} else {\n\t\tanisotropyV /= material.anisotropy;\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\n\t}\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif";
|
|
13855
|
+
|
|
13856
|
+
var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}";
|
|
13857
|
+
|
|
13858
|
+
var lights_fragment_begin = "\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif";
|
|
13859
|
+
|
|
13860
|
+
var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif";
|
|
13861
|
+
|
|
13862
|
+
var lights_fragment_end = "#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif";
|
|
13863
|
+
|
|
13864
|
+
var logdepthbuf_fragment = "#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif";
|
|
13865
|
+
|
|
13866
|
+
var logdepthbuf_pars_fragment = "#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif";
|
|
13867
|
+
|
|
13868
|
+
var logdepthbuf_pars_vertex = "#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif";
|
|
13869
|
+
|
|
13870
|
+
var logdepthbuf_vertex = "#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif";
|
|
13871
|
+
|
|
13872
|
+
var map_fragment = "#ifdef USE_MAP\n#ifdef USE_MIPMAP_BIAS\n vec4 sampledDiffuseColor = texture2D( map, vMapUv, mipmapBias );\n#else\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n#endif\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif";
|
|
13873
|
+
|
|
13874
|
+
var map_pars_fragment = "#ifdef USE_MAP\n\tuniform sampler2D map;\n \n#ifdef USE_MIPMAP_BIAS\n uniform float mipmapBias;\n#endif\n#endif";
|
|
13875
|
+
|
|
13876
|
+
var map_particle_fragment = "#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif";
|
|
13877
|
+
|
|
13878
|
+
var map_particle_pars_fragment = "#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif";
|
|
13879
|
+
|
|
13880
|
+
var metalnessmap_fragment = "float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif";
|
|
13881
|
+
|
|
13882
|
+
var metalnessmap_pars_fragment = "#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif";
|
|
13883
|
+
|
|
13884
|
+
var morphinstance_vertex = "#ifdef USE_INSTANCING_MORPH\n\tfloat morphTargetInfluences[MORPHTARGETS_COUNT];\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n\t}\n#endif";
|
|
13885
|
+
|
|
13886
|
+
var morphcolor_vertex = "#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif";
|
|
13887
|
+
|
|
13888
|
+
var morphnormal_vertex = "#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif";
|
|
13889
|
+
|
|
13890
|
+
var morphtarget_pars_vertex = "#ifdef USE_MORPHTARGETS\n\t#ifndef USE_INSTANCING_MORPH\n\t\tuniform float morphTargetBaseInfluence;\n\t#endif\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\t#ifndef USE_INSTANCING_MORPH\n\t\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\t#endif\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif";
|
|
13891
|
+
|
|
13892
|
+
var morphtarget_vertex = "#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif";
|
|
13893
|
+
|
|
13894
|
+
var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;";
|
|
13895
|
+
|
|
13896
|
+
var normal_fragment_maps = "#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif";
|
|
13897
|
+
|
|
13898
|
+
var normal_pars_fragment = "#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif";
|
|
13899
|
+
|
|
13900
|
+
var normal_pars_vertex = "#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif";
|
|
13901
|
+
|
|
13902
|
+
var normal_vertex = "#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif";
|
|
13903
|
+
|
|
13904
|
+
var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif";
|
|
13905
|
+
|
|
13906
|
+
var clearcoat_normal_fragment_begin = "#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif";
|
|
13907
|
+
|
|
13908
|
+
var clearcoat_normal_fragment_maps = "#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif";
|
|
13909
|
+
|
|
13910
|
+
var clearcoat_pars_fragment = "#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif";
|
|
13911
|
+
|
|
13912
|
+
var iridescence_pars_fragment = "#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif";
|
|
13913
|
+
|
|
13914
|
+
var opaque_fragment = "#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );";
|
|
13915
|
+
|
|
13916
|
+
var packing = "vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}";
|
|
13917
|
+
|
|
13918
|
+
var premultiplied_alpha_fragment = "#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif";
|
|
13919
|
+
|
|
13920
|
+
var project_vertex = "vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n\tmvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;";
|
|
13921
|
+
|
|
13922
|
+
var dithering_fragment = "#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif";
|
|
13923
|
+
|
|
13924
|
+
var dithering_pars_fragment = "#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif";
|
|
13925
|
+
|
|
13926
|
+
var roughnessmap_fragment = "float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif";
|
|
13927
|
+
|
|
13928
|
+
var roughnessmap_pars_fragment = "#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif";
|
|
13929
|
+
|
|
13930
|
+
var shadowmap_pars_fragment = "#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif";
|
|
13931
|
+
|
|
13932
|
+
var shadowmap_pars_vertex = "#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif";
|
|
13933
|
+
|
|
13934
|
+
var shadowmap_vertex = "#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif";
|
|
13935
|
+
|
|
13936
|
+
var shadowmask_pars_fragment = "float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}";
|
|
13937
|
+
|
|
13938
|
+
var skinbase_vertex = "#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif";
|
|
13939
|
+
|
|
13940
|
+
var skinning_pars_vertex = "#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tint size = textureSize( boneTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif";
|
|
13941
|
+
|
|
13942
|
+
var skinning_vertex = "#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif";
|
|
13943
|
+
|
|
13944
|
+
var skinnormal_vertex = "#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif";
|
|
13945
|
+
|
|
13946
|
+
var specularmap_fragment = "float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif";
|
|
13947
|
+
|
|
13948
|
+
var specularmap_pars_fragment = "#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif";
|
|
13949
|
+
|
|
13950
|
+
var tonemapping_fragment = "#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif";
|
|
13951
|
+
|
|
13952
|
+
var tonemapping_pars_fragment = "#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor *= toneMappingExposure;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\tcolor = clamp( color, 0.0, 1.0 );\n\treturn color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n\tfloat startCompression = 0.8 - 0.04;\n\tfloat desaturation = 0.15;\n\tcolor *= toneMappingExposure;\n\tfloat x = min(color.r, min(color.g, color.b));\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max(color.r, max(color.g, color.b));\n\tif (peak < startCompression) return color;\n\tfloat d = 1. - startCompression;\n\tfloat newPeak = 1. - d * d / (peak + d - startCompression);\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / (desaturation * (peak - newPeak) + 1.);\n\treturn mix(color, vec3(1, 1, 1), g);\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }";
|
|
13953
|
+
|
|
13954
|
+
var transmission_fragment = "#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif";
|
|
13955
|
+
|
|
13956
|
+
var transmission_pars_fragment = "#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif";
|
|
13957
|
+
|
|
13958
|
+
var uv_pars_fragment = "#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif";
|
|
13959
|
+
|
|
13960
|
+
var uv_pars_vertex = "#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif";
|
|
13961
|
+
|
|
13962
|
+
var uv_vertex = "#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif";
|
|
13963
|
+
|
|
13964
|
+
var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_BATCHING\n\t\tworldPosition = batchingMatrix * worldPosition;\n\t#endif\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif";
|
|
13965
|
+
|
|
13966
13966
|
const vertex$h = "varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}";
|
|
13967
13967
|
|
|
13968
|
-
const fragment$h = "uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";
|
|
13969
|
-
|
|
13968
|
+
const fragment$h = "uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";
|
|
13969
|
+
|
|
13970
13970
|
const vertex$g = "varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}";
|
|
13971
13971
|
|
|
13972
|
-
const fragment$g = "#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";
|
|
13973
|
-
|
|
13972
|
+
const fragment$g = "#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";
|
|
13973
|
+
|
|
13974
13974
|
const vertex$f = "varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}";
|
|
13975
13975
|
|
|
13976
|
-
const fragment$f = "uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";
|
|
13977
|
-
|
|
13976
|
+
const fragment$f = "uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";
|
|
13977
|
+
|
|
13978
13978
|
const vertex$e = "#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <skinbase_vertex>\n\t#include <morphinstance_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}";
|
|
13979
13979
|
|
|
13980
|
-
const fragment$e = "#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}";
|
|
13981
|
-
|
|
13980
|
+
const fragment$e = "#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}";
|
|
13981
|
+
|
|
13982
13982
|
const vertex$d = "#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <skinbase_vertex>\n\t#include <morphinstance_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}";
|
|
13983
13983
|
|
|
13984
|
-
const fragment$d = "#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}";
|
|
13985
|
-
|
|
13984
|
+
const fragment$d = "#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}";
|
|
13985
|
+
|
|
13986
13986
|
const vertex$c = "varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}";
|
|
13987
13987
|
|
|
13988
|
-
const fragment$c = "uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";
|
|
13989
|
-
|
|
13988
|
+
const fragment$c = "uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";
|
|
13989
|
+
|
|
13990
13990
|
const vertex$b = "uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}";
|
|
13991
13991
|
|
|
13992
|
-
const fragment$b = "uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}";
|
|
13993
|
-
|
|
13992
|
+
const fragment$b = "uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}";
|
|
13993
|
+
|
|
13994
13994
|
const vertex$a = "#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}";
|
|
13995
13995
|
|
|
13996
|
-
const fragment$a = "uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
13997
|
-
|
|
13996
|
+
const fragment$a = "uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
13997
|
+
|
|
13998
13998
|
const vertex$9 = "#define LAMBERT\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}";
|
|
13999
13999
|
|
|
14000
|
-
const fragment$9 = "#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_lambert_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_lambert_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
14001
|
-
|
|
14000
|
+
const fragment$9 = "#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_lambert_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_lambert_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
14001
|
+
|
|
14002
14002
|
const vertex$8 = "#define MATCAP\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}";
|
|
14003
14003
|
|
|
14004
|
-
const fragment$8 = "#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
14005
|
-
|
|
14004
|
+
const fragment$8 = "#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
14005
|
+
|
|
14006
14006
|
const vertex$7 = "#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}";
|
|
14007
14007
|
|
|
14008
|
-
const fragment$7 = "#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}";
|
|
14009
|
-
|
|
14008
|
+
const fragment$7 = "#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}";
|
|
14009
|
+
|
|
14010
14010
|
const vertex$6 = "#define PHONG\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}";
|
|
14011
14011
|
|
|
14012
|
-
const fragment$6 = "#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
14013
|
-
|
|
14012
|
+
const fragment$6 = "#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
14013
|
+
|
|
14014
14014
|
const vertex$5 = "#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}";
|
|
14015
14015
|
|
|
14016
|
-
const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <iridescence_fragment>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <iridescence_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include <transmission_fragment>\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
14017
|
-
|
|
14016
|
+
const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <iridescence_fragment>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <iridescence_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include <transmission_fragment>\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
14017
|
+
|
|
14018
14018
|
const vertex$4 = "#define TOON\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}";
|
|
14019
14019
|
|
|
14020
|
-
const fragment$4 = "#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
14021
|
-
|
|
14020
|
+
const fragment$4 = "#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
14021
|
+
|
|
14022
14022
|
const vertex$3 = "uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}";
|
|
14023
14023
|
|
|
14024
|
-
const fragment$3 = "uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}";
|
|
14025
|
-
|
|
14024
|
+
const fragment$3 = "uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}";
|
|
14025
|
+
|
|
14026
14026
|
const vertex$2 = "#include <common>\n#include <batching_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}";
|
|
14027
14027
|
|
|
14028
|
-
const fragment$2 = "uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <logdepthbuf_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\t#include <logdepthbuf_fragment>\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}";
|
|
14029
|
-
|
|
14028
|
+
const fragment$2 = "uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <logdepthbuf_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\t#include <logdepthbuf_fragment>\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}";
|
|
14029
|
+
|
|
14030
14030
|
const vertex$1 = "uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}";
|
|
14031
14031
|
|
|
14032
|
-
const fragment$1 = "uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}";
|
|
14033
|
-
|
|
14032
|
+
const fragment$1 = "uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}";
|
|
14033
|
+
|
|
14034
14034
|
const ShaderChunk = {
|
|
14035
14035
|
alphahash_fragment: alphahash_fragment,
|
|
14036
14036
|
alphahash_pars_fragment: alphahash_pars_fragment,
|
|
@@ -14175,8 +14175,8 @@ const ShaderChunk = {
|
|
|
14175
14175
|
shadow_frag: fragment$2,
|
|
14176
14176
|
sprite_vert: vertex$1,
|
|
14177
14177
|
sprite_frag: fragment$1
|
|
14178
|
-
};
|
|
14179
|
-
|
|
14178
|
+
};
|
|
14179
|
+
|
|
14180
14180
|
/**
|
|
14181
14181
|
* Uniforms library for shared webgl shaders
|
|
14182
14182
|
*/
|
|
@@ -14401,8 +14401,8 @@ const UniformsLib = {
|
|
|
14401
14401
|
|
|
14402
14402
|
}
|
|
14403
14403
|
|
|
14404
|
-
};
|
|
14405
|
-
|
|
14404
|
+
};
|
|
14405
|
+
|
|
14406
14406
|
const ShaderLib = {
|
|
14407
14407
|
|
|
14408
14408
|
basic: {
|
|
@@ -14751,8 +14751,8 @@ ShaderLib.physical = {
|
|
|
14751
14751
|
vertexShader: ShaderChunk.meshphysical_vert,
|
|
14752
14752
|
fragmentShader: ShaderChunk.meshphysical_frag
|
|
14753
14753
|
|
|
14754
|
-
};
|
|
14755
|
-
|
|
14754
|
+
};
|
|
14755
|
+
|
|
14756
14756
|
const _rgb = { r: 0, b: 0, g: 0 };
|
|
14757
14757
|
const _e1$1 = /*@__PURE__*/ new Euler();
|
|
14758
14758
|
const _m1$1 = /*@__PURE__*/ new Matrix4();
|
|
@@ -14994,8 +14994,8 @@ function WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha,
|
|
|
14994
14994
|
|
|
14995
14995
|
};
|
|
14996
14996
|
|
|
14997
|
-
}
|
|
14998
|
-
|
|
14997
|
+
}
|
|
14998
|
+
|
|
14999
14999
|
function WebGLBindingStates( gl, extensions, attributes, capabilities ) {
|
|
15000
15000
|
|
|
15001
15001
|
const maxVertexAttributes = gl.getParameter( gl.MAX_VERTEX_ATTRIBS );
|
|
@@ -15621,8 +15621,8 @@ function WebGLBindingStates( gl, extensions, attributes, capabilities ) {
|
|
|
15621
15621
|
|
|
15622
15622
|
};
|
|
15623
15623
|
|
|
15624
|
-
}
|
|
15625
|
-
|
|
15624
|
+
}
|
|
15625
|
+
|
|
15626
15626
|
function WebGLBufferRenderer( gl, extensions, info, capabilities ) {
|
|
15627
15627
|
|
|
15628
15628
|
const isWebGL2 = capabilities.isWebGL2;
|
|
@@ -15711,8 +15711,8 @@ function WebGLBufferRenderer( gl, extensions, info, capabilities ) {
|
|
|
15711
15711
|
this.renderInstances = renderInstances;
|
|
15712
15712
|
this.renderMultiDraw = renderMultiDraw;
|
|
15713
15713
|
|
|
15714
|
-
}
|
|
15715
|
-
|
|
15714
|
+
}
|
|
15715
|
+
|
|
15716
15716
|
function WebGLCapabilities( gl, extensions, parameters ) {
|
|
15717
15717
|
|
|
15718
15718
|
let maxAnisotropy;
|
|
@@ -15829,8 +15829,8 @@ function WebGLCapabilities( gl, extensions, parameters ) {
|
|
|
15829
15829
|
|
|
15830
15830
|
};
|
|
15831
15831
|
|
|
15832
|
-
}
|
|
15833
|
-
|
|
15832
|
+
}
|
|
15833
|
+
|
|
15834
15834
|
function WebGLClipping( properties ) {
|
|
15835
15835
|
|
|
15836
15836
|
const scope = this;
|
|
@@ -15995,8 +15995,8 @@ function WebGLClipping( properties ) {
|
|
|
15995
15995
|
|
|
15996
15996
|
}
|
|
15997
15997
|
|
|
15998
|
-
}
|
|
15999
|
-
|
|
15998
|
+
}
|
|
15999
|
+
|
|
16000
16000
|
function WebGLCubeMaps( renderer ) {
|
|
16001
16001
|
|
|
16002
16002
|
let cubemaps = new WeakMap();
|
|
@@ -16090,8 +16090,8 @@ function WebGLCubeMaps( renderer ) {
|
|
|
16090
16090
|
dispose: dispose
|
|
16091
16091
|
};
|
|
16092
16092
|
|
|
16093
|
-
}
|
|
16094
|
-
|
|
16093
|
+
}
|
|
16094
|
+
|
|
16095
16095
|
class OrthographicCamera extends Camera {
|
|
16096
16096
|
|
|
16097
16097
|
constructor( left = - 1, right = 1, top = 1, bottom = - 1, near = 0.1, far = 2000 ) {
|
|
@@ -16223,8 +16223,8 @@ class OrthographicCamera extends Camera {
|
|
|
16223
16223
|
|
|
16224
16224
|
}
|
|
16225
16225
|
|
|
16226
|
-
}
|
|
16227
|
-
|
|
16226
|
+
}
|
|
16227
|
+
|
|
16228
16228
|
const LOD_MIN = 4;
|
|
16229
16229
|
|
|
16230
16230
|
// The standard deviations (radians) associated with the extra mips. These are
|
|
@@ -16242,6 +16242,7 @@ const _clearColor = /*@__PURE__*/ new Color();
|
|
|
16242
16242
|
let _oldTarget = null;
|
|
16243
16243
|
let _oldActiveCubeFace = 0;
|
|
16244
16244
|
let _oldActiveMipmapLevel = 0;
|
|
16245
|
+
let _oldXrEnabled = false;
|
|
16245
16246
|
|
|
16246
16247
|
// Golden Ratio
|
|
16247
16248
|
const PHI = ( 1 + Math.sqrt( 5 ) ) / 2;
|
|
@@ -16309,6 +16310,9 @@ class PMREMGenerator {
|
|
|
16309
16310
|
_oldTarget = this._renderer.getRenderTarget();
|
|
16310
16311
|
_oldActiveCubeFace = this._renderer.getActiveCubeFace();
|
|
16311
16312
|
_oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();
|
|
16313
|
+
_oldXrEnabled = this._renderer.xr.enabled;
|
|
16314
|
+
|
|
16315
|
+
this._renderer.xr.enabled = false;
|
|
16312
16316
|
|
|
16313
16317
|
this._setSize( 256 );
|
|
16314
16318
|
|
|
@@ -16424,6 +16428,8 @@ class PMREMGenerator {
|
|
|
16424
16428
|
_cleanup( outputTarget ) {
|
|
16425
16429
|
|
|
16426
16430
|
this._renderer.setRenderTarget( _oldTarget, _oldActiveCubeFace, _oldActiveMipmapLevel );
|
|
16431
|
+
this._renderer.xr.enabled = _oldXrEnabled;
|
|
16432
|
+
|
|
16427
16433
|
outputTarget.scissorTest = false;
|
|
16428
16434
|
_setViewport( outputTarget, 0, 0, outputTarget.width, outputTarget.height );
|
|
16429
16435
|
|
|
@@ -16444,6 +16450,9 @@ class PMREMGenerator {
|
|
|
16444
16450
|
_oldTarget = this._renderer.getRenderTarget();
|
|
16445
16451
|
_oldActiveCubeFace = this._renderer.getActiveCubeFace();
|
|
16446
16452
|
_oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();
|
|
16453
|
+
_oldXrEnabled = this._renderer.xr.enabled;
|
|
16454
|
+
|
|
16455
|
+
this._renderer.xr.enabled = false;
|
|
16447
16456
|
|
|
16448
16457
|
const cubeUVRenderTarget = renderTarget || this._allocateTargets();
|
|
16449
16458
|
this._textureToCubeUV( texture, cubeUVRenderTarget );
|
|
@@ -17109,8 +17118,8 @@ function _getCommonVertexShader() {
|
|
|
17109
17118
|
}
|
|
17110
17119
|
`;
|
|
17111
17120
|
|
|
17112
|
-
}
|
|
17113
|
-
|
|
17121
|
+
}
|
|
17122
|
+
|
|
17114
17123
|
function WebGLCubeUVMaps( renderer ) {
|
|
17115
17124
|
|
|
17116
17125
|
let cubeUVmaps = new WeakMap();
|
|
@@ -17237,8 +17246,8 @@ function WebGLCubeUVMaps( renderer ) {
|
|
|
17237
17246
|
dispose: dispose
|
|
17238
17247
|
};
|
|
17239
17248
|
|
|
17240
|
-
}
|
|
17241
|
-
|
|
17249
|
+
}
|
|
17250
|
+
|
|
17242
17251
|
function WebGLExtensions( gl ) {
|
|
17243
17252
|
|
|
17244
17253
|
const extensions = {};
|
|
@@ -17332,8 +17341,8 @@ function WebGLExtensions( gl ) {
|
|
|
17332
17341
|
|
|
17333
17342
|
};
|
|
17334
17343
|
|
|
17335
|
-
}
|
|
17336
|
-
|
|
17344
|
+
}
|
|
17345
|
+
|
|
17337
17346
|
function WebGLGeometries( gl, attributes, info, bindingStates ) {
|
|
17338
17347
|
|
|
17339
17348
|
const geometries = {};
|
|
@@ -17538,8 +17547,8 @@ function WebGLGeometries( gl, attributes, info, bindingStates ) {
|
|
|
17538
17547
|
|
|
17539
17548
|
};
|
|
17540
17549
|
|
|
17541
|
-
}
|
|
17542
|
-
|
|
17550
|
+
}
|
|
17551
|
+
|
|
17543
17552
|
function WebGLIndexedBufferRenderer( gl, extensions, info, capabilities ) {
|
|
17544
17553
|
|
|
17545
17554
|
const isWebGL2 = capabilities.isWebGL2;
|
|
@@ -17638,8 +17647,8 @@ function WebGLIndexedBufferRenderer( gl, extensions, info, capabilities ) {
|
|
|
17638
17647
|
this.renderInstances = renderInstances;
|
|
17639
17648
|
this.renderMultiDraw = renderMultiDraw;
|
|
17640
17649
|
|
|
17641
|
-
}
|
|
17642
|
-
|
|
17650
|
+
}
|
|
17651
|
+
|
|
17643
17652
|
function WebGLInfo( gl ) {
|
|
17644
17653
|
|
|
17645
17654
|
const memory = {
|
|
@@ -17707,8 +17716,8 @@ function WebGLInfo( gl ) {
|
|
|
17707
17716
|
update: update
|
|
17708
17717
|
};
|
|
17709
17718
|
|
|
17710
|
-
}
|
|
17711
|
-
|
|
17719
|
+
}
|
|
17720
|
+
|
|
17712
17721
|
function numericalSort( a, b ) {
|
|
17713
17722
|
|
|
17714
17723
|
return a[ 0 ] - b[ 0 ];
|
|
@@ -18007,8 +18016,8 @@ function WebGLMorphtargets( gl, capabilities, textures ) {
|
|
|
18007
18016
|
|
|
18008
18017
|
};
|
|
18009
18018
|
|
|
18010
|
-
}
|
|
18011
|
-
|
|
18019
|
+
}
|
|
18020
|
+
|
|
18012
18021
|
function WebGLObjects( gl, geometries, attributes, info ) {
|
|
18013
18022
|
|
|
18014
18023
|
let updateMap = new WeakMap();
|
|
@@ -18097,8 +18106,8 @@ function WebGLObjects( gl, geometries, attributes, info ) {
|
|
|
18097
18106
|
|
|
18098
18107
|
};
|
|
18099
18108
|
|
|
18100
|
-
}
|
|
18101
|
-
|
|
18109
|
+
}
|
|
18110
|
+
|
|
18102
18111
|
class DepthTexture extends Texture {
|
|
18103
18112
|
|
|
18104
18113
|
constructor( width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format ) {
|
|
@@ -18151,8 +18160,8 @@ class DepthTexture extends Texture {
|
|
|
18151
18160
|
|
|
18152
18161
|
}
|
|
18153
18162
|
|
|
18154
|
-
}
|
|
18155
|
-
|
|
18163
|
+
}
|
|
18164
|
+
|
|
18156
18165
|
/**
|
|
18157
18166
|
* Uniforms of a program.
|
|
18158
18167
|
* Those form a tree structure with a special top-level container for the root,
|
|
@@ -19300,8 +19309,8 @@ class WebGLUniforms {
|
|
|
19300
19309
|
|
|
19301
19310
|
}
|
|
19302
19311
|
|
|
19303
|
-
}
|
|
19304
|
-
|
|
19312
|
+
}
|
|
19313
|
+
|
|
19305
19314
|
function WebGLShader( gl, type, string ) {
|
|
19306
19315
|
|
|
19307
19316
|
const shader = gl.createShader( type );
|
|
@@ -19311,8 +19320,8 @@ function WebGLShader( gl, type, string ) {
|
|
|
19311
19320
|
|
|
19312
19321
|
return shader;
|
|
19313
19322
|
|
|
19314
|
-
}
|
|
19315
|
-
|
|
19323
|
+
}
|
|
19324
|
+
|
|
19316
19325
|
// From https://www.khronos.org/registry/webgl/extensions/KHR_parallel_shader_compile/
|
|
19317
19326
|
const COMPLETION_STATUS_KHR = 0x91B1;
|
|
19318
19327
|
|
|
@@ -20424,8 +20433,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
20424
20433
|
|
|
20425
20434
|
return this;
|
|
20426
20435
|
|
|
20427
|
-
}
|
|
20428
|
-
|
|
20436
|
+
}
|
|
20437
|
+
|
|
20429
20438
|
let _id$1 = 0;
|
|
20430
20439
|
|
|
20431
20440
|
class WebGLShaderCache {
|
|
@@ -20547,8 +20556,8 @@ class WebGLShaderStage {
|
|
|
20547
20556
|
|
|
20548
20557
|
}
|
|
20549
20558
|
|
|
20550
|
-
}
|
|
20551
|
-
|
|
20559
|
+
}
|
|
20560
|
+
|
|
20552
20561
|
function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping ) {
|
|
20553
20562
|
|
|
20554
20563
|
const _programLayers = new Layers();
|
|
@@ -21202,8 +21211,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
21202
21211
|
dispose: dispose
|
|
21203
21212
|
};
|
|
21204
21213
|
|
|
21205
|
-
}
|
|
21206
|
-
|
|
21214
|
+
}
|
|
21215
|
+
|
|
21207
21216
|
function WebGLProperties() {
|
|
21208
21217
|
|
|
21209
21218
|
let properties = new WeakMap();
|
|
@@ -21248,8 +21257,8 @@ function WebGLProperties() {
|
|
|
21248
21257
|
dispose: dispose
|
|
21249
21258
|
};
|
|
21250
21259
|
|
|
21251
|
-
}
|
|
21252
|
-
|
|
21260
|
+
}
|
|
21261
|
+
|
|
21253
21262
|
function painterSortStable( a, b ) {
|
|
21254
21263
|
|
|
21255
21264
|
if ( a.groupOrder !== b.groupOrder ) {
|
|
@@ -21484,8 +21493,8 @@ function WebGLRenderLists() {
|
|
|
21484
21493
|
dispose: dispose
|
|
21485
21494
|
};
|
|
21486
21495
|
|
|
21487
|
-
}
|
|
21488
|
-
|
|
21496
|
+
}
|
|
21497
|
+
|
|
21489
21498
|
function UniformsCache() {
|
|
21490
21499
|
|
|
21491
21500
|
const lights = {};
|
|
@@ -22066,8 +22075,8 @@ function WebGLLights( extensions, capabilities ) {
|
|
|
22066
22075
|
state: state
|
|
22067
22076
|
};
|
|
22068
22077
|
|
|
22069
|
-
}
|
|
22070
|
-
|
|
22078
|
+
}
|
|
22079
|
+
|
|
22071
22080
|
function WebGLRenderState( extensions, capabilities ) {
|
|
22072
22081
|
|
|
22073
22082
|
const lights = new WebGLLights( extensions, capabilities );
|
|
@@ -22169,8 +22178,8 @@ function WebGLRenderStates( extensions, capabilities ) {
|
|
|
22169
22178
|
dispose: dispose
|
|
22170
22179
|
};
|
|
22171
22180
|
|
|
22172
|
-
}
|
|
22173
|
-
|
|
22181
|
+
}
|
|
22182
|
+
|
|
22174
22183
|
class MeshDepthMaterial extends Material {
|
|
22175
22184
|
|
|
22176
22185
|
constructor( parameters ) {
|
|
@@ -22219,8 +22228,8 @@ class MeshDepthMaterial extends Material {
|
|
|
22219
22228
|
|
|
22220
22229
|
}
|
|
22221
22230
|
|
|
22222
|
-
}
|
|
22223
|
-
|
|
22231
|
+
}
|
|
22232
|
+
|
|
22224
22233
|
class MeshDistanceMaterial extends Material {
|
|
22225
22234
|
|
|
22226
22235
|
constructor( parameters ) {
|
|
@@ -22259,12 +22268,12 @@ class MeshDistanceMaterial extends Material {
|
|
|
22259
22268
|
|
|
22260
22269
|
}
|
|
22261
22270
|
|
|
22262
|
-
}
|
|
22263
|
-
|
|
22271
|
+
}
|
|
22272
|
+
|
|
22264
22273
|
const vertex = "void main() {\n\tgl_Position = vec4( position, 1.0 );\n}";
|
|
22265
22274
|
|
|
22266
|
-
const fragment = "uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";
|
|
22267
|
-
|
|
22275
|
+
const fragment = "uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";
|
|
22276
|
+
|
|
22268
22277
|
function WebGLShadowMap( _renderer, _objects, _capabilities ) {
|
|
22269
22278
|
|
|
22270
22279
|
let _frustum = new Frustum();
|
|
@@ -22671,8 +22680,8 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
|
|
|
22671
22680
|
|
|
22672
22681
|
}
|
|
22673
22682
|
|
|
22674
|
-
}
|
|
22675
|
-
|
|
22683
|
+
}
|
|
22684
|
+
|
|
22676
22685
|
function WebGLState( gl, extensions, capabilities ) {
|
|
22677
22686
|
|
|
22678
22687
|
const isWebGL2 = capabilities.isWebGL2;
|
|
@@ -23984,8 +23993,8 @@ function WebGLState( gl, extensions, capabilities ) {
|
|
|
23984
23993
|
|
|
23985
23994
|
};
|
|
23986
23995
|
|
|
23987
|
-
}
|
|
23988
|
-
|
|
23996
|
+
}
|
|
23997
|
+
|
|
23989
23998
|
function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info ) {
|
|
23990
23999
|
|
|
23991
24000
|
const isWebGL2 = capabilities.isWebGL2;
|
|
@@ -26189,8 +26198,8 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
26189
26198
|
this.setupFrameBufferTexture = setupFrameBufferTexture;
|
|
26190
26199
|
this.useMultisampledRTT = useMultisampledRTT;
|
|
26191
26200
|
|
|
26192
|
-
}
|
|
26193
|
-
|
|
26201
|
+
}
|
|
26202
|
+
|
|
26194
26203
|
function WebGLUtils( gl, extensions, capabilities ) {
|
|
26195
26204
|
|
|
26196
26205
|
const isWebGL2 = capabilities.isWebGL2;
|
|
@@ -26467,8 +26476,8 @@ function WebGLUtils( gl, extensions, capabilities ) {
|
|
|
26467
26476
|
|
|
26468
26477
|
return { convert: convert };
|
|
26469
26478
|
|
|
26470
|
-
}
|
|
26471
|
-
|
|
26479
|
+
}
|
|
26480
|
+
|
|
26472
26481
|
class ArrayCamera extends PerspectiveCamera {
|
|
26473
26482
|
|
|
26474
26483
|
constructor( array = [] ) {
|
|
@@ -26481,8 +26490,8 @@ class ArrayCamera extends PerspectiveCamera {
|
|
|
26481
26490
|
|
|
26482
26491
|
}
|
|
26483
26492
|
|
|
26484
|
-
}
|
|
26485
|
-
|
|
26493
|
+
}
|
|
26494
|
+
|
|
26486
26495
|
class Group extends Object3D {
|
|
26487
26496
|
|
|
26488
26497
|
constructor() {
|
|
@@ -26495,8 +26504,8 @@ class Group extends Object3D {
|
|
|
26495
26504
|
|
|
26496
26505
|
}
|
|
26497
26506
|
|
|
26498
|
-
}
|
|
26499
|
-
|
|
26507
|
+
}
|
|
26508
|
+
|
|
26500
26509
|
const _moveEvent = { type: 'move' };
|
|
26501
26510
|
|
|
26502
26511
|
class WebXRController {
|
|
@@ -26833,8 +26842,8 @@ class WebXRController {
|
|
|
26833
26842
|
|
|
26834
26843
|
}
|
|
26835
26844
|
|
|
26836
|
-
}
|
|
26837
|
-
|
|
26845
|
+
}
|
|
26846
|
+
|
|
26838
26847
|
const _occlusion_vertex = `
|
|
26839
26848
|
void main() {
|
|
26840
26849
|
|
|
@@ -26932,8 +26941,8 @@ class WebXRDepthSensing {
|
|
|
26932
26941
|
|
|
26933
26942
|
}
|
|
26934
26943
|
|
|
26935
|
-
}
|
|
26936
|
-
|
|
26944
|
+
}
|
|
26945
|
+
|
|
26937
26946
|
class WebXRManager extends EventDispatcher {
|
|
26938
26947
|
|
|
26939
26948
|
constructor( renderer, gl ) {
|
|
@@ -27747,8 +27756,8 @@ class WebXRManager extends EventDispatcher {
|
|
|
27747
27756
|
|
|
27748
27757
|
}
|
|
27749
27758
|
|
|
27750
|
-
}
|
|
27751
|
-
|
|
27759
|
+
}
|
|
27760
|
+
|
|
27752
27761
|
const _e1 = /*@__PURE__*/ new Euler();
|
|
27753
27762
|
const _m1 = /*@__PURE__*/ new Matrix4();
|
|
27754
27763
|
|
|
@@ -28331,8 +28340,8 @@ function WebGLMaterials( renderer, properties ) {
|
|
|
28331
28340
|
refreshMaterialUniforms: refreshMaterialUniforms
|
|
28332
28341
|
};
|
|
28333
28342
|
|
|
28334
|
-
}
|
|
28335
|
-
|
|
28343
|
+
}
|
|
28344
|
+
|
|
28336
28345
|
function WebGLUniformsGroups( gl, info, capabilities, state ) {
|
|
28337
28346
|
|
|
28338
28347
|
let buffers = {};
|
|
@@ -28721,8 +28730,8 @@ function WebGLUniformsGroups( gl, info, capabilities, state ) {
|
|
|
28721
28730
|
|
|
28722
28731
|
};
|
|
28723
28732
|
|
|
28724
|
-
}
|
|
28725
|
-
|
|
28733
|
+
}
|
|
28734
|
+
|
|
28726
28735
|
class WebGLRenderer {
|
|
28727
28736
|
|
|
28728
28737
|
constructor( parameters = {} ) {
|
|
@@ -31269,12 +31278,12 @@ class WebGLRenderer {
|
|
|
31269
31278
|
|
|
31270
31279
|
}
|
|
31271
31280
|
|
|
31272
|
-
}
|
|
31273
|
-
|
|
31281
|
+
}
|
|
31282
|
+
|
|
31274
31283
|
class WebGL1Renderer extends WebGLRenderer {}
|
|
31275
31284
|
|
|
31276
|
-
WebGL1Renderer.prototype.isWebGL1Renderer = true;
|
|
31277
|
-
|
|
31285
|
+
WebGL1Renderer.prototype.isWebGL1Renderer = true;
|
|
31286
|
+
|
|
31278
31287
|
class FogExp2 {
|
|
31279
31288
|
|
|
31280
31289
|
constructor( color, density = 0.00025 ) {
|
|
@@ -31305,8 +31314,8 @@ class FogExp2 {
|
|
|
31305
31314
|
|
|
31306
31315
|
}
|
|
31307
31316
|
|
|
31308
|
-
}
|
|
31309
|
-
|
|
31317
|
+
}
|
|
31318
|
+
|
|
31310
31319
|
class Fog {
|
|
31311
31320
|
|
|
31312
31321
|
constructor( color, near = 1, far = 1000 ) {
|
|
@@ -31340,8 +31349,8 @@ class Fog {
|
|
|
31340
31349
|
|
|
31341
31350
|
}
|
|
31342
31351
|
|
|
31343
|
-
}
|
|
31344
|
-
|
|
31352
|
+
}
|
|
31353
|
+
|
|
31345
31354
|
class Scene extends Object3D {
|
|
31346
31355
|
|
|
31347
31356
|
constructor() {
|
|
@@ -31407,8 +31416,8 @@ class Scene extends Object3D {
|
|
|
31407
31416
|
|
|
31408
31417
|
}
|
|
31409
31418
|
|
|
31410
|
-
}
|
|
31411
|
-
|
|
31419
|
+
}
|
|
31420
|
+
|
|
31412
31421
|
class InterleavedBuffer {
|
|
31413
31422
|
|
|
31414
31423
|
constructor( array, stride ) {
|
|
@@ -31568,8 +31577,8 @@ class InterleavedBuffer {
|
|
|
31568
31577
|
|
|
31569
31578
|
}
|
|
31570
31579
|
|
|
31571
|
-
}
|
|
31572
|
-
|
|
31580
|
+
}
|
|
31581
|
+
|
|
31573
31582
|
const _vector$6 = /*@__PURE__*/ new Vector3();
|
|
31574
31583
|
|
|
31575
31584
|
class InterleavedBufferAttribute {
|
|
@@ -31913,8 +31922,8 @@ class InterleavedBufferAttribute {
|
|
|
31913
31922
|
|
|
31914
31923
|
}
|
|
31915
31924
|
|
|
31916
|
-
}
|
|
31917
|
-
|
|
31925
|
+
}
|
|
31926
|
+
|
|
31918
31927
|
class SpriteMaterial extends Material {
|
|
31919
31928
|
|
|
31920
31929
|
constructor( parameters ) {
|
|
@@ -31963,8 +31972,8 @@ class SpriteMaterial extends Material {
|
|
|
31963
31972
|
|
|
31964
31973
|
}
|
|
31965
31974
|
|
|
31966
|
-
}
|
|
31967
|
-
|
|
31975
|
+
}
|
|
31976
|
+
|
|
31968
31977
|
let _geometry;
|
|
31969
31978
|
|
|
31970
31979
|
const _intersectPoint = /*@__PURE__*/ new Vector3();
|
|
@@ -32133,8 +32142,8 @@ function transformVertex( vertexPosition, mvPosition, center, scale, sin, cos )
|
|
|
32133
32142
|
// transform to world space
|
|
32134
32143
|
vertexPosition.applyMatrix4( _viewWorldMatrix );
|
|
32135
32144
|
|
|
32136
|
-
}
|
|
32137
|
-
|
|
32145
|
+
}
|
|
32146
|
+
|
|
32138
32147
|
const _v1$2 = /*@__PURE__*/ new Vector3();
|
|
32139
32148
|
const _v2$1 = /*@__PURE__*/ new Vector3();
|
|
32140
32149
|
|
|
@@ -32342,8 +32351,8 @@ class LOD extends Object3D {
|
|
|
32342
32351
|
|
|
32343
32352
|
}
|
|
32344
32353
|
|
|
32345
|
-
}
|
|
32346
|
-
|
|
32354
|
+
}
|
|
32355
|
+
|
|
32347
32356
|
const _basePosition = /*@__PURE__*/ new Vector3();
|
|
32348
32357
|
|
|
32349
32358
|
const _skinIndex = /*@__PURE__*/ new Vector4();
|
|
@@ -32589,8 +32598,8 @@ class SkinnedMesh extends Mesh {
|
|
|
32589
32598
|
|
|
32590
32599
|
}
|
|
32591
32600
|
|
|
32592
|
-
}
|
|
32593
|
-
|
|
32601
|
+
}
|
|
32602
|
+
|
|
32594
32603
|
class Bone extends Object3D {
|
|
32595
32604
|
|
|
32596
32605
|
constructor() {
|
|
@@ -32603,8 +32612,8 @@ class Bone extends Object3D {
|
|
|
32603
32612
|
|
|
32604
32613
|
}
|
|
32605
32614
|
|
|
32606
|
-
}
|
|
32607
|
-
|
|
32615
|
+
}
|
|
32616
|
+
|
|
32608
32617
|
class DataTexture extends Texture {
|
|
32609
32618
|
|
|
32610
32619
|
constructor( data = null, width = 1, height = 1, format, type, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, colorSpace ) {
|
|
@@ -32621,8 +32630,8 @@ class DataTexture extends Texture {
|
|
|
32621
32630
|
|
|
32622
32631
|
}
|
|
32623
32632
|
|
|
32624
|
-
}
|
|
32625
|
-
|
|
32633
|
+
}
|
|
32634
|
+
|
|
32626
32635
|
const _offsetMatrix = /*@__PURE__*/ new Matrix4();
|
|
32627
32636
|
const _identityMatrix$1 = /*@__PURE__*/ new Matrix4();
|
|
32628
32637
|
|
|
@@ -32888,8 +32897,8 @@ class Skeleton {
|
|
|
32888
32897
|
|
|
32889
32898
|
}
|
|
32890
32899
|
|
|
32891
|
-
}
|
|
32892
|
-
|
|
32900
|
+
}
|
|
32901
|
+
|
|
32893
32902
|
class InstancedBufferAttribute extends BufferAttribute {
|
|
32894
32903
|
|
|
32895
32904
|
constructor( array, itemSize, normalized, meshPerAttribute = 1 ) {
|
|
@@ -32924,8 +32933,8 @@ class InstancedBufferAttribute extends BufferAttribute {
|
|
|
32924
32933
|
|
|
32925
32934
|
}
|
|
32926
32935
|
|
|
32927
|
-
}
|
|
32928
|
-
|
|
32936
|
+
}
|
|
32937
|
+
|
|
32929
32938
|
const _instanceLocalMatrix = /*@__PURE__*/ new Matrix4();
|
|
32930
32939
|
const _instanceWorldMatrix = /*@__PURE__*/ new Matrix4();
|
|
32931
32940
|
|
|
@@ -33182,8 +33191,8 @@ class InstancedMesh extends Mesh {
|
|
|
33182
33191
|
|
|
33183
33192
|
}
|
|
33184
33193
|
|
|
33185
|
-
}
|
|
33186
|
-
|
|
33194
|
+
}
|
|
33195
|
+
|
|
33187
33196
|
function sortOpaque( a, b ) {
|
|
33188
33197
|
|
|
33189
33198
|
return a.z - b.z;
|
|
@@ -34189,8 +34198,8 @@ class BatchedMesh extends Mesh {
|
|
|
34189
34198
|
|
|
34190
34199
|
}
|
|
34191
34200
|
|
|
34192
|
-
}
|
|
34193
|
-
|
|
34201
|
+
}
|
|
34202
|
+
|
|
34194
34203
|
class LineBasicMaterial extends Material {
|
|
34195
34204
|
|
|
34196
34205
|
constructor( parameters ) {
|
|
@@ -34234,8 +34243,8 @@ class LineBasicMaterial extends Material {
|
|
|
34234
34243
|
|
|
34235
34244
|
}
|
|
34236
34245
|
|
|
34237
|
-
}
|
|
34238
|
-
|
|
34246
|
+
}
|
|
34247
|
+
|
|
34239
34248
|
const _start$1 = /*@__PURE__*/ new Vector3();
|
|
34240
34249
|
const _end$1 = /*@__PURE__*/ new Vector3();
|
|
34241
34250
|
const _inverseMatrix$1 = /*@__PURE__*/ new Matrix4();
|
|
@@ -34446,8 +34455,8 @@ class Line extends Object3D {
|
|
|
34446
34455
|
|
|
34447
34456
|
}
|
|
34448
34457
|
|
|
34449
|
-
}
|
|
34450
|
-
|
|
34458
|
+
}
|
|
34459
|
+
|
|
34451
34460
|
const _start = /*@__PURE__*/ new Vector3();
|
|
34452
34461
|
const _end = /*@__PURE__*/ new Vector3();
|
|
34453
34462
|
|
|
@@ -34496,8 +34505,8 @@ class LineSegments extends Line {
|
|
|
34496
34505
|
|
|
34497
34506
|
}
|
|
34498
34507
|
|
|
34499
|
-
}
|
|
34500
|
-
|
|
34508
|
+
}
|
|
34509
|
+
|
|
34501
34510
|
class LineLoop extends Line {
|
|
34502
34511
|
|
|
34503
34512
|
constructor( geometry, material ) {
|
|
@@ -34510,8 +34519,8 @@ class LineLoop extends Line {
|
|
|
34510
34519
|
|
|
34511
34520
|
}
|
|
34512
34521
|
|
|
34513
|
-
}
|
|
34514
|
-
|
|
34522
|
+
}
|
|
34523
|
+
|
|
34515
34524
|
class PointsMaterial extends Material {
|
|
34516
34525
|
|
|
34517
34526
|
constructor( parameters ) {
|
|
@@ -34556,8 +34565,8 @@ class PointsMaterial extends Material {
|
|
|
34556
34565
|
|
|
34557
34566
|
}
|
|
34558
34567
|
|
|
34559
|
-
}
|
|
34560
|
-
|
|
34568
|
+
}
|
|
34569
|
+
|
|
34561
34570
|
const _inverseMatrix = /*@__PURE__*/ new Matrix4();
|
|
34562
34571
|
const _ray = /*@__PURE__*/ new Ray();
|
|
34563
34572
|
const _sphere = /*@__PURE__*/ new Sphere();
|
|
@@ -34713,8 +34722,8 @@ function testPoint( point, index, localThresholdSq, matrixWorld, raycaster, inte
|
|
|
34713
34722
|
|
|
34714
34723
|
}
|
|
34715
34724
|
|
|
34716
|
-
}
|
|
34717
|
-
|
|
34725
|
+
}
|
|
34726
|
+
|
|
34718
34727
|
class VideoTexture extends Texture {
|
|
34719
34728
|
|
|
34720
34729
|
constructor( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
|
|
@@ -34764,8 +34773,8 @@ class VideoTexture extends Texture {
|
|
|
34764
34773
|
|
|
34765
34774
|
}
|
|
34766
34775
|
|
|
34767
|
-
}
|
|
34768
|
-
|
|
34776
|
+
}
|
|
34777
|
+
|
|
34769
34778
|
class FramebufferTexture extends Texture {
|
|
34770
34779
|
|
|
34771
34780
|
constructor( width, height ) {
|
|
@@ -34783,8 +34792,8 @@ class FramebufferTexture extends Texture {
|
|
|
34783
34792
|
|
|
34784
34793
|
}
|
|
34785
34794
|
|
|
34786
|
-
}
|
|
34787
|
-
|
|
34795
|
+
}
|
|
34796
|
+
|
|
34788
34797
|
class CompressedTexture extends Texture {
|
|
34789
34798
|
|
|
34790
34799
|
constructor( mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, colorSpace ) {
|
|
@@ -34808,8 +34817,8 @@ class CompressedTexture extends Texture {
|
|
|
34808
34817
|
|
|
34809
34818
|
}
|
|
34810
34819
|
|
|
34811
|
-
}
|
|
34812
|
-
|
|
34820
|
+
}
|
|
34821
|
+
|
|
34813
34822
|
class CompressedArrayTexture extends CompressedTexture {
|
|
34814
34823
|
|
|
34815
34824
|
constructor( mipmaps, width, height, depth, format, type ) {
|
|
@@ -34822,8 +34831,8 @@ class CompressedArrayTexture extends CompressedTexture {
|
|
|
34822
34831
|
|
|
34823
34832
|
}
|
|
34824
34833
|
|
|
34825
|
-
}
|
|
34826
|
-
|
|
34834
|
+
}
|
|
34835
|
+
|
|
34827
34836
|
class CompressedCubeTexture extends CompressedTexture {
|
|
34828
34837
|
|
|
34829
34838
|
constructor( images, format, type ) {
|
|
@@ -34837,8 +34846,8 @@ class CompressedCubeTexture extends CompressedTexture {
|
|
|
34837
34846
|
|
|
34838
34847
|
}
|
|
34839
34848
|
|
|
34840
|
-
}
|
|
34841
|
-
|
|
34849
|
+
}
|
|
34850
|
+
|
|
34842
34851
|
class CanvasTexture extends Texture {
|
|
34843
34852
|
|
|
34844
34853
|
constructor( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
|
|
@@ -34851,8 +34860,8 @@ class CanvasTexture extends Texture {
|
|
|
34851
34860
|
|
|
34852
34861
|
}
|
|
34853
34862
|
|
|
34854
|
-
}
|
|
34855
|
-
|
|
34863
|
+
}
|
|
34864
|
+
|
|
34856
34865
|
/**
|
|
34857
34866
|
* Extensible curve object.
|
|
34858
34867
|
*
|
|
@@ -35260,8 +35269,8 @@ class Curve {
|
|
|
35260
35269
|
|
|
35261
35270
|
}
|
|
35262
35271
|
|
|
35263
|
-
}
|
|
35264
|
-
|
|
35272
|
+
}
|
|
35273
|
+
|
|
35265
35274
|
class EllipseCurve extends Curve {
|
|
35266
35275
|
|
|
35267
35276
|
constructor( aX = 0, aY = 0, xRadius = 1, yRadius = 1, aStartAngle = 0, aEndAngle = Math.PI * 2, aClockwise = false, aRotation = 0 ) {
|
|
@@ -35412,8 +35421,8 @@ class EllipseCurve extends Curve {
|
|
|
35412
35421
|
|
|
35413
35422
|
}
|
|
35414
35423
|
|
|
35415
|
-
}
|
|
35416
|
-
|
|
35424
|
+
}
|
|
35425
|
+
|
|
35417
35426
|
class ArcCurve extends EllipseCurve {
|
|
35418
35427
|
|
|
35419
35428
|
constructor( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {
|
|
@@ -35426,8 +35435,8 @@ class ArcCurve extends EllipseCurve {
|
|
|
35426
35435
|
|
|
35427
35436
|
}
|
|
35428
35437
|
|
|
35429
|
-
}
|
|
35430
|
-
|
|
35438
|
+
}
|
|
35439
|
+
|
|
35431
35440
|
/**
|
|
35432
35441
|
* Centripetal CatmullRom Curve - which is useful for avoiding
|
|
35433
35442
|
* cusps and self-intersections in non-uniform catmull rom curves.
|
|
@@ -35677,8 +35686,8 @@ class CatmullRomCurve3 extends Curve {
|
|
|
35677
35686
|
|
|
35678
35687
|
}
|
|
35679
35688
|
|
|
35680
|
-
}
|
|
35681
|
-
|
|
35689
|
+
}
|
|
35690
|
+
|
|
35682
35691
|
/**
|
|
35683
35692
|
* Bezier Curves formulas obtained from
|
|
35684
35693
|
* https://en.wikipedia.org/wiki/B%C3%A9zier_curve
|
|
@@ -35755,8 +35764,8 @@ function CubicBezier( t, p0, p1, p2, p3 ) {
|
|
|
35755
35764
|
return CubicBezierP0( t, p0 ) + CubicBezierP1( t, p1 ) + CubicBezierP2( t, p2 ) +
|
|
35756
35765
|
CubicBezierP3( t, p3 );
|
|
35757
35766
|
|
|
35758
|
-
}
|
|
35759
|
-
|
|
35767
|
+
}
|
|
35768
|
+
|
|
35760
35769
|
class CubicBezierCurve extends Curve {
|
|
35761
35770
|
|
|
35762
35771
|
constructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2() ) {
|
|
@@ -35828,8 +35837,8 @@ class CubicBezierCurve extends Curve {
|
|
|
35828
35837
|
|
|
35829
35838
|
}
|
|
35830
35839
|
|
|
35831
|
-
}
|
|
35832
|
-
|
|
35840
|
+
}
|
|
35841
|
+
|
|
35833
35842
|
class CubicBezierCurve3 extends Curve {
|
|
35834
35843
|
|
|
35835
35844
|
constructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3(), v3 = new Vector3() ) {
|
|
@@ -35902,8 +35911,8 @@ class CubicBezierCurve3 extends Curve {
|
|
|
35902
35911
|
|
|
35903
35912
|
}
|
|
35904
35913
|
|
|
35905
|
-
}
|
|
35906
|
-
|
|
35914
|
+
}
|
|
35915
|
+
|
|
35907
35916
|
class LineCurve extends Curve {
|
|
35908
35917
|
|
|
35909
35918
|
constructor( v1 = new Vector2(), v2 = new Vector2() ) {
|
|
@@ -35990,8 +35999,8 @@ class LineCurve extends Curve {
|
|
|
35990
35999
|
|
|
35991
36000
|
}
|
|
35992
36001
|
|
|
35993
|
-
}
|
|
35994
|
-
|
|
36002
|
+
}
|
|
36003
|
+
|
|
35995
36004
|
class LineCurve3 extends Curve {
|
|
35996
36005
|
|
|
35997
36006
|
constructor( v1 = new Vector3(), v2 = new Vector3() ) {
|
|
@@ -36078,8 +36087,8 @@ class LineCurve3 extends Curve {
|
|
|
36078
36087
|
|
|
36079
36088
|
}
|
|
36080
36089
|
|
|
36081
|
-
}
|
|
36082
|
-
|
|
36090
|
+
}
|
|
36091
|
+
|
|
36083
36092
|
class QuadraticBezierCurve extends Curve {
|
|
36084
36093
|
|
|
36085
36094
|
constructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2() ) {
|
|
@@ -36147,8 +36156,8 @@ class QuadraticBezierCurve extends Curve {
|
|
|
36147
36156
|
|
|
36148
36157
|
}
|
|
36149
36158
|
|
|
36150
|
-
}
|
|
36151
|
-
|
|
36159
|
+
}
|
|
36160
|
+
|
|
36152
36161
|
class QuadraticBezierCurve3 extends Curve {
|
|
36153
36162
|
|
|
36154
36163
|
constructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3() ) {
|
|
@@ -36217,8 +36226,8 @@ class QuadraticBezierCurve3 extends Curve {
|
|
|
36217
36226
|
|
|
36218
36227
|
}
|
|
36219
36228
|
|
|
36220
|
-
}
|
|
36221
|
-
|
|
36229
|
+
}
|
|
36230
|
+
|
|
36222
36231
|
class SplineCurve extends Curve {
|
|
36223
36232
|
|
|
36224
36233
|
constructor( points = [] ) {
|
|
@@ -36309,22 +36318,22 @@ class SplineCurve extends Curve {
|
|
|
36309
36318
|
|
|
36310
36319
|
}
|
|
36311
36320
|
|
|
36312
|
-
}
|
|
36313
|
-
|
|
36314
|
-
var Curves = /*#__PURE__*/Object.freeze({
|
|
36315
|
-
__proto__: null,
|
|
36316
|
-
ArcCurve: ArcCurve,
|
|
36317
|
-
CatmullRomCurve3: CatmullRomCurve3,
|
|
36318
|
-
CubicBezierCurve: CubicBezierCurve,
|
|
36319
|
-
CubicBezierCurve3: CubicBezierCurve3,
|
|
36320
|
-
EllipseCurve: EllipseCurve,
|
|
36321
|
-
LineCurve: LineCurve,
|
|
36322
|
-
LineCurve3: LineCurve3,
|
|
36323
|
-
QuadraticBezierCurve: QuadraticBezierCurve,
|
|
36324
|
-
QuadraticBezierCurve3: QuadraticBezierCurve3,
|
|
36325
|
-
SplineCurve: SplineCurve
|
|
36326
|
-
});
|
|
36327
|
-
|
|
36321
|
+
}
|
|
36322
|
+
|
|
36323
|
+
var Curves = /*#__PURE__*/Object.freeze({
|
|
36324
|
+
__proto__: null,
|
|
36325
|
+
ArcCurve: ArcCurve,
|
|
36326
|
+
CatmullRomCurve3: CatmullRomCurve3,
|
|
36327
|
+
CubicBezierCurve: CubicBezierCurve,
|
|
36328
|
+
CubicBezierCurve3: CubicBezierCurve3,
|
|
36329
|
+
EllipseCurve: EllipseCurve,
|
|
36330
|
+
LineCurve: LineCurve,
|
|
36331
|
+
LineCurve3: LineCurve3,
|
|
36332
|
+
QuadraticBezierCurve: QuadraticBezierCurve,
|
|
36333
|
+
QuadraticBezierCurve3: QuadraticBezierCurve3,
|
|
36334
|
+
SplineCurve: SplineCurve
|
|
36335
|
+
});
|
|
36336
|
+
|
|
36328
36337
|
/**************************************************************
|
|
36329
36338
|
* Curved Path - a curve path is simply a array of connected
|
|
36330
36339
|
* curves, but retains the api of a curve
|
|
@@ -36573,8 +36582,8 @@ class CurvePath extends Curve {
|
|
|
36573
36582
|
|
|
36574
36583
|
}
|
|
36575
36584
|
|
|
36576
|
-
}
|
|
36577
|
-
|
|
36585
|
+
}
|
|
36586
|
+
|
|
36578
36587
|
class Path extends CurvePath {
|
|
36579
36588
|
|
|
36580
36589
|
constructor( points ) {
|
|
@@ -36759,8 +36768,8 @@ class Path extends CurvePath {
|
|
|
36759
36768
|
|
|
36760
36769
|
}
|
|
36761
36770
|
|
|
36762
|
-
}
|
|
36763
|
-
|
|
36771
|
+
}
|
|
36772
|
+
|
|
36764
36773
|
class LatheGeometry extends BufferGeometry {
|
|
36765
36774
|
|
|
36766
36775
|
constructor( points = [ new Vector2( 0, - 0.5 ), new Vector2( 0.5, 0 ), new Vector2( 0, 0.5 ) ], segments = 12, phiStart = 0, phiLength = Math.PI * 2 ) {
|
|
@@ -36940,8 +36949,8 @@ class LatheGeometry extends BufferGeometry {
|
|
|
36940
36949
|
|
|
36941
36950
|
}
|
|
36942
36951
|
|
|
36943
|
-
}
|
|
36944
|
-
|
|
36952
|
+
}
|
|
36953
|
+
|
|
36945
36954
|
class CapsuleGeometry extends LatheGeometry {
|
|
36946
36955
|
|
|
36947
36956
|
constructor( radius = 1, length = 1, capSegments = 4, radialSegments = 8 ) {
|
|
@@ -36969,8 +36978,8 @@ class CapsuleGeometry extends LatheGeometry {
|
|
|
36969
36978
|
|
|
36970
36979
|
}
|
|
36971
36980
|
|
|
36972
|
-
}
|
|
36973
|
-
|
|
36981
|
+
}
|
|
36982
|
+
|
|
36974
36983
|
class CircleGeometry extends BufferGeometry {
|
|
36975
36984
|
|
|
36976
36985
|
constructor( radius = 1, segments = 32, thetaStart = 0, thetaLength = Math.PI * 2 ) {
|
|
@@ -37063,8 +37072,8 @@ class CircleGeometry extends BufferGeometry {
|
|
|
37063
37072
|
|
|
37064
37073
|
}
|
|
37065
37074
|
|
|
37066
|
-
}
|
|
37067
|
-
|
|
37075
|
+
}
|
|
37076
|
+
|
|
37068
37077
|
class CylinderGeometry extends BufferGeometry {
|
|
37069
37078
|
|
|
37070
37079
|
constructor( radiusTop = 1, radiusBottom = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2 ) {
|
|
@@ -37342,8 +37351,8 @@ class CylinderGeometry extends BufferGeometry {
|
|
|
37342
37351
|
|
|
37343
37352
|
}
|
|
37344
37353
|
|
|
37345
|
-
}
|
|
37346
|
-
|
|
37354
|
+
}
|
|
37355
|
+
|
|
37347
37356
|
class ConeGeometry extends CylinderGeometry {
|
|
37348
37357
|
|
|
37349
37358
|
constructor( radius = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2 ) {
|
|
@@ -37370,8 +37379,8 @@ class ConeGeometry extends CylinderGeometry {
|
|
|
37370
37379
|
|
|
37371
37380
|
}
|
|
37372
37381
|
|
|
37373
|
-
}
|
|
37374
|
-
|
|
37382
|
+
}
|
|
37383
|
+
|
|
37375
37384
|
class PolyhedronGeometry extends BufferGeometry {
|
|
37376
37385
|
|
|
37377
37386
|
constructor( vertices = [], indices = [], radius = 1, detail = 0 ) {
|
|
@@ -37683,8 +37692,8 @@ class PolyhedronGeometry extends BufferGeometry {
|
|
|
37683
37692
|
|
|
37684
37693
|
}
|
|
37685
37694
|
|
|
37686
|
-
}
|
|
37687
|
-
|
|
37695
|
+
}
|
|
37696
|
+
|
|
37688
37697
|
class DodecahedronGeometry extends PolyhedronGeometry {
|
|
37689
37698
|
|
|
37690
37699
|
constructor( radius = 1, detail = 0 ) {
|
|
@@ -37745,8 +37754,8 @@ class DodecahedronGeometry extends PolyhedronGeometry {
|
|
|
37745
37754
|
|
|
37746
37755
|
}
|
|
37747
37756
|
|
|
37748
|
-
}
|
|
37749
|
-
|
|
37757
|
+
}
|
|
37758
|
+
|
|
37750
37759
|
const _v0 = /*@__PURE__*/ new Vector3();
|
|
37751
37760
|
const _v1$1 = /*@__PURE__*/ new Vector3();
|
|
37752
37761
|
const _normal = /*@__PURE__*/ new Vector3();
|
|
@@ -37890,8 +37899,8 @@ class EdgesGeometry extends BufferGeometry {
|
|
|
37890
37899
|
|
|
37891
37900
|
}
|
|
37892
37901
|
|
|
37893
|
-
}
|
|
37894
|
-
|
|
37902
|
+
}
|
|
37903
|
+
|
|
37895
37904
|
class Shape extends Path {
|
|
37896
37905
|
|
|
37897
37906
|
constructor( points ) {
|
|
@@ -37987,8 +37996,8 @@ class Shape extends Path {
|
|
|
37987
37996
|
|
|
37988
37997
|
}
|
|
37989
37998
|
|
|
37990
|
-
}
|
|
37991
|
-
|
|
37999
|
+
}
|
|
38000
|
+
|
|
37992
38001
|
/**
|
|
37993
38002
|
* Port from https://github.com/mapbox/earcut (v2.2.4)
|
|
37994
38003
|
*/
|
|
@@ -38775,8 +38784,8 @@ function signedArea( data, start, end, dim ) {
|
|
|
38775
38784
|
|
|
38776
38785
|
return sum;
|
|
38777
38786
|
|
|
38778
|
-
}
|
|
38779
|
-
|
|
38787
|
+
}
|
|
38788
|
+
|
|
38780
38789
|
class ShapeUtils {
|
|
38781
38790
|
|
|
38782
38791
|
// calculate area of the contour polygon
|
|
@@ -38864,8 +38873,8 @@ function addContour( vertices, contour ) {
|
|
|
38864
38873
|
|
|
38865
38874
|
}
|
|
38866
38875
|
|
|
38867
|
-
}
|
|
38868
|
-
|
|
38876
|
+
}
|
|
38877
|
+
|
|
38869
38878
|
/**
|
|
38870
38879
|
* Creates extruded geometry from a path shape.
|
|
38871
38880
|
*
|
|
@@ -39669,8 +39678,8 @@ function toJSON$1( shapes, options, data ) {
|
|
|
39669
39678
|
|
|
39670
39679
|
return data;
|
|
39671
39680
|
|
|
39672
|
-
}
|
|
39673
|
-
|
|
39681
|
+
}
|
|
39682
|
+
|
|
39674
39683
|
class IcosahedronGeometry extends PolyhedronGeometry {
|
|
39675
39684
|
|
|
39676
39685
|
constructor( radius = 1, detail = 0 ) {
|
|
@@ -39707,8 +39716,8 @@ class IcosahedronGeometry extends PolyhedronGeometry {
|
|
|
39707
39716
|
|
|
39708
39717
|
}
|
|
39709
39718
|
|
|
39710
|
-
}
|
|
39711
|
-
|
|
39719
|
+
}
|
|
39720
|
+
|
|
39712
39721
|
class OctahedronGeometry extends PolyhedronGeometry {
|
|
39713
39722
|
|
|
39714
39723
|
constructor( radius = 1, detail = 0 ) {
|
|
@@ -39741,8 +39750,8 @@ class OctahedronGeometry extends PolyhedronGeometry {
|
|
|
39741
39750
|
|
|
39742
39751
|
}
|
|
39743
39752
|
|
|
39744
|
-
}
|
|
39745
|
-
|
|
39753
|
+
}
|
|
39754
|
+
|
|
39746
39755
|
class RingGeometry extends BufferGeometry {
|
|
39747
39756
|
|
|
39748
39757
|
constructor( innerRadius = 0.5, outerRadius = 1, thetaSegments = 32, phiSegments = 1, thetaStart = 0, thetaLength = Math.PI * 2 ) {
|
|
@@ -39862,8 +39871,8 @@ class RingGeometry extends BufferGeometry {
|
|
|
39862
39871
|
|
|
39863
39872
|
}
|
|
39864
39873
|
|
|
39865
|
-
}
|
|
39866
|
-
|
|
39874
|
+
}
|
|
39875
|
+
|
|
39867
39876
|
class ShapeGeometry extends BufferGeometry {
|
|
39868
39877
|
|
|
39869
39878
|
constructor( shapes = new Shape( [ new Vector2( 0, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), curveSegments = 12 ) {
|
|
@@ -40050,8 +40059,8 @@ function toJSON( shapes, data ) {
|
|
|
40050
40059
|
|
|
40051
40060
|
return data;
|
|
40052
40061
|
|
|
40053
|
-
}
|
|
40054
|
-
|
|
40062
|
+
}
|
|
40063
|
+
|
|
40055
40064
|
class SphereGeometry extends BufferGeometry {
|
|
40056
40065
|
|
|
40057
40066
|
constructor( radius = 1, widthSegments = 32, heightSegments = 16, phiStart = 0, phiLength = Math.PI * 2, thetaStart = 0, thetaLength = Math.PI ) {
|
|
@@ -40182,8 +40191,8 @@ class SphereGeometry extends BufferGeometry {
|
|
|
40182
40191
|
|
|
40183
40192
|
}
|
|
40184
40193
|
|
|
40185
|
-
}
|
|
40186
|
-
|
|
40194
|
+
}
|
|
40195
|
+
|
|
40187
40196
|
class TetrahedronGeometry extends PolyhedronGeometry {
|
|
40188
40197
|
|
|
40189
40198
|
constructor( radius = 1, detail = 0 ) {
|
|
@@ -40213,8 +40222,8 @@ class TetrahedronGeometry extends PolyhedronGeometry {
|
|
|
40213
40222
|
|
|
40214
40223
|
}
|
|
40215
40224
|
|
|
40216
|
-
}
|
|
40217
|
-
|
|
40225
|
+
}
|
|
40226
|
+
|
|
40218
40227
|
class TorusGeometry extends BufferGeometry {
|
|
40219
40228
|
|
|
40220
40229
|
constructor( radius = 1, tube = 0.4, radialSegments = 12, tubularSegments = 48, arc = Math.PI * 2 ) {
|
|
@@ -40328,8 +40337,8 @@ class TorusGeometry extends BufferGeometry {
|
|
|
40328
40337
|
|
|
40329
40338
|
}
|
|
40330
40339
|
|
|
40331
|
-
}
|
|
40332
|
-
|
|
40340
|
+
}
|
|
40341
|
+
|
|
40333
40342
|
class TorusKnotGeometry extends BufferGeometry {
|
|
40334
40343
|
|
|
40335
40344
|
constructor( radius = 1, tube = 0.4, tubularSegments = 64, radialSegments = 8, p = 2, q = 3 ) {
|
|
@@ -40490,8 +40499,8 @@ class TorusKnotGeometry extends BufferGeometry {
|
|
|
40490
40499
|
|
|
40491
40500
|
}
|
|
40492
40501
|
|
|
40493
|
-
}
|
|
40494
|
-
|
|
40502
|
+
}
|
|
40503
|
+
|
|
40495
40504
|
class TubeGeometry extends BufferGeometry {
|
|
40496
40505
|
|
|
40497
40506
|
constructor( path = new QuadraticBezierCurve3( new Vector3( - 1, - 1, 0 ), new Vector3( - 1, 1, 0 ), new Vector3( 1, 1, 0 ) ), tubularSegments = 64, radius = 1, radialSegments = 8, closed = false ) {
|
|
@@ -40685,8 +40694,8 @@ class TubeGeometry extends BufferGeometry {
|
|
|
40685
40694
|
|
|
40686
40695
|
}
|
|
40687
40696
|
|
|
40688
|
-
}
|
|
40689
|
-
|
|
40697
|
+
}
|
|
40698
|
+
|
|
40690
40699
|
class WireframeGeometry extends BufferGeometry {
|
|
40691
40700
|
|
|
40692
40701
|
constructor( geometry = null ) {
|
|
@@ -40826,33 +40835,33 @@ function isUniqueEdge( start, end, edges ) {
|
|
|
40826
40835
|
|
|
40827
40836
|
}
|
|
40828
40837
|
|
|
40829
|
-
}
|
|
40830
|
-
|
|
40831
|
-
var Geometries = /*#__PURE__*/Object.freeze({
|
|
40832
|
-
__proto__: null,
|
|
40833
|
-
BoxGeometry: BoxGeometry,
|
|
40834
|
-
CapsuleGeometry: CapsuleGeometry,
|
|
40835
|
-
CircleGeometry: CircleGeometry,
|
|
40836
|
-
ConeGeometry: ConeGeometry,
|
|
40837
|
-
CylinderGeometry: CylinderGeometry,
|
|
40838
|
-
DodecahedronGeometry: DodecahedronGeometry,
|
|
40839
|
-
EdgesGeometry: EdgesGeometry,
|
|
40840
|
-
ExtrudeGeometry: ExtrudeGeometry,
|
|
40841
|
-
IcosahedronGeometry: IcosahedronGeometry,
|
|
40842
|
-
LatheGeometry: LatheGeometry,
|
|
40843
|
-
OctahedronGeometry: OctahedronGeometry,
|
|
40844
|
-
PlaneGeometry: PlaneGeometry,
|
|
40845
|
-
PolyhedronGeometry: PolyhedronGeometry,
|
|
40846
|
-
RingGeometry: RingGeometry,
|
|
40847
|
-
ShapeGeometry: ShapeGeometry,
|
|
40848
|
-
SphereGeometry: SphereGeometry,
|
|
40849
|
-
TetrahedronGeometry: TetrahedronGeometry,
|
|
40850
|
-
TorusGeometry: TorusGeometry,
|
|
40851
|
-
TorusKnotGeometry: TorusKnotGeometry,
|
|
40852
|
-
TubeGeometry: TubeGeometry,
|
|
40853
|
-
WireframeGeometry: WireframeGeometry
|
|
40854
|
-
});
|
|
40855
|
-
|
|
40838
|
+
}
|
|
40839
|
+
|
|
40840
|
+
var Geometries = /*#__PURE__*/Object.freeze({
|
|
40841
|
+
__proto__: null,
|
|
40842
|
+
BoxGeometry: BoxGeometry,
|
|
40843
|
+
CapsuleGeometry: CapsuleGeometry,
|
|
40844
|
+
CircleGeometry: CircleGeometry,
|
|
40845
|
+
ConeGeometry: ConeGeometry,
|
|
40846
|
+
CylinderGeometry: CylinderGeometry,
|
|
40847
|
+
DodecahedronGeometry: DodecahedronGeometry,
|
|
40848
|
+
EdgesGeometry: EdgesGeometry,
|
|
40849
|
+
ExtrudeGeometry: ExtrudeGeometry,
|
|
40850
|
+
IcosahedronGeometry: IcosahedronGeometry,
|
|
40851
|
+
LatheGeometry: LatheGeometry,
|
|
40852
|
+
OctahedronGeometry: OctahedronGeometry,
|
|
40853
|
+
PlaneGeometry: PlaneGeometry,
|
|
40854
|
+
PolyhedronGeometry: PolyhedronGeometry,
|
|
40855
|
+
RingGeometry: RingGeometry,
|
|
40856
|
+
ShapeGeometry: ShapeGeometry,
|
|
40857
|
+
SphereGeometry: SphereGeometry,
|
|
40858
|
+
TetrahedronGeometry: TetrahedronGeometry,
|
|
40859
|
+
TorusGeometry: TorusGeometry,
|
|
40860
|
+
TorusKnotGeometry: TorusKnotGeometry,
|
|
40861
|
+
TubeGeometry: TubeGeometry,
|
|
40862
|
+
WireframeGeometry: WireframeGeometry
|
|
40863
|
+
});
|
|
40864
|
+
|
|
40856
40865
|
class ShadowMaterial extends Material {
|
|
40857
40866
|
|
|
40858
40867
|
constructor( parameters ) {
|
|
@@ -40884,8 +40893,8 @@ class ShadowMaterial extends Material {
|
|
|
40884
40893
|
|
|
40885
40894
|
}
|
|
40886
40895
|
|
|
40887
|
-
}
|
|
40888
|
-
|
|
40896
|
+
}
|
|
40897
|
+
|
|
40889
40898
|
class RawShaderMaterial extends ShaderMaterial {
|
|
40890
40899
|
|
|
40891
40900
|
constructor( parameters ) {
|
|
@@ -40898,8 +40907,8 @@ class RawShaderMaterial extends ShaderMaterial {
|
|
|
40898
40907
|
|
|
40899
40908
|
}
|
|
40900
40909
|
|
|
40901
|
-
}
|
|
40902
|
-
|
|
40910
|
+
}
|
|
40911
|
+
|
|
40903
40912
|
class MeshStandardMaterial extends Material {
|
|
40904
40913
|
|
|
40905
40914
|
constructor( parameters ) {
|
|
@@ -41018,8 +41027,8 @@ class MeshStandardMaterial extends Material {
|
|
|
41018
41027
|
|
|
41019
41028
|
}
|
|
41020
41029
|
|
|
41021
|
-
}
|
|
41022
|
-
|
|
41030
|
+
}
|
|
41031
|
+
|
|
41023
41032
|
class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
41024
41033
|
|
|
41025
41034
|
constructor( parameters ) {
|
|
@@ -41236,8 +41245,8 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
41236
41245
|
|
|
41237
41246
|
}
|
|
41238
41247
|
|
|
41239
|
-
}
|
|
41240
|
-
|
|
41248
|
+
}
|
|
41249
|
+
|
|
41241
41250
|
class MeshPhongMaterial extends Material {
|
|
41242
41251
|
|
|
41243
41252
|
constructor( parameters ) {
|
|
@@ -41352,8 +41361,8 @@ class MeshPhongMaterial extends Material {
|
|
|
41352
41361
|
|
|
41353
41362
|
}
|
|
41354
41363
|
|
|
41355
|
-
}
|
|
41356
|
-
|
|
41364
|
+
}
|
|
41365
|
+
|
|
41357
41366
|
class MeshToonMaterial extends Material {
|
|
41358
41367
|
|
|
41359
41368
|
constructor( parameters ) {
|
|
@@ -41448,8 +41457,8 @@ class MeshToonMaterial extends Material {
|
|
|
41448
41457
|
|
|
41449
41458
|
}
|
|
41450
41459
|
|
|
41451
|
-
}
|
|
41452
|
-
|
|
41460
|
+
}
|
|
41461
|
+
|
|
41453
41462
|
class MeshNormalMaterial extends Material {
|
|
41454
41463
|
|
|
41455
41464
|
constructor( parameters ) {
|
|
@@ -41504,8 +41513,8 @@ class MeshNormalMaterial extends Material {
|
|
|
41504
41513
|
|
|
41505
41514
|
}
|
|
41506
41515
|
|
|
41507
|
-
}
|
|
41508
|
-
|
|
41516
|
+
}
|
|
41517
|
+
|
|
41509
41518
|
class MeshLambertMaterial extends Material {
|
|
41510
41519
|
|
|
41511
41520
|
constructor( parameters ) {
|
|
@@ -41616,8 +41625,8 @@ class MeshLambertMaterial extends Material {
|
|
|
41616
41625
|
|
|
41617
41626
|
}
|
|
41618
41627
|
|
|
41619
|
-
}
|
|
41620
|
-
|
|
41628
|
+
}
|
|
41629
|
+
|
|
41621
41630
|
class MeshMatcapMaterial extends Material {
|
|
41622
41631
|
|
|
41623
41632
|
constructor( parameters ) {
|
|
@@ -41691,8 +41700,8 @@ class MeshMatcapMaterial extends Material {
|
|
|
41691
41700
|
|
|
41692
41701
|
}
|
|
41693
41702
|
|
|
41694
|
-
}
|
|
41695
|
-
|
|
41703
|
+
}
|
|
41704
|
+
|
|
41696
41705
|
class LineDashedMaterial extends LineBasicMaterial {
|
|
41697
41706
|
|
|
41698
41707
|
constructor( parameters ) {
|
|
@@ -41723,8 +41732,8 @@ class LineDashedMaterial extends LineBasicMaterial {
|
|
|
41723
41732
|
|
|
41724
41733
|
}
|
|
41725
41734
|
|
|
41726
|
-
}
|
|
41727
|
-
|
|
41735
|
+
}
|
|
41736
|
+
|
|
41728
41737
|
// converts an array to a specific type
|
|
41729
41738
|
function convertArray( array, type, forceClone ) {
|
|
41730
41739
|
|
|
@@ -42066,8 +42075,8 @@ const AnimationUtils = {
|
|
|
42066
42075
|
flattenJSON: flattenJSON,
|
|
42067
42076
|
subclip: subclip,
|
|
42068
42077
|
makeClipAdditive: makeClipAdditive
|
|
42069
|
-
};
|
|
42070
|
-
|
|
42078
|
+
};
|
|
42079
|
+
|
|
42071
42080
|
/**
|
|
42072
42081
|
* Abstract base class of interpolants over parametric samples.
|
|
42073
42082
|
*
|
|
@@ -42306,8 +42315,8 @@ class Interpolant {
|
|
|
42306
42315
|
|
|
42307
42316
|
}
|
|
42308
42317
|
|
|
42309
|
-
}
|
|
42310
|
-
|
|
42318
|
+
}
|
|
42319
|
+
|
|
42311
42320
|
/**
|
|
42312
42321
|
* Fast and simple cubic spline interpolant.
|
|
42313
42322
|
*
|
|
@@ -42452,8 +42461,8 @@ class CubicInterpolant extends Interpolant {
|
|
|
42452
42461
|
|
|
42453
42462
|
}
|
|
42454
42463
|
|
|
42455
|
-
}
|
|
42456
|
-
|
|
42464
|
+
}
|
|
42465
|
+
|
|
42457
42466
|
class LinearInterpolant extends Interpolant {
|
|
42458
42467
|
|
|
42459
42468
|
constructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {
|
|
@@ -42486,8 +42495,8 @@ class LinearInterpolant extends Interpolant {
|
|
|
42486
42495
|
|
|
42487
42496
|
}
|
|
42488
42497
|
|
|
42489
|
-
}
|
|
42490
|
-
|
|
42498
|
+
}
|
|
42499
|
+
|
|
42491
42500
|
/**
|
|
42492
42501
|
*
|
|
42493
42502
|
* Interpolant that evaluates to the sample value at the position preceding
|
|
@@ -42508,8 +42517,8 @@ class DiscreteInterpolant extends Interpolant {
|
|
|
42508
42517
|
|
|
42509
42518
|
}
|
|
42510
42519
|
|
|
42511
|
-
}
|
|
42512
|
-
|
|
42520
|
+
}
|
|
42521
|
+
|
|
42513
42522
|
class KeyframeTrack {
|
|
42514
42523
|
|
|
42515
42524
|
constructor( name, times, values, interpolation ) {
|
|
@@ -42959,8 +42968,8 @@ class KeyframeTrack {
|
|
|
42959
42968
|
|
|
42960
42969
|
KeyframeTrack.prototype.TimeBufferType = Float32Array;
|
|
42961
42970
|
KeyframeTrack.prototype.ValueBufferType = Float32Array;
|
|
42962
|
-
KeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;
|
|
42963
|
-
|
|
42971
|
+
KeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;
|
|
42972
|
+
|
|
42964
42973
|
/**
|
|
42965
42974
|
* A Track of Boolean keyframe values.
|
|
42966
42975
|
*/
|
|
@@ -42970,22 +42979,22 @@ BooleanKeyframeTrack.prototype.ValueTypeName = 'bool';
|
|
|
42970
42979
|
BooleanKeyframeTrack.prototype.ValueBufferType = Array;
|
|
42971
42980
|
BooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;
|
|
42972
42981
|
BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;
|
|
42973
|
-
BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;
|
|
42974
|
-
|
|
42982
|
+
BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;
|
|
42983
|
+
|
|
42975
42984
|
/**
|
|
42976
42985
|
* A Track of keyframe values that represent color.
|
|
42977
42986
|
*/
|
|
42978
42987
|
class ColorKeyframeTrack extends KeyframeTrack {}
|
|
42979
42988
|
|
|
42980
|
-
ColorKeyframeTrack.prototype.ValueTypeName = 'color';
|
|
42981
|
-
|
|
42989
|
+
ColorKeyframeTrack.prototype.ValueTypeName = 'color';
|
|
42990
|
+
|
|
42982
42991
|
/**
|
|
42983
42992
|
* A Track of numeric keyframe values.
|
|
42984
42993
|
*/
|
|
42985
42994
|
class NumberKeyframeTrack extends KeyframeTrack {}
|
|
42986
42995
|
|
|
42987
|
-
NumberKeyframeTrack.prototype.ValueTypeName = 'number';
|
|
42988
|
-
|
|
42996
|
+
NumberKeyframeTrack.prototype.ValueTypeName = 'number';
|
|
42997
|
+
|
|
42989
42998
|
/**
|
|
42990
42999
|
* Spherical linear unit quaternion interpolant.
|
|
42991
43000
|
*/
|
|
@@ -43018,8 +43027,8 @@ class QuaternionLinearInterpolant extends Interpolant {
|
|
|
43018
43027
|
|
|
43019
43028
|
}
|
|
43020
43029
|
|
|
43021
|
-
}
|
|
43022
|
-
|
|
43030
|
+
}
|
|
43031
|
+
|
|
43023
43032
|
/**
|
|
43024
43033
|
* A Track of quaternion keyframe values.
|
|
43025
43034
|
*/
|
|
@@ -43036,8 +43045,8 @@ class QuaternionKeyframeTrack extends KeyframeTrack {
|
|
|
43036
43045
|
QuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';
|
|
43037
43046
|
// ValueBufferType is inherited
|
|
43038
43047
|
QuaternionKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;
|
|
43039
|
-
QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;
|
|
43040
|
-
|
|
43048
|
+
QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;
|
|
43049
|
+
|
|
43041
43050
|
/**
|
|
43042
43051
|
* A Track that interpolates Strings
|
|
43043
43052
|
*/
|
|
@@ -43047,15 +43056,15 @@ StringKeyframeTrack.prototype.ValueTypeName = 'string';
|
|
|
43047
43056
|
StringKeyframeTrack.prototype.ValueBufferType = Array;
|
|
43048
43057
|
StringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;
|
|
43049
43058
|
StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;
|
|
43050
|
-
StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;
|
|
43051
|
-
|
|
43059
|
+
StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;
|
|
43060
|
+
|
|
43052
43061
|
/**
|
|
43053
43062
|
* A Track of vectored keyframe values.
|
|
43054
43063
|
*/
|
|
43055
43064
|
class VectorKeyframeTrack extends KeyframeTrack {}
|
|
43056
43065
|
|
|
43057
|
-
VectorKeyframeTrack.prototype.ValueTypeName = 'vector';
|
|
43058
|
-
|
|
43066
|
+
VectorKeyframeTrack.prototype.ValueTypeName = 'vector';
|
|
43067
|
+
|
|
43059
43068
|
class AnimationClip {
|
|
43060
43069
|
|
|
43061
43070
|
constructor( name, duration = - 1, tracks, blendMode = NormalAnimationBlendMode ) {
|
|
@@ -43515,8 +43524,8 @@ function parseKeyframeTrack( json ) {
|
|
|
43515
43524
|
|
|
43516
43525
|
}
|
|
43517
43526
|
|
|
43518
|
-
}
|
|
43519
|
-
|
|
43527
|
+
}
|
|
43528
|
+
|
|
43520
43529
|
const Cache = {
|
|
43521
43530
|
|
|
43522
43531
|
enabled: false,
|
|
@@ -43555,8 +43564,8 @@ const Cache = {
|
|
|
43555
43564
|
|
|
43556
43565
|
}
|
|
43557
43566
|
|
|
43558
|
-
};
|
|
43559
|
-
|
|
43567
|
+
};
|
|
43568
|
+
|
|
43560
43569
|
class LoadingManager {
|
|
43561
43570
|
|
|
43562
43571
|
constructor( onLoad, onProgress, onError ) {
|
|
@@ -43696,8 +43705,8 @@ class LoadingManager {
|
|
|
43696
43705
|
|
|
43697
43706
|
}
|
|
43698
43707
|
|
|
43699
|
-
const DefaultLoadingManager = /*@__PURE__*/ new LoadingManager();
|
|
43700
|
-
|
|
43708
|
+
const DefaultLoadingManager = /*@__PURE__*/ new LoadingManager();
|
|
43709
|
+
|
|
43701
43710
|
class Loader {
|
|
43702
43711
|
|
|
43703
43712
|
constructor( manager ) {
|
|
@@ -43765,8 +43774,8 @@ class Loader {
|
|
|
43765
43774
|
|
|
43766
43775
|
}
|
|
43767
43776
|
|
|
43768
|
-
Loader.DEFAULT_MATERIAL_NAME = '__DEFAULT';
|
|
43769
|
-
|
|
43777
|
+
Loader.DEFAULT_MATERIAL_NAME = '__DEFAULT';
|
|
43778
|
+
|
|
43770
43779
|
const loading = {};
|
|
43771
43780
|
|
|
43772
43781
|
class HttpError extends Error {
|
|
@@ -44044,8 +44053,8 @@ class FileLoader extends Loader {
|
|
|
44044
44053
|
|
|
44045
44054
|
}
|
|
44046
44055
|
|
|
44047
|
-
}
|
|
44048
|
-
|
|
44056
|
+
}
|
|
44057
|
+
|
|
44049
44058
|
class AnimationLoader extends Loader {
|
|
44050
44059
|
|
|
44051
44060
|
constructor( manager ) {
|
|
@@ -44104,8 +44113,8 @@ class AnimationLoader extends Loader {
|
|
|
44104
44113
|
|
|
44105
44114
|
}
|
|
44106
44115
|
|
|
44107
|
-
}
|
|
44108
|
-
|
|
44116
|
+
}
|
|
44117
|
+
|
|
44109
44118
|
/**
|
|
44110
44119
|
* Abstract Base class to block based textures loader (dds, pvr, ...)
|
|
44111
44120
|
*
|
|
@@ -44231,8 +44240,8 @@ class CompressedTextureLoader extends Loader {
|
|
|
44231
44240
|
|
|
44232
44241
|
}
|
|
44233
44242
|
|
|
44234
|
-
}
|
|
44235
|
-
|
|
44243
|
+
}
|
|
44244
|
+
|
|
44236
44245
|
class ImageLoader extends Loader {
|
|
44237
44246
|
|
|
44238
44247
|
constructor( manager ) {
|
|
@@ -44316,8 +44325,8 @@ class ImageLoader extends Loader {
|
|
|
44316
44325
|
|
|
44317
44326
|
}
|
|
44318
44327
|
|
|
44319
|
-
}
|
|
44320
|
-
|
|
44328
|
+
}
|
|
44329
|
+
|
|
44321
44330
|
class CubeTextureLoader extends Loader {
|
|
44322
44331
|
|
|
44323
44332
|
constructor( manager ) {
|
|
@@ -44367,8 +44376,8 @@ class CubeTextureLoader extends Loader {
|
|
|
44367
44376
|
|
|
44368
44377
|
}
|
|
44369
44378
|
|
|
44370
|
-
}
|
|
44371
|
-
|
|
44379
|
+
}
|
|
44380
|
+
|
|
44372
44381
|
/**
|
|
44373
44382
|
* Abstract Base class to load generic binary textures formats (rgbe, hdr, ...)
|
|
44374
44383
|
*
|
|
@@ -44491,8 +44500,8 @@ class DataTextureLoader extends Loader {
|
|
|
44491
44500
|
|
|
44492
44501
|
}
|
|
44493
44502
|
|
|
44494
|
-
}
|
|
44495
|
-
|
|
44503
|
+
}
|
|
44504
|
+
|
|
44496
44505
|
class TextureLoader extends Loader {
|
|
44497
44506
|
|
|
44498
44507
|
constructor( manager ) {
|
|
@@ -44526,8 +44535,8 @@ class TextureLoader extends Loader {
|
|
|
44526
44535
|
|
|
44527
44536
|
}
|
|
44528
44537
|
|
|
44529
|
-
}
|
|
44530
|
-
|
|
44538
|
+
}
|
|
44539
|
+
|
|
44531
44540
|
class Light extends Object3D {
|
|
44532
44541
|
|
|
44533
44542
|
constructor( color, intensity = 1 ) {
|
|
@@ -44580,8 +44589,8 @@ class Light extends Object3D {
|
|
|
44580
44589
|
|
|
44581
44590
|
}
|
|
44582
44591
|
|
|
44583
|
-
}
|
|
44584
|
-
|
|
44592
|
+
}
|
|
44593
|
+
|
|
44585
44594
|
class HemisphereLight extends Light {
|
|
44586
44595
|
|
|
44587
44596
|
constructor( skyColor, groundColor, intensity ) {
|
|
@@ -44609,8 +44618,8 @@ class HemisphereLight extends Light {
|
|
|
44609
44618
|
|
|
44610
44619
|
}
|
|
44611
44620
|
|
|
44612
|
-
}
|
|
44613
|
-
|
|
44621
|
+
}
|
|
44622
|
+
|
|
44614
44623
|
const _projScreenMatrix$1 = /*@__PURE__*/ new Matrix4();
|
|
44615
44624
|
const _lightPositionWorld$1 = /*@__PURE__*/ new Vector3();
|
|
44616
44625
|
const _lookTarget$1 = /*@__PURE__*/ new Vector3();
|
|
@@ -44749,8 +44758,8 @@ class LightShadow {
|
|
|
44749
44758
|
|
|
44750
44759
|
}
|
|
44751
44760
|
|
|
44752
|
-
}
|
|
44753
|
-
|
|
44761
|
+
}
|
|
44762
|
+
|
|
44754
44763
|
class SpotLightShadow extends LightShadow {
|
|
44755
44764
|
|
|
44756
44765
|
constructor() {
|
|
@@ -44794,8 +44803,8 @@ class SpotLightShadow extends LightShadow {
|
|
|
44794
44803
|
|
|
44795
44804
|
}
|
|
44796
44805
|
|
|
44797
|
-
}
|
|
44798
|
-
|
|
44806
|
+
}
|
|
44807
|
+
|
|
44799
44808
|
class SpotLight extends Light {
|
|
44800
44809
|
|
|
44801
44810
|
constructor( color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 2 ) {
|
|
@@ -44860,8 +44869,8 @@ class SpotLight extends Light {
|
|
|
44860
44869
|
|
|
44861
44870
|
}
|
|
44862
44871
|
|
|
44863
|
-
}
|
|
44864
|
-
|
|
44872
|
+
}
|
|
44873
|
+
|
|
44865
44874
|
const _projScreenMatrix = /*@__PURE__*/ new Matrix4();
|
|
44866
44875
|
const _lightPositionWorld = /*@__PURE__*/ new Vector3();
|
|
44867
44876
|
const _lookTarget = /*@__PURE__*/ new Vector3();
|
|
@@ -44948,8 +44957,8 @@ class PointLightShadow extends LightShadow {
|
|
|
44948
44957
|
|
|
44949
44958
|
}
|
|
44950
44959
|
|
|
44951
|
-
}
|
|
44952
|
-
|
|
44960
|
+
}
|
|
44961
|
+
|
|
44953
44962
|
class PointLight extends Light {
|
|
44954
44963
|
|
|
44955
44964
|
constructor( color, intensity, distance = 0, decay = 2 ) {
|
|
@@ -45001,8 +45010,8 @@ class PointLight extends Light {
|
|
|
45001
45010
|
|
|
45002
45011
|
}
|
|
45003
45012
|
|
|
45004
|
-
}
|
|
45005
|
-
|
|
45013
|
+
}
|
|
45014
|
+
|
|
45006
45015
|
class DirectionalLightShadow extends LightShadow {
|
|
45007
45016
|
|
|
45008
45017
|
constructor() {
|
|
@@ -45013,8 +45022,8 @@ class DirectionalLightShadow extends LightShadow {
|
|
|
45013
45022
|
|
|
45014
45023
|
}
|
|
45015
45024
|
|
|
45016
|
-
}
|
|
45017
|
-
|
|
45025
|
+
}
|
|
45026
|
+
|
|
45018
45027
|
class DirectionalLight extends Light {
|
|
45019
45028
|
|
|
45020
45029
|
constructor( color, intensity ) {
|
|
@@ -45051,8 +45060,8 @@ class DirectionalLight extends Light {
|
|
|
45051
45060
|
|
|
45052
45061
|
}
|
|
45053
45062
|
|
|
45054
|
-
}
|
|
45055
|
-
|
|
45063
|
+
}
|
|
45064
|
+
|
|
45056
45065
|
class AmbientLight extends Light {
|
|
45057
45066
|
|
|
45058
45067
|
constructor( color, intensity ) {
|
|
@@ -45065,8 +45074,8 @@ class AmbientLight extends Light {
|
|
|
45065
45074
|
|
|
45066
45075
|
}
|
|
45067
45076
|
|
|
45068
|
-
}
|
|
45069
|
-
|
|
45077
|
+
}
|
|
45078
|
+
|
|
45070
45079
|
class RectAreaLight extends Light {
|
|
45071
45080
|
|
|
45072
45081
|
constructor( color, intensity, width = 10, height = 10 ) {
|
|
@@ -45118,8 +45127,8 @@ class RectAreaLight extends Light {
|
|
|
45118
45127
|
|
|
45119
45128
|
}
|
|
45120
45129
|
|
|
45121
|
-
}
|
|
45122
|
-
|
|
45130
|
+
}
|
|
45131
|
+
|
|
45123
45132
|
/**
|
|
45124
45133
|
* Primary reference:
|
|
45125
45134
|
* https://graphics.stanford.edu/papers/envmap/envmap.pdf
|
|
@@ -45358,8 +45367,8 @@ class SphericalHarmonics3 {
|
|
|
45358
45367
|
|
|
45359
45368
|
}
|
|
45360
45369
|
|
|
45361
|
-
}
|
|
45362
|
-
|
|
45370
|
+
}
|
|
45371
|
+
|
|
45363
45372
|
class LightProbe extends Light {
|
|
45364
45373
|
|
|
45365
45374
|
constructor( sh = new SphericalHarmonics3(), intensity = 1 ) {
|
|
@@ -45401,8 +45410,8 @@ class LightProbe extends Light {
|
|
|
45401
45410
|
|
|
45402
45411
|
}
|
|
45403
45412
|
|
|
45404
|
-
}
|
|
45405
|
-
|
|
45413
|
+
}
|
|
45414
|
+
|
|
45406
45415
|
class MaterialLoader extends Loader {
|
|
45407
45416
|
|
|
45408
45417
|
constructor( manager ) {
|
|
@@ -45744,8 +45753,8 @@ class MaterialLoader extends Loader {
|
|
|
45744
45753
|
|
|
45745
45754
|
}
|
|
45746
45755
|
|
|
45747
|
-
}
|
|
45748
|
-
|
|
45756
|
+
}
|
|
45757
|
+
|
|
45749
45758
|
class LoaderUtils {
|
|
45750
45759
|
|
|
45751
45760
|
static decodeText( array ) {
|
|
@@ -45818,8 +45827,8 @@ class LoaderUtils {
|
|
|
45818
45827
|
|
|
45819
45828
|
}
|
|
45820
45829
|
|
|
45821
|
-
}
|
|
45822
|
-
|
|
45830
|
+
}
|
|
45831
|
+
|
|
45823
45832
|
class InstancedBufferGeometry extends BufferGeometry {
|
|
45824
45833
|
|
|
45825
45834
|
constructor() {
|
|
@@ -45855,8 +45864,8 @@ class InstancedBufferGeometry extends BufferGeometry {
|
|
|
45855
45864
|
|
|
45856
45865
|
}
|
|
45857
45866
|
|
|
45858
|
-
}
|
|
45859
|
-
|
|
45867
|
+
}
|
|
45868
|
+
|
|
45860
45869
|
class BufferGeometryLoader extends Loader {
|
|
45861
45870
|
|
|
45862
45871
|
constructor( manager ) {
|
|
@@ -46059,8 +46068,8 @@ class BufferGeometryLoader extends Loader {
|
|
|
46059
46068
|
|
|
46060
46069
|
}
|
|
46061
46070
|
|
|
46062
|
-
}
|
|
46063
|
-
|
|
46071
|
+
}
|
|
46072
|
+
|
|
46064
46073
|
class ObjectLoader extends Loader {
|
|
46065
46074
|
|
|
46066
46075
|
constructor( manager ) {
|
|
@@ -47142,8 +47151,8 @@ const TEXTURE_FILTER = {
|
|
|
47142
47151
|
LinearFilter: LinearFilter,
|
|
47143
47152
|
LinearMipmapNearestFilter: LinearMipmapNearestFilter,
|
|
47144
47153
|
LinearMipmapLinearFilter: LinearMipmapLinearFilter
|
|
47145
|
-
};
|
|
47146
|
-
|
|
47154
|
+
};
|
|
47155
|
+
|
|
47147
47156
|
class ImageBitmapLoader extends Loader {
|
|
47148
47157
|
|
|
47149
47158
|
constructor( manager ) {
|
|
@@ -47261,8 +47270,8 @@ class ImageBitmapLoader extends Loader {
|
|
|
47261
47270
|
|
|
47262
47271
|
}
|
|
47263
47272
|
|
|
47264
|
-
}
|
|
47265
|
-
|
|
47273
|
+
}
|
|
47274
|
+
|
|
47266
47275
|
let _context;
|
|
47267
47276
|
|
|
47268
47277
|
class AudioContext {
|
|
@@ -47285,8 +47294,8 @@ class AudioContext {
|
|
|
47285
47294
|
|
|
47286
47295
|
}
|
|
47287
47296
|
|
|
47288
|
-
}
|
|
47289
|
-
|
|
47297
|
+
}
|
|
47298
|
+
|
|
47290
47299
|
class AudioLoader extends Loader {
|
|
47291
47300
|
|
|
47292
47301
|
constructor( manager ) {
|
|
@@ -47345,8 +47354,8 @@ class AudioLoader extends Loader {
|
|
|
47345
47354
|
|
|
47346
47355
|
}
|
|
47347
47356
|
|
|
47348
|
-
}
|
|
47349
|
-
|
|
47357
|
+
}
|
|
47358
|
+
|
|
47350
47359
|
const _eyeRight = /*@__PURE__*/ new Matrix4();
|
|
47351
47360
|
const _eyeLeft = /*@__PURE__*/ new Matrix4();
|
|
47352
47361
|
const _projectionMatrix = /*@__PURE__*/ new Matrix4();
|
|
@@ -47440,8 +47449,8 @@ class StereoCamera {
|
|
|
47440
47449
|
|
|
47441
47450
|
}
|
|
47442
47451
|
|
|
47443
|
-
}
|
|
47444
|
-
|
|
47452
|
+
}
|
|
47453
|
+
|
|
47445
47454
|
class Clock {
|
|
47446
47455
|
|
|
47447
47456
|
constructor( autoStart = true ) {
|
|
@@ -47513,8 +47522,8 @@ function now() {
|
|
|
47513
47522
|
|
|
47514
47523
|
return ( typeof performance === 'undefined' ? Date : performance ).now(); // see #10732
|
|
47515
47524
|
|
|
47516
|
-
}
|
|
47517
|
-
|
|
47525
|
+
}
|
|
47526
|
+
|
|
47518
47527
|
const _position$1 = /*@__PURE__*/ new Vector3();
|
|
47519
47528
|
const _quaternion$1 = /*@__PURE__*/ new Quaternion();
|
|
47520
47529
|
const _scale$1 = /*@__PURE__*/ new Vector3();
|
|
@@ -47646,8 +47655,8 @@ class AudioListener extends Object3D {
|
|
|
47646
47655
|
|
|
47647
47656
|
}
|
|
47648
47657
|
|
|
47649
|
-
}
|
|
47650
|
-
|
|
47658
|
+
}
|
|
47659
|
+
|
|
47651
47660
|
class Audio extends Object3D {
|
|
47652
47661
|
|
|
47653
47662
|
constructor( listener ) {
|
|
@@ -48043,8 +48052,8 @@ class Audio extends Object3D {
|
|
|
48043
48052
|
|
|
48044
48053
|
}
|
|
48045
48054
|
|
|
48046
|
-
}
|
|
48047
|
-
|
|
48055
|
+
}
|
|
48056
|
+
|
|
48048
48057
|
const _position = /*@__PURE__*/ new Vector3();
|
|
48049
48058
|
const _quaternion = /*@__PURE__*/ new Quaternion();
|
|
48050
48059
|
const _scale = /*@__PURE__*/ new Vector3();
|
|
@@ -48184,8 +48193,8 @@ class PositionalAudio extends Audio {
|
|
|
48184
48193
|
|
|
48185
48194
|
}
|
|
48186
48195
|
|
|
48187
|
-
}
|
|
48188
|
-
|
|
48196
|
+
}
|
|
48197
|
+
|
|
48189
48198
|
class AudioAnalyser {
|
|
48190
48199
|
|
|
48191
48200
|
constructor( audio, fftSize = 2048 ) {
|
|
@@ -48223,8 +48232,8 @@ class AudioAnalyser {
|
|
|
48223
48232
|
|
|
48224
48233
|
}
|
|
48225
48234
|
|
|
48226
|
-
}
|
|
48227
|
-
|
|
48235
|
+
}
|
|
48236
|
+
|
|
48228
48237
|
class PropertyMixer {
|
|
48229
48238
|
|
|
48230
48239
|
constructor( binding, typeName, valueSize ) {
|
|
@@ -48537,8 +48546,8 @@ class PropertyMixer {
|
|
|
48537
48546
|
|
|
48538
48547
|
}
|
|
48539
48548
|
|
|
48540
|
-
}
|
|
48541
|
-
|
|
48549
|
+
}
|
|
48550
|
+
|
|
48542
48551
|
// Characters [].:/ are reserved for track binding syntax.
|
|
48543
48552
|
const _RESERVED_CHARS_RE = '\\[\\]\\.:\\/';
|
|
48544
48553
|
const _reservedRe = new RegExp( '[' + _RESERVED_CHARS_RE + ']', 'g' );
|
|
@@ -49270,8 +49279,8 @@ PropertyBinding.prototype.SetterByBindingTypeAndVersioning = [
|
|
|
49270
49279
|
|
|
49271
49280
|
]
|
|
49272
49281
|
|
|
49273
|
-
];
|
|
49274
|
-
|
|
49282
|
+
];
|
|
49283
|
+
|
|
49275
49284
|
/**
|
|
49276
49285
|
*
|
|
49277
49286
|
* A group of objects that receives a shared animation state.
|
|
@@ -49653,8 +49662,8 @@ class AnimationObjectGroup {
|
|
|
49653
49662
|
|
|
49654
49663
|
}
|
|
49655
49664
|
|
|
49656
|
-
}
|
|
49657
|
-
|
|
49665
|
+
}
|
|
49666
|
+
|
|
49658
49667
|
class AnimationAction {
|
|
49659
49668
|
|
|
49660
49669
|
constructor( mixer, clip, localRoot = null, blendMode = clip.blendMode ) {
|
|
@@ -50348,8 +50357,8 @@ class AnimationAction {
|
|
|
50348
50357
|
|
|
50349
50358
|
}
|
|
50350
50359
|
|
|
50351
|
-
}
|
|
50352
|
-
|
|
50360
|
+
}
|
|
50361
|
+
|
|
50353
50362
|
const _controlInterpolantsResultBuffer = new Float32Array( 1 );
|
|
50354
50363
|
|
|
50355
50364
|
|
|
@@ -51108,8 +51117,8 @@ class AnimationMixer extends EventDispatcher {
|
|
|
51108
51117
|
|
|
51109
51118
|
}
|
|
51110
51119
|
|
|
51111
|
-
}
|
|
51112
|
-
|
|
51120
|
+
}
|
|
51121
|
+
|
|
51113
51122
|
class Uniform {
|
|
51114
51123
|
|
|
51115
51124
|
constructor( value ) {
|
|
@@ -51124,8 +51133,8 @@ class Uniform {
|
|
|
51124
51133
|
|
|
51125
51134
|
}
|
|
51126
51135
|
|
|
51127
|
-
}
|
|
51128
|
-
|
|
51136
|
+
}
|
|
51137
|
+
|
|
51129
51138
|
let _id = 0;
|
|
51130
51139
|
|
|
51131
51140
|
class UniformsGroup extends EventDispatcher {
|
|
@@ -51218,8 +51227,8 @@ class UniformsGroup extends EventDispatcher {
|
|
|
51218
51227
|
|
|
51219
51228
|
}
|
|
51220
51229
|
|
|
51221
|
-
}
|
|
51222
|
-
|
|
51230
|
+
}
|
|
51231
|
+
|
|
51223
51232
|
class InstancedInterleavedBuffer extends InterleavedBuffer {
|
|
51224
51233
|
|
|
51225
51234
|
constructor( array, stride, meshPerAttribute = 1 ) {
|
|
@@ -51263,8 +51272,8 @@ class InstancedInterleavedBuffer extends InterleavedBuffer {
|
|
|
51263
51272
|
|
|
51264
51273
|
}
|
|
51265
51274
|
|
|
51266
|
-
}
|
|
51267
|
-
|
|
51275
|
+
}
|
|
51276
|
+
|
|
51268
51277
|
class GLBufferAttribute {
|
|
51269
51278
|
|
|
51270
51279
|
constructor( buffer, type, itemSize, elementSize, count ) {
|
|
@@ -51322,8 +51331,8 @@ class GLBufferAttribute {
|
|
|
51322
51331
|
|
|
51323
51332
|
}
|
|
51324
51333
|
|
|
51325
|
-
}
|
|
51326
|
-
|
|
51334
|
+
}
|
|
51335
|
+
|
|
51327
51336
|
const _matrix = /*@__PURE__*/ new Matrix4();
|
|
51328
51337
|
|
|
51329
51338
|
class Raycaster {
|
|
@@ -51441,8 +51450,8 @@ function intersect( object, raycaster, intersects, recursive ) {
|
|
|
51441
51450
|
|
|
51442
51451
|
}
|
|
51443
51452
|
|
|
51444
|
-
}
|
|
51445
|
-
|
|
51453
|
+
}
|
|
51454
|
+
|
|
51446
51455
|
/**
|
|
51447
51456
|
* Ref: https://en.wikipedia.org/wiki/Spherical_coordinate_system
|
|
51448
51457
|
*
|
|
@@ -51525,8 +51534,8 @@ class Spherical {
|
|
|
51525
51534
|
|
|
51526
51535
|
}
|
|
51527
51536
|
|
|
51528
|
-
}
|
|
51529
|
-
|
|
51537
|
+
}
|
|
51538
|
+
|
|
51530
51539
|
/**
|
|
51531
51540
|
* Ref: https://en.wikipedia.org/wiki/Cylindrical_coordinate_system
|
|
51532
51541
|
*/
|
|
@@ -51585,8 +51594,8 @@ class Cylindrical {
|
|
|
51585
51594
|
|
|
51586
51595
|
}
|
|
51587
51596
|
|
|
51588
|
-
}
|
|
51589
|
-
|
|
51597
|
+
}
|
|
51598
|
+
|
|
51590
51599
|
const _vector$4 = /*@__PURE__*/ new Vector2();
|
|
51591
51600
|
|
|
51592
51601
|
class Box2 {
|
|
@@ -51786,8 +51795,8 @@ class Box2 {
|
|
|
51786
51795
|
|
|
51787
51796
|
}
|
|
51788
51797
|
|
|
51789
|
-
}
|
|
51790
|
-
|
|
51798
|
+
}
|
|
51799
|
+
|
|
51791
51800
|
const _startP = /*@__PURE__*/ new Vector3();
|
|
51792
51801
|
const _startEnd = /*@__PURE__*/ new Vector3();
|
|
51793
51802
|
|
|
@@ -51897,8 +51906,8 @@ class Line3 {
|
|
|
51897
51906
|
|
|
51898
51907
|
}
|
|
51899
51908
|
|
|
51900
|
-
}
|
|
51901
|
-
|
|
51909
|
+
}
|
|
51910
|
+
|
|
51902
51911
|
const _vector$3 = /*@__PURE__*/ new Vector3();
|
|
51903
51912
|
|
|
51904
51913
|
class SpotLightHelper extends Object3D {
|
|
@@ -51999,8 +52008,8 @@ class SpotLightHelper extends Object3D {
|
|
|
51999
52008
|
|
|
52000
52009
|
}
|
|
52001
52010
|
|
|
52002
|
-
}
|
|
52003
|
-
|
|
52011
|
+
}
|
|
52012
|
+
|
|
52004
52013
|
const _vector$2 = /*@__PURE__*/ new Vector3();
|
|
52005
52014
|
const _boneMatrix = /*@__PURE__*/ new Matrix4();
|
|
52006
52015
|
const _matrixWorldInv = /*@__PURE__*/ new Matrix4();
|
|
@@ -52117,8 +52126,8 @@ function getBoneList( object ) {
|
|
|
52117
52126
|
|
|
52118
52127
|
return boneList;
|
|
52119
52128
|
|
|
52120
|
-
}
|
|
52121
|
-
|
|
52129
|
+
}
|
|
52130
|
+
|
|
52122
52131
|
class PointLightHelper extends Mesh {
|
|
52123
52132
|
|
|
52124
52133
|
constructor( light, sphereSize, color ) {
|
|
@@ -52203,8 +52212,8 @@ class PointLightHelper extends Mesh {
|
|
|
52203
52212
|
|
|
52204
52213
|
}
|
|
52205
52214
|
|
|
52206
|
-
}
|
|
52207
|
-
|
|
52215
|
+
}
|
|
52216
|
+
|
|
52208
52217
|
const _vector$1 = /*@__PURE__*/ new Vector3();
|
|
52209
52218
|
const _color1 = /*@__PURE__*/ new Color();
|
|
52210
52219
|
const _color2 = /*@__PURE__*/ new Color();
|
|
@@ -52281,8 +52290,8 @@ class HemisphereLightHelper extends Object3D {
|
|
|
52281
52290
|
|
|
52282
52291
|
}
|
|
52283
52292
|
|
|
52284
|
-
}
|
|
52285
|
-
|
|
52293
|
+
}
|
|
52294
|
+
|
|
52286
52295
|
class GridHelper extends LineSegments {
|
|
52287
52296
|
|
|
52288
52297
|
constructor( size = 10, divisions = 10, color1 = 0x444444, color2 = 0x888888 ) {
|
|
@@ -52329,8 +52338,8 @@ class GridHelper extends LineSegments {
|
|
|
52329
52338
|
|
|
52330
52339
|
}
|
|
52331
52340
|
|
|
52332
|
-
}
|
|
52333
|
-
|
|
52341
|
+
}
|
|
52342
|
+
|
|
52334
52343
|
class PolarGridHelper extends LineSegments {
|
|
52335
52344
|
|
|
52336
52345
|
constructor( radius = 10, sectors = 16, rings = 8, divisions = 64, color1 = 0x444444, color2 = 0x888888 ) {
|
|
@@ -52417,8 +52426,8 @@ class PolarGridHelper extends LineSegments {
|
|
|
52417
52426
|
|
|
52418
52427
|
}
|
|
52419
52428
|
|
|
52420
|
-
}
|
|
52421
|
-
|
|
52429
|
+
}
|
|
52430
|
+
|
|
52422
52431
|
const _v1 = /*@__PURE__*/ new Vector3();
|
|
52423
52432
|
const _v2 = /*@__PURE__*/ new Vector3();
|
|
52424
52433
|
const _v3 = /*@__PURE__*/ new Vector3();
|
|
@@ -52501,8 +52510,8 @@ class DirectionalLightHelper extends Object3D {
|
|
|
52501
52510
|
|
|
52502
52511
|
}
|
|
52503
52512
|
|
|
52504
|
-
}
|
|
52505
|
-
|
|
52513
|
+
}
|
|
52514
|
+
|
|
52506
52515
|
const _vector = /*@__PURE__*/ new Vector3();
|
|
52507
52516
|
const _camera = /*@__PURE__*/ new Camera();
|
|
52508
52517
|
|
|
@@ -52761,8 +52770,8 @@ function setPoint( point, pointMap, geometry, camera, x, y, z ) {
|
|
|
52761
52770
|
|
|
52762
52771
|
}
|
|
52763
52772
|
|
|
52764
|
-
}
|
|
52765
|
-
|
|
52773
|
+
}
|
|
52774
|
+
|
|
52766
52775
|
const _box = /*@__PURE__*/ new Box3();
|
|
52767
52776
|
|
|
52768
52777
|
class BoxHelper extends LineSegments {
|
|
@@ -52866,8 +52875,8 @@ class BoxHelper extends LineSegments {
|
|
|
52866
52875
|
|
|
52867
52876
|
}
|
|
52868
52877
|
|
|
52869
|
-
}
|
|
52870
|
-
|
|
52878
|
+
}
|
|
52879
|
+
|
|
52871
52880
|
class Box3Helper extends LineSegments {
|
|
52872
52881
|
|
|
52873
52882
|
constructor( box, color = 0xffff00 ) {
|
|
@@ -52915,8 +52924,8 @@ class Box3Helper extends LineSegments {
|
|
|
52915
52924
|
|
|
52916
52925
|
}
|
|
52917
52926
|
|
|
52918
|
-
}
|
|
52919
|
-
|
|
52927
|
+
}
|
|
52928
|
+
|
|
52920
52929
|
class PlaneHelper extends Line {
|
|
52921
52930
|
|
|
52922
52931
|
constructor( plane, size = 1, hex = 0xffff00 ) {
|
|
@@ -52970,8 +52979,8 @@ class PlaneHelper extends Line {
|
|
|
52970
52979
|
|
|
52971
52980
|
}
|
|
52972
52981
|
|
|
52973
|
-
}
|
|
52974
|
-
|
|
52982
|
+
}
|
|
52983
|
+
|
|
52975
52984
|
const _axis = /*@__PURE__*/ new Vector3();
|
|
52976
52985
|
let _lineGeometry, _coneGeometry;
|
|
52977
52986
|
|
|
@@ -53072,8 +53081,8 @@ class ArrowHelper extends Object3D {
|
|
|
53072
53081
|
|
|
53073
53082
|
}
|
|
53074
53083
|
|
|
53075
|
-
}
|
|
53076
|
-
|
|
53084
|
+
}
|
|
53085
|
+
|
|
53077
53086
|
class AxesHelper extends LineSegments {
|
|
53078
53087
|
|
|
53079
53088
|
constructor( size = 1 ) {
|
|
@@ -53132,8 +53141,8 @@ class AxesHelper extends LineSegments {
|
|
|
53132
53141
|
|
|
53133
53142
|
}
|
|
53134
53143
|
|
|
53135
|
-
}
|
|
53136
|
-
|
|
53144
|
+
}
|
|
53145
|
+
|
|
53137
53146
|
class ShapePath {
|
|
53138
53147
|
|
|
53139
53148
|
constructor() {
|
|
@@ -53416,8 +53425,8 @@ class ShapePath {
|
|
|
53416
53425
|
|
|
53417
53426
|
}
|
|
53418
53427
|
|
|
53419
|
-
}
|
|
53420
|
-
|
|
53428
|
+
}
|
|
53429
|
+
|
|
53421
53430
|
class WebGLMultipleRenderTargets extends WebGLRenderTarget { // @deprecated, r162
|
|
53422
53431
|
|
|
53423
53432
|
constructor( width = 1, height = 1, count = 1, options = {} ) {
|
|
@@ -53436,8 +53445,8 @@ class WebGLMultipleRenderTargets extends WebGLRenderTarget { // @deprecated, r16
|
|
|
53436
53445
|
|
|
53437
53446
|
}
|
|
53438
53447
|
|
|
53439
|
-
}
|
|
53440
|
-
|
|
53448
|
+
}
|
|
53449
|
+
|
|
53441
53450
|
if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
|
|
53442
53451
|
|
|
53443
53452
|
__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {
|
|
@@ -53458,420 +53467,420 @@ if ( typeof window !== 'undefined' ) {
|
|
|
53458
53467
|
|
|
53459
53468
|
}
|
|
53460
53469
|
|
|
53461
|
-
}
|
|
53462
|
-
|
|
53463
|
-
exports.ACESFilmicToneMapping = ACESFilmicToneMapping;
|
|
53464
|
-
exports.AddEquation = AddEquation;
|
|
53465
|
-
exports.AddOperation = AddOperation;
|
|
53466
|
-
exports.AdditiveAnimationBlendMode = AdditiveAnimationBlendMode;
|
|
53467
|
-
exports.AdditiveBlending = AdditiveBlending;
|
|
53468
|
-
exports.AgXToneMapping = AgXToneMapping;
|
|
53469
|
-
exports.AlphaFormat = AlphaFormat;
|
|
53470
|
-
exports.AlwaysCompare = AlwaysCompare;
|
|
53471
|
-
exports.AlwaysDepth = AlwaysDepth;
|
|
53472
|
-
exports.AlwaysStencilFunc = AlwaysStencilFunc;
|
|
53473
|
-
exports.AmbientLight = AmbientLight;
|
|
53474
|
-
exports.AnimationAction = AnimationAction;
|
|
53475
|
-
exports.AnimationClip = AnimationClip;
|
|
53476
|
-
exports.AnimationLoader = AnimationLoader;
|
|
53477
|
-
exports.AnimationMixer = AnimationMixer;
|
|
53478
|
-
exports.AnimationObjectGroup = AnimationObjectGroup;
|
|
53479
|
-
exports.AnimationUtils = AnimationUtils;
|
|
53480
|
-
exports.ArcCurve = ArcCurve;
|
|
53481
|
-
exports.ArrayCamera = ArrayCamera;
|
|
53482
|
-
exports.ArrowHelper = ArrowHelper;
|
|
53483
|
-
exports.AttachedBindMode = AttachedBindMode;
|
|
53484
|
-
exports.Audio = Audio;
|
|
53485
|
-
exports.AudioAnalyser = AudioAnalyser;
|
|
53486
|
-
exports.AudioContext = AudioContext;
|
|
53487
|
-
exports.AudioListener = AudioListener;
|
|
53488
|
-
exports.AudioLoader = AudioLoader;
|
|
53489
|
-
exports.AxesHelper = AxesHelper;
|
|
53490
|
-
exports.BackSide = BackSide;
|
|
53491
|
-
exports.BasicDepthPacking = BasicDepthPacking;
|
|
53492
|
-
exports.BasicShadowMap = BasicShadowMap;
|
|
53493
|
-
exports.BatchedMesh = BatchedMesh;
|
|
53494
|
-
exports.Bone = Bone;
|
|
53495
|
-
exports.BooleanKeyframeTrack = BooleanKeyframeTrack;
|
|
53496
|
-
exports.Box2 = Box2;
|
|
53497
|
-
exports.Box3 = Box3;
|
|
53498
|
-
exports.Box3Helper = Box3Helper;
|
|
53499
|
-
exports.BoxGeometry = BoxGeometry;
|
|
53500
|
-
exports.BoxHelper = BoxHelper;
|
|
53501
|
-
exports.BufferAttribute = BufferAttribute;
|
|
53502
|
-
exports.BufferGeometry = BufferGeometry;
|
|
53503
|
-
exports.BufferGeometryLoader = BufferGeometryLoader;
|
|
53504
|
-
exports.ByteType = ByteType;
|
|
53505
|
-
exports.Cache = Cache;
|
|
53506
|
-
exports.Camera = Camera;
|
|
53507
|
-
exports.CameraHelper = CameraHelper;
|
|
53508
|
-
exports.CanvasTexture = CanvasTexture;
|
|
53509
|
-
exports.CapsuleGeometry = CapsuleGeometry;
|
|
53510
|
-
exports.CatmullRomCurve3 = CatmullRomCurve3;
|
|
53511
|
-
exports.CineonToneMapping = CineonToneMapping;
|
|
53512
|
-
exports.CircleGeometry = CircleGeometry;
|
|
53513
|
-
exports.ClampToEdgeWrapping = ClampToEdgeWrapping;
|
|
53514
|
-
exports.Clock = Clock;
|
|
53515
|
-
exports.Color = Color;
|
|
53516
|
-
exports.ColorKeyframeTrack = ColorKeyframeTrack;
|
|
53517
|
-
exports.ColorManagement = ColorManagement;
|
|
53518
|
-
exports.CompressedArrayTexture = CompressedArrayTexture;
|
|
53519
|
-
exports.CompressedCubeTexture = CompressedCubeTexture;
|
|
53520
|
-
exports.CompressedTexture = CompressedTexture;
|
|
53521
|
-
exports.CompressedTextureLoader = CompressedTextureLoader;
|
|
53522
|
-
exports.ConeGeometry = ConeGeometry;
|
|
53523
|
-
exports.ConstantAlphaFactor = ConstantAlphaFactor;
|
|
53524
|
-
exports.ConstantColorFactor = ConstantColorFactor;
|
|
53525
|
-
exports.CubeCamera = CubeCamera;
|
|
53526
|
-
exports.CubeReflectionMapping = CubeReflectionMapping;
|
|
53527
|
-
exports.CubeRefractionMapping = CubeRefractionMapping;
|
|
53528
|
-
exports.CubeTexture = CubeTexture;
|
|
53529
|
-
exports.CubeTextureLoader = CubeTextureLoader;
|
|
53530
|
-
exports.CubeUVReflectionMapping = CubeUVReflectionMapping;
|
|
53531
|
-
exports.CubicBezierCurve = CubicBezierCurve;
|
|
53532
|
-
exports.CubicBezierCurve3 = CubicBezierCurve3;
|
|
53533
|
-
exports.CubicInterpolant = CubicInterpolant;
|
|
53534
|
-
exports.CullFaceBack = CullFaceBack;
|
|
53535
|
-
exports.CullFaceFront = CullFaceFront;
|
|
53536
|
-
exports.CullFaceFrontBack = CullFaceFrontBack;
|
|
53537
|
-
exports.CullFaceNone = CullFaceNone;
|
|
53538
|
-
exports.Curve = Curve;
|
|
53539
|
-
exports.CurvePath = CurvePath;
|
|
53540
|
-
exports.CustomBlending = CustomBlending;
|
|
53541
|
-
exports.CustomToneMapping = CustomToneMapping;
|
|
53542
|
-
exports.CylinderGeometry = CylinderGeometry;
|
|
53543
|
-
exports.Cylindrical = Cylindrical;
|
|
53544
|
-
exports.Data3DTexture = Data3DTexture;
|
|
53545
|
-
exports.DataArrayTexture = DataArrayTexture;
|
|
53546
|
-
exports.DataTexture = DataTexture;
|
|
53547
|
-
exports.DataTextureLoader = DataTextureLoader;
|
|
53548
|
-
exports.DataUtils = DataUtils;
|
|
53549
|
-
exports.DecrementStencilOp = DecrementStencilOp;
|
|
53550
|
-
exports.DecrementWrapStencilOp = DecrementWrapStencilOp;
|
|
53551
|
-
exports.DefaultLoadingManager = DefaultLoadingManager;
|
|
53552
|
-
exports.DepthFormat = DepthFormat;
|
|
53553
|
-
exports.DepthStencilFormat = DepthStencilFormat;
|
|
53554
|
-
exports.DepthTexture = DepthTexture;
|
|
53555
|
-
exports.DetachedBindMode = DetachedBindMode;
|
|
53556
|
-
exports.DirectionalLight = DirectionalLight;
|
|
53557
|
-
exports.DirectionalLightHelper = DirectionalLightHelper;
|
|
53558
|
-
exports.DiscreteInterpolant = DiscreteInterpolant;
|
|
53559
|
-
exports.DisplayP3ColorSpace = DisplayP3ColorSpace;
|
|
53560
|
-
exports.DodecahedronGeometry = DodecahedronGeometry;
|
|
53561
|
-
exports.DoubleSide = DoubleSide;
|
|
53562
|
-
exports.DstAlphaFactor = DstAlphaFactor;
|
|
53563
|
-
exports.DstColorFactor = DstColorFactor;
|
|
53564
|
-
exports.DynamicCopyUsage = DynamicCopyUsage;
|
|
53565
|
-
exports.DynamicDrawUsage = DynamicDrawUsage;
|
|
53566
|
-
exports.DynamicReadUsage = DynamicReadUsage;
|
|
53567
|
-
exports.EdgesGeometry = EdgesGeometry;
|
|
53568
|
-
exports.EllipseCurve = EllipseCurve;
|
|
53569
|
-
exports.EqualCompare = EqualCompare;
|
|
53570
|
-
exports.EqualDepth = EqualDepth;
|
|
53571
|
-
exports.EqualStencilFunc = EqualStencilFunc;
|
|
53572
|
-
exports.EquirectangularReflectionMapping = EquirectangularReflectionMapping;
|
|
53573
|
-
exports.EquirectangularRefractionMapping = EquirectangularRefractionMapping;
|
|
53574
|
-
exports.Euler = Euler;
|
|
53575
|
-
exports.EventDispatcher = EventDispatcher;
|
|
53576
|
-
exports.ExtrudeGeometry = ExtrudeGeometry;
|
|
53577
|
-
exports.FileLoader = FileLoader;
|
|
53578
|
-
exports.Float16BufferAttribute = Float16BufferAttribute;
|
|
53579
|
-
exports.Float32BufferAttribute = Float32BufferAttribute;
|
|
53580
|
-
exports.FloatType = FloatType;
|
|
53581
|
-
exports.Fog = Fog;
|
|
53582
|
-
exports.FogExp2 = FogExp2;
|
|
53583
|
-
exports.FramebufferTexture = FramebufferTexture;
|
|
53584
|
-
exports.FrontSide = FrontSide;
|
|
53585
|
-
exports.Frustum = Frustum;
|
|
53586
|
-
exports.GLBufferAttribute = GLBufferAttribute;
|
|
53587
|
-
exports.GLSL1 = GLSL1;
|
|
53588
|
-
exports.GLSL3 = GLSL3;
|
|
53589
|
-
exports.GreaterCompare = GreaterCompare;
|
|
53590
|
-
exports.GreaterDepth = GreaterDepth;
|
|
53591
|
-
exports.GreaterEqualCompare = GreaterEqualCompare;
|
|
53592
|
-
exports.GreaterEqualDepth = GreaterEqualDepth;
|
|
53593
|
-
exports.GreaterEqualStencilFunc = GreaterEqualStencilFunc;
|
|
53594
|
-
exports.GreaterStencilFunc = GreaterStencilFunc;
|
|
53595
|
-
exports.GridHelper = GridHelper;
|
|
53596
|
-
exports.Group = Group;
|
|
53597
|
-
exports.HalfFloatType = HalfFloatType;
|
|
53598
|
-
exports.HemisphereLight = HemisphereLight;
|
|
53599
|
-
exports.HemisphereLightHelper = HemisphereLightHelper;
|
|
53600
|
-
exports.IcosahedronGeometry = IcosahedronGeometry;
|
|
53601
|
-
exports.ImageBitmapLoader = ImageBitmapLoader;
|
|
53602
|
-
exports.ImageLoader = ImageLoader;
|
|
53603
|
-
exports.ImageUtils = ImageUtils;
|
|
53604
|
-
exports.IncrementStencilOp = IncrementStencilOp;
|
|
53605
|
-
exports.IncrementWrapStencilOp = IncrementWrapStencilOp;
|
|
53606
|
-
exports.InstancedBufferAttribute = InstancedBufferAttribute;
|
|
53607
|
-
exports.InstancedBufferGeometry = InstancedBufferGeometry;
|
|
53608
|
-
exports.InstancedInterleavedBuffer = InstancedInterleavedBuffer;
|
|
53609
|
-
exports.InstancedMesh = InstancedMesh;
|
|
53610
|
-
exports.Int16BufferAttribute = Int16BufferAttribute;
|
|
53611
|
-
exports.Int32BufferAttribute = Int32BufferAttribute;
|
|
53612
|
-
exports.Int8BufferAttribute = Int8BufferAttribute;
|
|
53613
|
-
exports.IntType = IntType;
|
|
53614
|
-
exports.InterleavedBuffer = InterleavedBuffer;
|
|
53615
|
-
exports.InterleavedBufferAttribute = InterleavedBufferAttribute;
|
|
53616
|
-
exports.Interpolant = Interpolant;
|
|
53617
|
-
exports.InterpolateDiscrete = InterpolateDiscrete;
|
|
53618
|
-
exports.InterpolateLinear = InterpolateLinear;
|
|
53619
|
-
exports.InterpolateSmooth = InterpolateSmooth;
|
|
53620
|
-
exports.InvertStencilOp = InvertStencilOp;
|
|
53621
|
-
exports.KeepStencilOp = KeepStencilOp;
|
|
53622
|
-
exports.KeyframeTrack = KeyframeTrack;
|
|
53623
|
-
exports.LOD = LOD;
|
|
53624
|
-
exports.LatheGeometry = LatheGeometry;
|
|
53625
|
-
exports.Layers = Layers;
|
|
53626
|
-
exports.LessCompare = LessCompare;
|
|
53627
|
-
exports.LessDepth = LessDepth;
|
|
53628
|
-
exports.LessEqualCompare = LessEqualCompare;
|
|
53629
|
-
exports.LessEqualDepth = LessEqualDepth;
|
|
53630
|
-
exports.LessEqualStencilFunc = LessEqualStencilFunc;
|
|
53631
|
-
exports.LessStencilFunc = LessStencilFunc;
|
|
53632
|
-
exports.Light = Light;
|
|
53633
|
-
exports.LightProbe = LightProbe;
|
|
53634
|
-
exports.Line = Line;
|
|
53635
|
-
exports.Line3 = Line3;
|
|
53636
|
-
exports.LineBasicMaterial = LineBasicMaterial;
|
|
53637
|
-
exports.LineCurve = LineCurve;
|
|
53638
|
-
exports.LineCurve3 = LineCurve3;
|
|
53639
|
-
exports.LineDashedMaterial = LineDashedMaterial;
|
|
53640
|
-
exports.LineLoop = LineLoop;
|
|
53641
|
-
exports.LineSegments = LineSegments;
|
|
53642
|
-
exports.LinearDisplayP3ColorSpace = LinearDisplayP3ColorSpace;
|
|
53643
|
-
exports.LinearEncoding = LinearEncoding;
|
|
53644
|
-
exports.LinearFilter = LinearFilter;
|
|
53645
|
-
exports.LinearInterpolant = LinearInterpolant;
|
|
53646
|
-
exports.LinearMipMapLinearFilter = LinearMipMapLinearFilter;
|
|
53647
|
-
exports.LinearMipMapNearestFilter = LinearMipMapNearestFilter;
|
|
53648
|
-
exports.LinearMipmapLinearFilter = LinearMipmapLinearFilter;
|
|
53649
|
-
exports.LinearMipmapNearestFilter = LinearMipmapNearestFilter;
|
|
53650
|
-
exports.LinearSRGBColorSpace = LinearSRGBColorSpace;
|
|
53651
|
-
exports.LinearToneMapping = LinearToneMapping;
|
|
53652
|
-
exports.LinearTransfer = LinearTransfer;
|
|
53653
|
-
exports.Loader = Loader;
|
|
53654
|
-
exports.LoaderUtils = LoaderUtils;
|
|
53655
|
-
exports.LoadingManager = LoadingManager;
|
|
53656
|
-
exports.LoopOnce = LoopOnce;
|
|
53657
|
-
exports.LoopPingPong = LoopPingPong;
|
|
53658
|
-
exports.LoopRepeat = LoopRepeat;
|
|
53659
|
-
exports.LuminanceAlphaFormat = LuminanceAlphaFormat;
|
|
53660
|
-
exports.LuminanceFormat = LuminanceFormat;
|
|
53661
|
-
exports.MOUSE = MOUSE;
|
|
53662
|
-
exports.Material = Material;
|
|
53663
|
-
exports.MaterialLoader = MaterialLoader;
|
|
53664
|
-
exports.MathUtils = MathUtils;
|
|
53665
|
-
exports.Matrix3 = Matrix3;
|
|
53666
|
-
exports.Matrix4 = Matrix4;
|
|
53667
|
-
exports.MaxEquation = MaxEquation;
|
|
53668
|
-
exports.Mesh = Mesh;
|
|
53669
|
-
exports.MeshBasicMaterial = MeshBasicMaterial;
|
|
53670
|
-
exports.MeshDepthMaterial = MeshDepthMaterial;
|
|
53671
|
-
exports.MeshDistanceMaterial = MeshDistanceMaterial;
|
|
53672
|
-
exports.MeshLambertMaterial = MeshLambertMaterial;
|
|
53673
|
-
exports.MeshMatcapMaterial = MeshMatcapMaterial;
|
|
53674
|
-
exports.MeshNormalMaterial = MeshNormalMaterial;
|
|
53675
|
-
exports.MeshPhongMaterial = MeshPhongMaterial;
|
|
53676
|
-
exports.MeshPhysicalMaterial = MeshPhysicalMaterial;
|
|
53677
|
-
exports.MeshStandardMaterial = MeshStandardMaterial;
|
|
53678
|
-
exports.MeshToonMaterial = MeshToonMaterial;
|
|
53679
|
-
exports.MinEquation = MinEquation;
|
|
53680
|
-
exports.MirroredRepeatWrapping = MirroredRepeatWrapping;
|
|
53681
|
-
exports.MixOperation = MixOperation;
|
|
53682
|
-
exports.MultiplyBlending = MultiplyBlending;
|
|
53683
|
-
exports.MultiplyOperation = MultiplyOperation;
|
|
53684
|
-
exports.NearestFilter = NearestFilter;
|
|
53685
|
-
exports.NearestMipMapLinearFilter = NearestMipMapLinearFilter;
|
|
53686
|
-
exports.NearestMipMapNearestFilter = NearestMipMapNearestFilter;
|
|
53687
|
-
exports.NearestMipmapLinearFilter = NearestMipmapLinearFilter;
|
|
53688
|
-
exports.NearestMipmapNearestFilter = NearestMipmapNearestFilter;
|
|
53689
|
-
exports.NeutralToneMapping = NeutralToneMapping;
|
|
53690
|
-
exports.NeverCompare = NeverCompare;
|
|
53691
|
-
exports.NeverDepth = NeverDepth;
|
|
53692
|
-
exports.NeverStencilFunc = NeverStencilFunc;
|
|
53693
|
-
exports.NoBlending = NoBlending;
|
|
53694
|
-
exports.NoColorSpace = NoColorSpace;
|
|
53695
|
-
exports.NoToneMapping = NoToneMapping;
|
|
53696
|
-
exports.NormalAnimationBlendMode = NormalAnimationBlendMode;
|
|
53697
|
-
exports.NormalBlending = NormalBlending;
|
|
53698
|
-
exports.NotEqualCompare = NotEqualCompare;
|
|
53699
|
-
exports.NotEqualDepth = NotEqualDepth;
|
|
53700
|
-
exports.NotEqualStencilFunc = NotEqualStencilFunc;
|
|
53701
|
-
exports.NumberKeyframeTrack = NumberKeyframeTrack;
|
|
53702
|
-
exports.Object3D = Object3D;
|
|
53703
|
-
exports.ObjectLoader = ObjectLoader;
|
|
53704
|
-
exports.ObjectSpaceNormalMap = ObjectSpaceNormalMap;
|
|
53705
|
-
exports.OctahedronGeometry = OctahedronGeometry;
|
|
53706
|
-
exports.OneFactor = OneFactor;
|
|
53707
|
-
exports.OneMinusConstantAlphaFactor = OneMinusConstantAlphaFactor;
|
|
53708
|
-
exports.OneMinusConstantColorFactor = OneMinusConstantColorFactor;
|
|
53709
|
-
exports.OneMinusDstAlphaFactor = OneMinusDstAlphaFactor;
|
|
53710
|
-
exports.OneMinusDstColorFactor = OneMinusDstColorFactor;
|
|
53711
|
-
exports.OneMinusSrcAlphaFactor = OneMinusSrcAlphaFactor;
|
|
53712
|
-
exports.OneMinusSrcColorFactor = OneMinusSrcColorFactor;
|
|
53713
|
-
exports.OrthographicCamera = OrthographicCamera;
|
|
53714
|
-
exports.P3Primaries = P3Primaries;
|
|
53715
|
-
exports.PCFShadowMap = PCFShadowMap;
|
|
53716
|
-
exports.PCFSoftShadowMap = PCFSoftShadowMap;
|
|
53717
|
-
exports.PMREMGenerator = PMREMGenerator;
|
|
53718
|
-
exports.Path = Path;
|
|
53719
|
-
exports.PerspectiveCamera = PerspectiveCamera;
|
|
53720
|
-
exports.Plane = Plane;
|
|
53721
|
-
exports.PlaneGeometry = PlaneGeometry;
|
|
53722
|
-
exports.PlaneHelper = PlaneHelper;
|
|
53723
|
-
exports.PointLight = PointLight;
|
|
53724
|
-
exports.PointLightHelper = PointLightHelper;
|
|
53725
|
-
exports.Points = Points;
|
|
53726
|
-
exports.PointsMaterial = PointsMaterial;
|
|
53727
|
-
exports.PolarGridHelper = PolarGridHelper;
|
|
53728
|
-
exports.PolyhedronGeometry = PolyhedronGeometry;
|
|
53729
|
-
exports.PositionalAudio = PositionalAudio;
|
|
53730
|
-
exports.PropertyBinding = PropertyBinding;
|
|
53731
|
-
exports.PropertyMixer = PropertyMixer;
|
|
53732
|
-
exports.QuadraticBezierCurve = QuadraticBezierCurve;
|
|
53733
|
-
exports.QuadraticBezierCurve3 = QuadraticBezierCurve3;
|
|
53734
|
-
exports.Quaternion = Quaternion;
|
|
53735
|
-
exports.QuaternionKeyframeTrack = QuaternionKeyframeTrack;
|
|
53736
|
-
exports.QuaternionLinearInterpolant = QuaternionLinearInterpolant;
|
|
53737
|
-
exports.RED_GREEN_RGTC2_Format = RED_GREEN_RGTC2_Format;
|
|
53738
|
-
exports.RED_RGTC1_Format = RED_RGTC1_Format;
|
|
53739
|
-
exports.REVISION = REVISION;
|
|
53740
|
-
exports.RGBADepthPacking = RGBADepthPacking;
|
|
53741
|
-
exports.RGBAFormat = RGBAFormat;
|
|
53742
|
-
exports.RGBAIntegerFormat = RGBAIntegerFormat;
|
|
53743
|
-
exports.RGBA_ASTC_10x10_Format = RGBA_ASTC_10x10_Format;
|
|
53744
|
-
exports.RGBA_ASTC_10x5_Format = RGBA_ASTC_10x5_Format;
|
|
53745
|
-
exports.RGBA_ASTC_10x6_Format = RGBA_ASTC_10x6_Format;
|
|
53746
|
-
exports.RGBA_ASTC_10x8_Format = RGBA_ASTC_10x8_Format;
|
|
53747
|
-
exports.RGBA_ASTC_12x10_Format = RGBA_ASTC_12x10_Format;
|
|
53748
|
-
exports.RGBA_ASTC_12x12_Format = RGBA_ASTC_12x12_Format;
|
|
53749
|
-
exports.RGBA_ASTC_4x4_Format = RGBA_ASTC_4x4_Format;
|
|
53750
|
-
exports.RGBA_ASTC_5x4_Format = RGBA_ASTC_5x4_Format;
|
|
53751
|
-
exports.RGBA_ASTC_5x5_Format = RGBA_ASTC_5x5_Format;
|
|
53752
|
-
exports.RGBA_ASTC_6x5_Format = RGBA_ASTC_6x5_Format;
|
|
53753
|
-
exports.RGBA_ASTC_6x6_Format = RGBA_ASTC_6x6_Format;
|
|
53754
|
-
exports.RGBA_ASTC_8x5_Format = RGBA_ASTC_8x5_Format;
|
|
53755
|
-
exports.RGBA_ASTC_8x6_Format = RGBA_ASTC_8x6_Format;
|
|
53756
|
-
exports.RGBA_ASTC_8x8_Format = RGBA_ASTC_8x8_Format;
|
|
53757
|
-
exports.RGBA_BPTC_Format = RGBA_BPTC_Format;
|
|
53758
|
-
exports.RGBA_ETC2_EAC_Format = RGBA_ETC2_EAC_Format;
|
|
53759
|
-
exports.RGBA_PVRTC_2BPPV1_Format = RGBA_PVRTC_2BPPV1_Format;
|
|
53760
|
-
exports.RGBA_PVRTC_4BPPV1_Format = RGBA_PVRTC_4BPPV1_Format;
|
|
53761
|
-
exports.RGBA_S3TC_DXT1_Format = RGBA_S3TC_DXT1_Format;
|
|
53762
|
-
exports.RGBA_S3TC_DXT3_Format = RGBA_S3TC_DXT3_Format;
|
|
53763
|
-
exports.RGBA_S3TC_DXT5_Format = RGBA_S3TC_DXT5_Format;
|
|
53764
|
-
exports.RGB_BPTC_SIGNED_Format = RGB_BPTC_SIGNED_Format;
|
|
53765
|
-
exports.RGB_BPTC_UNSIGNED_Format = RGB_BPTC_UNSIGNED_Format;
|
|
53766
|
-
exports.RGB_ETC1_Format = RGB_ETC1_Format;
|
|
53767
|
-
exports.RGB_ETC2_Format = RGB_ETC2_Format;
|
|
53768
|
-
exports.RGB_PVRTC_2BPPV1_Format = RGB_PVRTC_2BPPV1_Format;
|
|
53769
|
-
exports.RGB_PVRTC_4BPPV1_Format = RGB_PVRTC_4BPPV1_Format;
|
|
53770
|
-
exports.RGB_S3TC_DXT1_Format = RGB_S3TC_DXT1_Format;
|
|
53771
|
-
exports.RGFormat = RGFormat;
|
|
53772
|
-
exports.RGIntegerFormat = RGIntegerFormat;
|
|
53773
|
-
exports.RawShaderMaterial = RawShaderMaterial;
|
|
53774
|
-
exports.Ray = Ray;
|
|
53775
|
-
exports.Raycaster = Raycaster;
|
|
53776
|
-
exports.Rec709Primaries = Rec709Primaries;
|
|
53777
|
-
exports.RectAreaLight = RectAreaLight;
|
|
53778
|
-
exports.RedFormat = RedFormat;
|
|
53779
|
-
exports.RedIntegerFormat = RedIntegerFormat;
|
|
53780
|
-
exports.ReinhardToneMapping = ReinhardToneMapping;
|
|
53781
|
-
exports.RenderTarget = RenderTarget;
|
|
53782
|
-
exports.RepeatWrapping = RepeatWrapping;
|
|
53783
|
-
exports.ReplaceStencilOp = ReplaceStencilOp;
|
|
53784
|
-
exports.ReverseSubtractEquation = ReverseSubtractEquation;
|
|
53785
|
-
exports.RingGeometry = RingGeometry;
|
|
53786
|
-
exports.SIGNED_RED_GREEN_RGTC2_Format = SIGNED_RED_GREEN_RGTC2_Format;
|
|
53787
|
-
exports.SIGNED_RED_RGTC1_Format = SIGNED_RED_RGTC1_Format;
|
|
53788
|
-
exports.SRGBColorSpace = SRGBColorSpace;
|
|
53789
|
-
exports.SRGBTransfer = SRGBTransfer;
|
|
53790
|
-
exports.Scene = Scene;
|
|
53791
|
-
exports.ShaderChunk = ShaderChunk;
|
|
53792
|
-
exports.ShaderLib = ShaderLib;
|
|
53793
|
-
exports.ShaderMaterial = ShaderMaterial;
|
|
53794
|
-
exports.ShadowMaterial = ShadowMaterial;
|
|
53795
|
-
exports.Shape = Shape;
|
|
53796
|
-
exports.ShapeGeometry = ShapeGeometry;
|
|
53797
|
-
exports.ShapePath = ShapePath;
|
|
53798
|
-
exports.ShapeUtils = ShapeUtils;
|
|
53799
|
-
exports.ShortType = ShortType;
|
|
53800
|
-
exports.Skeleton = Skeleton;
|
|
53801
|
-
exports.SkeletonHelper = SkeletonHelper;
|
|
53802
|
-
exports.SkinnedMesh = SkinnedMesh;
|
|
53803
|
-
exports.Source = Source;
|
|
53804
|
-
exports.Sphere = Sphere;
|
|
53805
|
-
exports.SphereGeometry = SphereGeometry;
|
|
53806
|
-
exports.Spherical = Spherical;
|
|
53807
|
-
exports.SphericalHarmonics3 = SphericalHarmonics3;
|
|
53808
|
-
exports.SplineCurve = SplineCurve;
|
|
53809
|
-
exports.SpotLight = SpotLight;
|
|
53810
|
-
exports.SpotLightHelper = SpotLightHelper;
|
|
53811
|
-
exports.Sprite = Sprite;
|
|
53812
|
-
exports.SpriteMaterial = SpriteMaterial;
|
|
53813
|
-
exports.SrcAlphaFactor = SrcAlphaFactor;
|
|
53814
|
-
exports.SrcAlphaSaturateFactor = SrcAlphaSaturateFactor;
|
|
53815
|
-
exports.SrcColorFactor = SrcColorFactor;
|
|
53816
|
-
exports.StaticCopyUsage = StaticCopyUsage;
|
|
53817
|
-
exports.StaticDrawUsage = StaticDrawUsage;
|
|
53818
|
-
exports.StaticReadUsage = StaticReadUsage;
|
|
53819
|
-
exports.StereoCamera = StereoCamera;
|
|
53820
|
-
exports.StreamCopyUsage = StreamCopyUsage;
|
|
53821
|
-
exports.StreamDrawUsage = StreamDrawUsage;
|
|
53822
|
-
exports.StreamReadUsage = StreamReadUsage;
|
|
53823
|
-
exports.StringKeyframeTrack = StringKeyframeTrack;
|
|
53824
|
-
exports.SubtractEquation = SubtractEquation;
|
|
53825
|
-
exports.SubtractiveBlending = SubtractiveBlending;
|
|
53826
|
-
exports.TOUCH = TOUCH;
|
|
53827
|
-
exports.TangentSpaceNormalMap = TangentSpaceNormalMap;
|
|
53828
|
-
exports.TetrahedronGeometry = TetrahedronGeometry;
|
|
53829
|
-
exports.Texture = Texture;
|
|
53830
|
-
exports.TextureLoader = TextureLoader;
|
|
53831
|
-
exports.TorusGeometry = TorusGeometry;
|
|
53832
|
-
exports.TorusKnotGeometry = TorusKnotGeometry;
|
|
53833
|
-
exports.Triangle = Triangle;
|
|
53834
|
-
exports.TriangleFanDrawMode = TriangleFanDrawMode;
|
|
53835
|
-
exports.TriangleStripDrawMode = TriangleStripDrawMode;
|
|
53836
|
-
exports.TrianglesDrawMode = TrianglesDrawMode;
|
|
53837
|
-
exports.TubeGeometry = TubeGeometry;
|
|
53838
|
-
exports.UVMapping = UVMapping;
|
|
53839
|
-
exports.Uint16BufferAttribute = Uint16BufferAttribute;
|
|
53840
|
-
exports.Uint32BufferAttribute = Uint32BufferAttribute;
|
|
53841
|
-
exports.Uint8BufferAttribute = Uint8BufferAttribute;
|
|
53842
|
-
exports.Uint8ClampedBufferAttribute = Uint8ClampedBufferAttribute;
|
|
53843
|
-
exports.Uniform = Uniform;
|
|
53844
|
-
exports.UniformsGroup = UniformsGroup;
|
|
53845
|
-
exports.UniformsLib = UniformsLib;
|
|
53846
|
-
exports.UniformsUtils = UniformsUtils;
|
|
53847
|
-
exports.UnsignedByteType = UnsignedByteType;
|
|
53848
|
-
exports.UnsignedInt248Type = UnsignedInt248Type;
|
|
53849
|
-
exports.UnsignedIntType = UnsignedIntType;
|
|
53850
|
-
exports.UnsignedShort4444Type = UnsignedShort4444Type;
|
|
53851
|
-
exports.UnsignedShort5551Type = UnsignedShort5551Type;
|
|
53852
|
-
exports.UnsignedShortType = UnsignedShortType;
|
|
53853
|
-
exports.VSMShadowMap = VSMShadowMap;
|
|
53854
|
-
exports.Vector2 = Vector2;
|
|
53855
|
-
exports.Vector3 = Vector3;
|
|
53856
|
-
exports.Vector4 = Vector4;
|
|
53857
|
-
exports.VectorKeyframeTrack = VectorKeyframeTrack;
|
|
53858
|
-
exports.VideoTexture = VideoTexture;
|
|
53859
|
-
exports.WebGL1Renderer = WebGL1Renderer;
|
|
53860
|
-
exports.WebGL3DRenderTarget = WebGL3DRenderTarget;
|
|
53861
|
-
exports.WebGLArrayRenderTarget = WebGLArrayRenderTarget;
|
|
53862
|
-
exports.WebGLCoordinateSystem = WebGLCoordinateSystem;
|
|
53863
|
-
exports.WebGLCubeRenderTarget = WebGLCubeRenderTarget;
|
|
53864
|
-
exports.WebGLMultipleRenderTargets = WebGLMultipleRenderTargets;
|
|
53865
|
-
exports.WebGLRenderTarget = WebGLRenderTarget;
|
|
53866
|
-
exports.WebGLRenderer = WebGLRenderer;
|
|
53867
|
-
exports.WebGLUtils = WebGLUtils;
|
|
53868
|
-
exports.WebGPUCoordinateSystem = WebGPUCoordinateSystem;
|
|
53869
|
-
exports.WireframeGeometry = WireframeGeometry;
|
|
53870
|
-
exports.WrapAroundEnding = WrapAroundEnding;
|
|
53871
|
-
exports.ZeroCurvatureEnding = ZeroCurvatureEnding;
|
|
53872
|
-
exports.ZeroFactor = ZeroFactor;
|
|
53873
|
-
exports.ZeroSlopeEnding = ZeroSlopeEnding;
|
|
53874
|
-
exports.ZeroStencilOp = ZeroStencilOp;
|
|
53875
|
-
exports._SRGBAFormat = _SRGBAFormat;
|
|
53876
|
-
exports.createCanvasElement = createCanvasElement;
|
|
53877
|
-
exports.sRGBEncoding = sRGBEncoding;
|
|
53470
|
+
}
|
|
53471
|
+
|
|
53472
|
+
exports.ACESFilmicToneMapping = ACESFilmicToneMapping;
|
|
53473
|
+
exports.AddEquation = AddEquation;
|
|
53474
|
+
exports.AddOperation = AddOperation;
|
|
53475
|
+
exports.AdditiveAnimationBlendMode = AdditiveAnimationBlendMode;
|
|
53476
|
+
exports.AdditiveBlending = AdditiveBlending;
|
|
53477
|
+
exports.AgXToneMapping = AgXToneMapping;
|
|
53478
|
+
exports.AlphaFormat = AlphaFormat;
|
|
53479
|
+
exports.AlwaysCompare = AlwaysCompare;
|
|
53480
|
+
exports.AlwaysDepth = AlwaysDepth;
|
|
53481
|
+
exports.AlwaysStencilFunc = AlwaysStencilFunc;
|
|
53482
|
+
exports.AmbientLight = AmbientLight;
|
|
53483
|
+
exports.AnimationAction = AnimationAction;
|
|
53484
|
+
exports.AnimationClip = AnimationClip;
|
|
53485
|
+
exports.AnimationLoader = AnimationLoader;
|
|
53486
|
+
exports.AnimationMixer = AnimationMixer;
|
|
53487
|
+
exports.AnimationObjectGroup = AnimationObjectGroup;
|
|
53488
|
+
exports.AnimationUtils = AnimationUtils;
|
|
53489
|
+
exports.ArcCurve = ArcCurve;
|
|
53490
|
+
exports.ArrayCamera = ArrayCamera;
|
|
53491
|
+
exports.ArrowHelper = ArrowHelper;
|
|
53492
|
+
exports.AttachedBindMode = AttachedBindMode;
|
|
53493
|
+
exports.Audio = Audio;
|
|
53494
|
+
exports.AudioAnalyser = AudioAnalyser;
|
|
53495
|
+
exports.AudioContext = AudioContext;
|
|
53496
|
+
exports.AudioListener = AudioListener;
|
|
53497
|
+
exports.AudioLoader = AudioLoader;
|
|
53498
|
+
exports.AxesHelper = AxesHelper;
|
|
53499
|
+
exports.BackSide = BackSide;
|
|
53500
|
+
exports.BasicDepthPacking = BasicDepthPacking;
|
|
53501
|
+
exports.BasicShadowMap = BasicShadowMap;
|
|
53502
|
+
exports.BatchedMesh = BatchedMesh;
|
|
53503
|
+
exports.Bone = Bone;
|
|
53504
|
+
exports.BooleanKeyframeTrack = BooleanKeyframeTrack;
|
|
53505
|
+
exports.Box2 = Box2;
|
|
53506
|
+
exports.Box3 = Box3;
|
|
53507
|
+
exports.Box3Helper = Box3Helper;
|
|
53508
|
+
exports.BoxGeometry = BoxGeometry;
|
|
53509
|
+
exports.BoxHelper = BoxHelper;
|
|
53510
|
+
exports.BufferAttribute = BufferAttribute;
|
|
53511
|
+
exports.BufferGeometry = BufferGeometry;
|
|
53512
|
+
exports.BufferGeometryLoader = BufferGeometryLoader;
|
|
53513
|
+
exports.ByteType = ByteType;
|
|
53514
|
+
exports.Cache = Cache;
|
|
53515
|
+
exports.Camera = Camera;
|
|
53516
|
+
exports.CameraHelper = CameraHelper;
|
|
53517
|
+
exports.CanvasTexture = CanvasTexture;
|
|
53518
|
+
exports.CapsuleGeometry = CapsuleGeometry;
|
|
53519
|
+
exports.CatmullRomCurve3 = CatmullRomCurve3;
|
|
53520
|
+
exports.CineonToneMapping = CineonToneMapping;
|
|
53521
|
+
exports.CircleGeometry = CircleGeometry;
|
|
53522
|
+
exports.ClampToEdgeWrapping = ClampToEdgeWrapping;
|
|
53523
|
+
exports.Clock = Clock;
|
|
53524
|
+
exports.Color = Color;
|
|
53525
|
+
exports.ColorKeyframeTrack = ColorKeyframeTrack;
|
|
53526
|
+
exports.ColorManagement = ColorManagement;
|
|
53527
|
+
exports.CompressedArrayTexture = CompressedArrayTexture;
|
|
53528
|
+
exports.CompressedCubeTexture = CompressedCubeTexture;
|
|
53529
|
+
exports.CompressedTexture = CompressedTexture;
|
|
53530
|
+
exports.CompressedTextureLoader = CompressedTextureLoader;
|
|
53531
|
+
exports.ConeGeometry = ConeGeometry;
|
|
53532
|
+
exports.ConstantAlphaFactor = ConstantAlphaFactor;
|
|
53533
|
+
exports.ConstantColorFactor = ConstantColorFactor;
|
|
53534
|
+
exports.CubeCamera = CubeCamera;
|
|
53535
|
+
exports.CubeReflectionMapping = CubeReflectionMapping;
|
|
53536
|
+
exports.CubeRefractionMapping = CubeRefractionMapping;
|
|
53537
|
+
exports.CubeTexture = CubeTexture;
|
|
53538
|
+
exports.CubeTextureLoader = CubeTextureLoader;
|
|
53539
|
+
exports.CubeUVReflectionMapping = CubeUVReflectionMapping;
|
|
53540
|
+
exports.CubicBezierCurve = CubicBezierCurve;
|
|
53541
|
+
exports.CubicBezierCurve3 = CubicBezierCurve3;
|
|
53542
|
+
exports.CubicInterpolant = CubicInterpolant;
|
|
53543
|
+
exports.CullFaceBack = CullFaceBack;
|
|
53544
|
+
exports.CullFaceFront = CullFaceFront;
|
|
53545
|
+
exports.CullFaceFrontBack = CullFaceFrontBack;
|
|
53546
|
+
exports.CullFaceNone = CullFaceNone;
|
|
53547
|
+
exports.Curve = Curve;
|
|
53548
|
+
exports.CurvePath = CurvePath;
|
|
53549
|
+
exports.CustomBlending = CustomBlending;
|
|
53550
|
+
exports.CustomToneMapping = CustomToneMapping;
|
|
53551
|
+
exports.CylinderGeometry = CylinderGeometry;
|
|
53552
|
+
exports.Cylindrical = Cylindrical;
|
|
53553
|
+
exports.Data3DTexture = Data3DTexture;
|
|
53554
|
+
exports.DataArrayTexture = DataArrayTexture;
|
|
53555
|
+
exports.DataTexture = DataTexture;
|
|
53556
|
+
exports.DataTextureLoader = DataTextureLoader;
|
|
53557
|
+
exports.DataUtils = DataUtils;
|
|
53558
|
+
exports.DecrementStencilOp = DecrementStencilOp;
|
|
53559
|
+
exports.DecrementWrapStencilOp = DecrementWrapStencilOp;
|
|
53560
|
+
exports.DefaultLoadingManager = DefaultLoadingManager;
|
|
53561
|
+
exports.DepthFormat = DepthFormat;
|
|
53562
|
+
exports.DepthStencilFormat = DepthStencilFormat;
|
|
53563
|
+
exports.DepthTexture = DepthTexture;
|
|
53564
|
+
exports.DetachedBindMode = DetachedBindMode;
|
|
53565
|
+
exports.DirectionalLight = DirectionalLight;
|
|
53566
|
+
exports.DirectionalLightHelper = DirectionalLightHelper;
|
|
53567
|
+
exports.DiscreteInterpolant = DiscreteInterpolant;
|
|
53568
|
+
exports.DisplayP3ColorSpace = DisplayP3ColorSpace;
|
|
53569
|
+
exports.DodecahedronGeometry = DodecahedronGeometry;
|
|
53570
|
+
exports.DoubleSide = DoubleSide;
|
|
53571
|
+
exports.DstAlphaFactor = DstAlphaFactor;
|
|
53572
|
+
exports.DstColorFactor = DstColorFactor;
|
|
53573
|
+
exports.DynamicCopyUsage = DynamicCopyUsage;
|
|
53574
|
+
exports.DynamicDrawUsage = DynamicDrawUsage;
|
|
53575
|
+
exports.DynamicReadUsage = DynamicReadUsage;
|
|
53576
|
+
exports.EdgesGeometry = EdgesGeometry;
|
|
53577
|
+
exports.EllipseCurve = EllipseCurve;
|
|
53578
|
+
exports.EqualCompare = EqualCompare;
|
|
53579
|
+
exports.EqualDepth = EqualDepth;
|
|
53580
|
+
exports.EqualStencilFunc = EqualStencilFunc;
|
|
53581
|
+
exports.EquirectangularReflectionMapping = EquirectangularReflectionMapping;
|
|
53582
|
+
exports.EquirectangularRefractionMapping = EquirectangularRefractionMapping;
|
|
53583
|
+
exports.Euler = Euler;
|
|
53584
|
+
exports.EventDispatcher = EventDispatcher;
|
|
53585
|
+
exports.ExtrudeGeometry = ExtrudeGeometry;
|
|
53586
|
+
exports.FileLoader = FileLoader;
|
|
53587
|
+
exports.Float16BufferAttribute = Float16BufferAttribute;
|
|
53588
|
+
exports.Float32BufferAttribute = Float32BufferAttribute;
|
|
53589
|
+
exports.FloatType = FloatType;
|
|
53590
|
+
exports.Fog = Fog;
|
|
53591
|
+
exports.FogExp2 = FogExp2;
|
|
53592
|
+
exports.FramebufferTexture = FramebufferTexture;
|
|
53593
|
+
exports.FrontSide = FrontSide;
|
|
53594
|
+
exports.Frustum = Frustum;
|
|
53595
|
+
exports.GLBufferAttribute = GLBufferAttribute;
|
|
53596
|
+
exports.GLSL1 = GLSL1;
|
|
53597
|
+
exports.GLSL3 = GLSL3;
|
|
53598
|
+
exports.GreaterCompare = GreaterCompare;
|
|
53599
|
+
exports.GreaterDepth = GreaterDepth;
|
|
53600
|
+
exports.GreaterEqualCompare = GreaterEqualCompare;
|
|
53601
|
+
exports.GreaterEqualDepth = GreaterEqualDepth;
|
|
53602
|
+
exports.GreaterEqualStencilFunc = GreaterEqualStencilFunc;
|
|
53603
|
+
exports.GreaterStencilFunc = GreaterStencilFunc;
|
|
53604
|
+
exports.GridHelper = GridHelper;
|
|
53605
|
+
exports.Group = Group;
|
|
53606
|
+
exports.HalfFloatType = HalfFloatType;
|
|
53607
|
+
exports.HemisphereLight = HemisphereLight;
|
|
53608
|
+
exports.HemisphereLightHelper = HemisphereLightHelper;
|
|
53609
|
+
exports.IcosahedronGeometry = IcosahedronGeometry;
|
|
53610
|
+
exports.ImageBitmapLoader = ImageBitmapLoader;
|
|
53611
|
+
exports.ImageLoader = ImageLoader;
|
|
53612
|
+
exports.ImageUtils = ImageUtils;
|
|
53613
|
+
exports.IncrementStencilOp = IncrementStencilOp;
|
|
53614
|
+
exports.IncrementWrapStencilOp = IncrementWrapStencilOp;
|
|
53615
|
+
exports.InstancedBufferAttribute = InstancedBufferAttribute;
|
|
53616
|
+
exports.InstancedBufferGeometry = InstancedBufferGeometry;
|
|
53617
|
+
exports.InstancedInterleavedBuffer = InstancedInterleavedBuffer;
|
|
53618
|
+
exports.InstancedMesh = InstancedMesh;
|
|
53619
|
+
exports.Int16BufferAttribute = Int16BufferAttribute;
|
|
53620
|
+
exports.Int32BufferAttribute = Int32BufferAttribute;
|
|
53621
|
+
exports.Int8BufferAttribute = Int8BufferAttribute;
|
|
53622
|
+
exports.IntType = IntType;
|
|
53623
|
+
exports.InterleavedBuffer = InterleavedBuffer;
|
|
53624
|
+
exports.InterleavedBufferAttribute = InterleavedBufferAttribute;
|
|
53625
|
+
exports.Interpolant = Interpolant;
|
|
53626
|
+
exports.InterpolateDiscrete = InterpolateDiscrete;
|
|
53627
|
+
exports.InterpolateLinear = InterpolateLinear;
|
|
53628
|
+
exports.InterpolateSmooth = InterpolateSmooth;
|
|
53629
|
+
exports.InvertStencilOp = InvertStencilOp;
|
|
53630
|
+
exports.KeepStencilOp = KeepStencilOp;
|
|
53631
|
+
exports.KeyframeTrack = KeyframeTrack;
|
|
53632
|
+
exports.LOD = LOD;
|
|
53633
|
+
exports.LatheGeometry = LatheGeometry;
|
|
53634
|
+
exports.Layers = Layers;
|
|
53635
|
+
exports.LessCompare = LessCompare;
|
|
53636
|
+
exports.LessDepth = LessDepth;
|
|
53637
|
+
exports.LessEqualCompare = LessEqualCompare;
|
|
53638
|
+
exports.LessEqualDepth = LessEqualDepth;
|
|
53639
|
+
exports.LessEqualStencilFunc = LessEqualStencilFunc;
|
|
53640
|
+
exports.LessStencilFunc = LessStencilFunc;
|
|
53641
|
+
exports.Light = Light;
|
|
53642
|
+
exports.LightProbe = LightProbe;
|
|
53643
|
+
exports.Line = Line;
|
|
53644
|
+
exports.Line3 = Line3;
|
|
53645
|
+
exports.LineBasicMaterial = LineBasicMaterial;
|
|
53646
|
+
exports.LineCurve = LineCurve;
|
|
53647
|
+
exports.LineCurve3 = LineCurve3;
|
|
53648
|
+
exports.LineDashedMaterial = LineDashedMaterial;
|
|
53649
|
+
exports.LineLoop = LineLoop;
|
|
53650
|
+
exports.LineSegments = LineSegments;
|
|
53651
|
+
exports.LinearDisplayP3ColorSpace = LinearDisplayP3ColorSpace;
|
|
53652
|
+
exports.LinearEncoding = LinearEncoding;
|
|
53653
|
+
exports.LinearFilter = LinearFilter;
|
|
53654
|
+
exports.LinearInterpolant = LinearInterpolant;
|
|
53655
|
+
exports.LinearMipMapLinearFilter = LinearMipMapLinearFilter;
|
|
53656
|
+
exports.LinearMipMapNearestFilter = LinearMipMapNearestFilter;
|
|
53657
|
+
exports.LinearMipmapLinearFilter = LinearMipmapLinearFilter;
|
|
53658
|
+
exports.LinearMipmapNearestFilter = LinearMipmapNearestFilter;
|
|
53659
|
+
exports.LinearSRGBColorSpace = LinearSRGBColorSpace;
|
|
53660
|
+
exports.LinearToneMapping = LinearToneMapping;
|
|
53661
|
+
exports.LinearTransfer = LinearTransfer;
|
|
53662
|
+
exports.Loader = Loader;
|
|
53663
|
+
exports.LoaderUtils = LoaderUtils;
|
|
53664
|
+
exports.LoadingManager = LoadingManager;
|
|
53665
|
+
exports.LoopOnce = LoopOnce;
|
|
53666
|
+
exports.LoopPingPong = LoopPingPong;
|
|
53667
|
+
exports.LoopRepeat = LoopRepeat;
|
|
53668
|
+
exports.LuminanceAlphaFormat = LuminanceAlphaFormat;
|
|
53669
|
+
exports.LuminanceFormat = LuminanceFormat;
|
|
53670
|
+
exports.MOUSE = MOUSE;
|
|
53671
|
+
exports.Material = Material;
|
|
53672
|
+
exports.MaterialLoader = MaterialLoader;
|
|
53673
|
+
exports.MathUtils = MathUtils;
|
|
53674
|
+
exports.Matrix3 = Matrix3;
|
|
53675
|
+
exports.Matrix4 = Matrix4;
|
|
53676
|
+
exports.MaxEquation = MaxEquation;
|
|
53677
|
+
exports.Mesh = Mesh;
|
|
53678
|
+
exports.MeshBasicMaterial = MeshBasicMaterial;
|
|
53679
|
+
exports.MeshDepthMaterial = MeshDepthMaterial;
|
|
53680
|
+
exports.MeshDistanceMaterial = MeshDistanceMaterial;
|
|
53681
|
+
exports.MeshLambertMaterial = MeshLambertMaterial;
|
|
53682
|
+
exports.MeshMatcapMaterial = MeshMatcapMaterial;
|
|
53683
|
+
exports.MeshNormalMaterial = MeshNormalMaterial;
|
|
53684
|
+
exports.MeshPhongMaterial = MeshPhongMaterial;
|
|
53685
|
+
exports.MeshPhysicalMaterial = MeshPhysicalMaterial;
|
|
53686
|
+
exports.MeshStandardMaterial = MeshStandardMaterial;
|
|
53687
|
+
exports.MeshToonMaterial = MeshToonMaterial;
|
|
53688
|
+
exports.MinEquation = MinEquation;
|
|
53689
|
+
exports.MirroredRepeatWrapping = MirroredRepeatWrapping;
|
|
53690
|
+
exports.MixOperation = MixOperation;
|
|
53691
|
+
exports.MultiplyBlending = MultiplyBlending;
|
|
53692
|
+
exports.MultiplyOperation = MultiplyOperation;
|
|
53693
|
+
exports.NearestFilter = NearestFilter;
|
|
53694
|
+
exports.NearestMipMapLinearFilter = NearestMipMapLinearFilter;
|
|
53695
|
+
exports.NearestMipMapNearestFilter = NearestMipMapNearestFilter;
|
|
53696
|
+
exports.NearestMipmapLinearFilter = NearestMipmapLinearFilter;
|
|
53697
|
+
exports.NearestMipmapNearestFilter = NearestMipmapNearestFilter;
|
|
53698
|
+
exports.NeutralToneMapping = NeutralToneMapping;
|
|
53699
|
+
exports.NeverCompare = NeverCompare;
|
|
53700
|
+
exports.NeverDepth = NeverDepth;
|
|
53701
|
+
exports.NeverStencilFunc = NeverStencilFunc;
|
|
53702
|
+
exports.NoBlending = NoBlending;
|
|
53703
|
+
exports.NoColorSpace = NoColorSpace;
|
|
53704
|
+
exports.NoToneMapping = NoToneMapping;
|
|
53705
|
+
exports.NormalAnimationBlendMode = NormalAnimationBlendMode;
|
|
53706
|
+
exports.NormalBlending = NormalBlending;
|
|
53707
|
+
exports.NotEqualCompare = NotEqualCompare;
|
|
53708
|
+
exports.NotEqualDepth = NotEqualDepth;
|
|
53709
|
+
exports.NotEqualStencilFunc = NotEqualStencilFunc;
|
|
53710
|
+
exports.NumberKeyframeTrack = NumberKeyframeTrack;
|
|
53711
|
+
exports.Object3D = Object3D;
|
|
53712
|
+
exports.ObjectLoader = ObjectLoader;
|
|
53713
|
+
exports.ObjectSpaceNormalMap = ObjectSpaceNormalMap;
|
|
53714
|
+
exports.OctahedronGeometry = OctahedronGeometry;
|
|
53715
|
+
exports.OneFactor = OneFactor;
|
|
53716
|
+
exports.OneMinusConstantAlphaFactor = OneMinusConstantAlphaFactor;
|
|
53717
|
+
exports.OneMinusConstantColorFactor = OneMinusConstantColorFactor;
|
|
53718
|
+
exports.OneMinusDstAlphaFactor = OneMinusDstAlphaFactor;
|
|
53719
|
+
exports.OneMinusDstColorFactor = OneMinusDstColorFactor;
|
|
53720
|
+
exports.OneMinusSrcAlphaFactor = OneMinusSrcAlphaFactor;
|
|
53721
|
+
exports.OneMinusSrcColorFactor = OneMinusSrcColorFactor;
|
|
53722
|
+
exports.OrthographicCamera = OrthographicCamera;
|
|
53723
|
+
exports.P3Primaries = P3Primaries;
|
|
53724
|
+
exports.PCFShadowMap = PCFShadowMap;
|
|
53725
|
+
exports.PCFSoftShadowMap = PCFSoftShadowMap;
|
|
53726
|
+
exports.PMREMGenerator = PMREMGenerator;
|
|
53727
|
+
exports.Path = Path;
|
|
53728
|
+
exports.PerspectiveCamera = PerspectiveCamera;
|
|
53729
|
+
exports.Plane = Plane;
|
|
53730
|
+
exports.PlaneGeometry = PlaneGeometry;
|
|
53731
|
+
exports.PlaneHelper = PlaneHelper;
|
|
53732
|
+
exports.PointLight = PointLight;
|
|
53733
|
+
exports.PointLightHelper = PointLightHelper;
|
|
53734
|
+
exports.Points = Points;
|
|
53735
|
+
exports.PointsMaterial = PointsMaterial;
|
|
53736
|
+
exports.PolarGridHelper = PolarGridHelper;
|
|
53737
|
+
exports.PolyhedronGeometry = PolyhedronGeometry;
|
|
53738
|
+
exports.PositionalAudio = PositionalAudio;
|
|
53739
|
+
exports.PropertyBinding = PropertyBinding;
|
|
53740
|
+
exports.PropertyMixer = PropertyMixer;
|
|
53741
|
+
exports.QuadraticBezierCurve = QuadraticBezierCurve;
|
|
53742
|
+
exports.QuadraticBezierCurve3 = QuadraticBezierCurve3;
|
|
53743
|
+
exports.Quaternion = Quaternion;
|
|
53744
|
+
exports.QuaternionKeyframeTrack = QuaternionKeyframeTrack;
|
|
53745
|
+
exports.QuaternionLinearInterpolant = QuaternionLinearInterpolant;
|
|
53746
|
+
exports.RED_GREEN_RGTC2_Format = RED_GREEN_RGTC2_Format;
|
|
53747
|
+
exports.RED_RGTC1_Format = RED_RGTC1_Format;
|
|
53748
|
+
exports.REVISION = REVISION;
|
|
53749
|
+
exports.RGBADepthPacking = RGBADepthPacking;
|
|
53750
|
+
exports.RGBAFormat = RGBAFormat;
|
|
53751
|
+
exports.RGBAIntegerFormat = RGBAIntegerFormat;
|
|
53752
|
+
exports.RGBA_ASTC_10x10_Format = RGBA_ASTC_10x10_Format;
|
|
53753
|
+
exports.RGBA_ASTC_10x5_Format = RGBA_ASTC_10x5_Format;
|
|
53754
|
+
exports.RGBA_ASTC_10x6_Format = RGBA_ASTC_10x6_Format;
|
|
53755
|
+
exports.RGBA_ASTC_10x8_Format = RGBA_ASTC_10x8_Format;
|
|
53756
|
+
exports.RGBA_ASTC_12x10_Format = RGBA_ASTC_12x10_Format;
|
|
53757
|
+
exports.RGBA_ASTC_12x12_Format = RGBA_ASTC_12x12_Format;
|
|
53758
|
+
exports.RGBA_ASTC_4x4_Format = RGBA_ASTC_4x4_Format;
|
|
53759
|
+
exports.RGBA_ASTC_5x4_Format = RGBA_ASTC_5x4_Format;
|
|
53760
|
+
exports.RGBA_ASTC_5x5_Format = RGBA_ASTC_5x5_Format;
|
|
53761
|
+
exports.RGBA_ASTC_6x5_Format = RGBA_ASTC_6x5_Format;
|
|
53762
|
+
exports.RGBA_ASTC_6x6_Format = RGBA_ASTC_6x6_Format;
|
|
53763
|
+
exports.RGBA_ASTC_8x5_Format = RGBA_ASTC_8x5_Format;
|
|
53764
|
+
exports.RGBA_ASTC_8x6_Format = RGBA_ASTC_8x6_Format;
|
|
53765
|
+
exports.RGBA_ASTC_8x8_Format = RGBA_ASTC_8x8_Format;
|
|
53766
|
+
exports.RGBA_BPTC_Format = RGBA_BPTC_Format;
|
|
53767
|
+
exports.RGBA_ETC2_EAC_Format = RGBA_ETC2_EAC_Format;
|
|
53768
|
+
exports.RGBA_PVRTC_2BPPV1_Format = RGBA_PVRTC_2BPPV1_Format;
|
|
53769
|
+
exports.RGBA_PVRTC_4BPPV1_Format = RGBA_PVRTC_4BPPV1_Format;
|
|
53770
|
+
exports.RGBA_S3TC_DXT1_Format = RGBA_S3TC_DXT1_Format;
|
|
53771
|
+
exports.RGBA_S3TC_DXT3_Format = RGBA_S3TC_DXT3_Format;
|
|
53772
|
+
exports.RGBA_S3TC_DXT5_Format = RGBA_S3TC_DXT5_Format;
|
|
53773
|
+
exports.RGB_BPTC_SIGNED_Format = RGB_BPTC_SIGNED_Format;
|
|
53774
|
+
exports.RGB_BPTC_UNSIGNED_Format = RGB_BPTC_UNSIGNED_Format;
|
|
53775
|
+
exports.RGB_ETC1_Format = RGB_ETC1_Format;
|
|
53776
|
+
exports.RGB_ETC2_Format = RGB_ETC2_Format;
|
|
53777
|
+
exports.RGB_PVRTC_2BPPV1_Format = RGB_PVRTC_2BPPV1_Format;
|
|
53778
|
+
exports.RGB_PVRTC_4BPPV1_Format = RGB_PVRTC_4BPPV1_Format;
|
|
53779
|
+
exports.RGB_S3TC_DXT1_Format = RGB_S3TC_DXT1_Format;
|
|
53780
|
+
exports.RGFormat = RGFormat;
|
|
53781
|
+
exports.RGIntegerFormat = RGIntegerFormat;
|
|
53782
|
+
exports.RawShaderMaterial = RawShaderMaterial;
|
|
53783
|
+
exports.Ray = Ray;
|
|
53784
|
+
exports.Raycaster = Raycaster;
|
|
53785
|
+
exports.Rec709Primaries = Rec709Primaries;
|
|
53786
|
+
exports.RectAreaLight = RectAreaLight;
|
|
53787
|
+
exports.RedFormat = RedFormat;
|
|
53788
|
+
exports.RedIntegerFormat = RedIntegerFormat;
|
|
53789
|
+
exports.ReinhardToneMapping = ReinhardToneMapping;
|
|
53790
|
+
exports.RenderTarget = RenderTarget;
|
|
53791
|
+
exports.RepeatWrapping = RepeatWrapping;
|
|
53792
|
+
exports.ReplaceStencilOp = ReplaceStencilOp;
|
|
53793
|
+
exports.ReverseSubtractEquation = ReverseSubtractEquation;
|
|
53794
|
+
exports.RingGeometry = RingGeometry;
|
|
53795
|
+
exports.SIGNED_RED_GREEN_RGTC2_Format = SIGNED_RED_GREEN_RGTC2_Format;
|
|
53796
|
+
exports.SIGNED_RED_RGTC1_Format = SIGNED_RED_RGTC1_Format;
|
|
53797
|
+
exports.SRGBColorSpace = SRGBColorSpace;
|
|
53798
|
+
exports.SRGBTransfer = SRGBTransfer;
|
|
53799
|
+
exports.Scene = Scene;
|
|
53800
|
+
exports.ShaderChunk = ShaderChunk;
|
|
53801
|
+
exports.ShaderLib = ShaderLib;
|
|
53802
|
+
exports.ShaderMaterial = ShaderMaterial;
|
|
53803
|
+
exports.ShadowMaterial = ShadowMaterial;
|
|
53804
|
+
exports.Shape = Shape;
|
|
53805
|
+
exports.ShapeGeometry = ShapeGeometry;
|
|
53806
|
+
exports.ShapePath = ShapePath;
|
|
53807
|
+
exports.ShapeUtils = ShapeUtils;
|
|
53808
|
+
exports.ShortType = ShortType;
|
|
53809
|
+
exports.Skeleton = Skeleton;
|
|
53810
|
+
exports.SkeletonHelper = SkeletonHelper;
|
|
53811
|
+
exports.SkinnedMesh = SkinnedMesh;
|
|
53812
|
+
exports.Source = Source;
|
|
53813
|
+
exports.Sphere = Sphere;
|
|
53814
|
+
exports.SphereGeometry = SphereGeometry;
|
|
53815
|
+
exports.Spherical = Spherical;
|
|
53816
|
+
exports.SphericalHarmonics3 = SphericalHarmonics3;
|
|
53817
|
+
exports.SplineCurve = SplineCurve;
|
|
53818
|
+
exports.SpotLight = SpotLight;
|
|
53819
|
+
exports.SpotLightHelper = SpotLightHelper;
|
|
53820
|
+
exports.Sprite = Sprite;
|
|
53821
|
+
exports.SpriteMaterial = SpriteMaterial;
|
|
53822
|
+
exports.SrcAlphaFactor = SrcAlphaFactor;
|
|
53823
|
+
exports.SrcAlphaSaturateFactor = SrcAlphaSaturateFactor;
|
|
53824
|
+
exports.SrcColorFactor = SrcColorFactor;
|
|
53825
|
+
exports.StaticCopyUsage = StaticCopyUsage;
|
|
53826
|
+
exports.StaticDrawUsage = StaticDrawUsage;
|
|
53827
|
+
exports.StaticReadUsage = StaticReadUsage;
|
|
53828
|
+
exports.StereoCamera = StereoCamera;
|
|
53829
|
+
exports.StreamCopyUsage = StreamCopyUsage;
|
|
53830
|
+
exports.StreamDrawUsage = StreamDrawUsage;
|
|
53831
|
+
exports.StreamReadUsage = StreamReadUsage;
|
|
53832
|
+
exports.StringKeyframeTrack = StringKeyframeTrack;
|
|
53833
|
+
exports.SubtractEquation = SubtractEquation;
|
|
53834
|
+
exports.SubtractiveBlending = SubtractiveBlending;
|
|
53835
|
+
exports.TOUCH = TOUCH;
|
|
53836
|
+
exports.TangentSpaceNormalMap = TangentSpaceNormalMap;
|
|
53837
|
+
exports.TetrahedronGeometry = TetrahedronGeometry;
|
|
53838
|
+
exports.Texture = Texture;
|
|
53839
|
+
exports.TextureLoader = TextureLoader;
|
|
53840
|
+
exports.TorusGeometry = TorusGeometry;
|
|
53841
|
+
exports.TorusKnotGeometry = TorusKnotGeometry;
|
|
53842
|
+
exports.Triangle = Triangle;
|
|
53843
|
+
exports.TriangleFanDrawMode = TriangleFanDrawMode;
|
|
53844
|
+
exports.TriangleStripDrawMode = TriangleStripDrawMode;
|
|
53845
|
+
exports.TrianglesDrawMode = TrianglesDrawMode;
|
|
53846
|
+
exports.TubeGeometry = TubeGeometry;
|
|
53847
|
+
exports.UVMapping = UVMapping;
|
|
53848
|
+
exports.Uint16BufferAttribute = Uint16BufferAttribute;
|
|
53849
|
+
exports.Uint32BufferAttribute = Uint32BufferAttribute;
|
|
53850
|
+
exports.Uint8BufferAttribute = Uint8BufferAttribute;
|
|
53851
|
+
exports.Uint8ClampedBufferAttribute = Uint8ClampedBufferAttribute;
|
|
53852
|
+
exports.Uniform = Uniform;
|
|
53853
|
+
exports.UniformsGroup = UniformsGroup;
|
|
53854
|
+
exports.UniformsLib = UniformsLib;
|
|
53855
|
+
exports.UniformsUtils = UniformsUtils;
|
|
53856
|
+
exports.UnsignedByteType = UnsignedByteType;
|
|
53857
|
+
exports.UnsignedInt248Type = UnsignedInt248Type;
|
|
53858
|
+
exports.UnsignedIntType = UnsignedIntType;
|
|
53859
|
+
exports.UnsignedShort4444Type = UnsignedShort4444Type;
|
|
53860
|
+
exports.UnsignedShort5551Type = UnsignedShort5551Type;
|
|
53861
|
+
exports.UnsignedShortType = UnsignedShortType;
|
|
53862
|
+
exports.VSMShadowMap = VSMShadowMap;
|
|
53863
|
+
exports.Vector2 = Vector2;
|
|
53864
|
+
exports.Vector3 = Vector3;
|
|
53865
|
+
exports.Vector4 = Vector4;
|
|
53866
|
+
exports.VectorKeyframeTrack = VectorKeyframeTrack;
|
|
53867
|
+
exports.VideoTexture = VideoTexture;
|
|
53868
|
+
exports.WebGL1Renderer = WebGL1Renderer;
|
|
53869
|
+
exports.WebGL3DRenderTarget = WebGL3DRenderTarget;
|
|
53870
|
+
exports.WebGLArrayRenderTarget = WebGLArrayRenderTarget;
|
|
53871
|
+
exports.WebGLCoordinateSystem = WebGLCoordinateSystem;
|
|
53872
|
+
exports.WebGLCubeRenderTarget = WebGLCubeRenderTarget;
|
|
53873
|
+
exports.WebGLMultipleRenderTargets = WebGLMultipleRenderTargets;
|
|
53874
|
+
exports.WebGLRenderTarget = WebGLRenderTarget;
|
|
53875
|
+
exports.WebGLRenderer = WebGLRenderer;
|
|
53876
|
+
exports.WebGLUtils = WebGLUtils;
|
|
53877
|
+
exports.WebGPUCoordinateSystem = WebGPUCoordinateSystem;
|
|
53878
|
+
exports.WireframeGeometry = WireframeGeometry;
|
|
53879
|
+
exports.WrapAroundEnding = WrapAroundEnding;
|
|
53880
|
+
exports.ZeroCurvatureEnding = ZeroCurvatureEnding;
|
|
53881
|
+
exports.ZeroFactor = ZeroFactor;
|
|
53882
|
+
exports.ZeroSlopeEnding = ZeroSlopeEnding;
|
|
53883
|
+
exports.ZeroStencilOp = ZeroStencilOp;
|
|
53884
|
+
exports._SRGBAFormat = _SRGBAFormat;
|
|
53885
|
+
exports.createCanvasElement = createCanvasElement;
|
|
53886
|
+
exports.sRGBEncoding = sRGBEncoding;
|