|
@@ -335,6 +335,24 @@
|
|
|
var TangentSpaceNormalMap = 0;
|
|
|
var ObjectSpaceNormalMap = 1;
|
|
|
|
|
|
+ var ZeroStencilOp = 0;
|
|
|
+ var KeepStencilOp = 7680;
|
|
|
+ var ReplaceStencilOp = 7681;
|
|
|
+ var IncrementStencilOp = 7682;
|
|
|
+ var DecrementStencilOp = 7683;
|
|
|
+ var IncrementWrapStencilOp = 34055;
|
|
|
+ var DecrementWrapStencilOp = 34056;
|
|
|
+ var InvertStencilOp = 5386;
|
|
|
+
|
|
|
+ var NeverStencilFunc = 512;
|
|
|
+ var LessStencilFunc = 513;
|
|
|
+ var EqualStencilFunc = 514;
|
|
|
+ var LessEqualStencilFunc = 515;
|
|
|
+ var GreaterStencilFunc = 516;
|
|
|
+ var NotEqualStencilFunc = 517;
|
|
|
+ var GreaterEqualStencilFunc = 518;
|
|
|
+ var AlwaysStencilFunc = 519;
|
|
|
+
|
|
|
/**
|
|
|
* @author alteredq / http://alteredqualia.com/
|
|
|
* @author mrdoob / http://mrdoob.com/
|
|
@@ -8567,6 +8585,14 @@
|
|
|
this.depthTest = true;
|
|
|
this.depthWrite = true;
|
|
|
|
|
|
+ this.stencilFunc = AlwaysStencilFunc;
|
|
|
+ this.stencilRef = 0;
|
|
|
+ this.stencilMask = 0xff;
|
|
|
+ this.stencilFail = KeepStencilOp;
|
|
|
+ this.stencilZFail = KeepStencilOp;
|
|
|
+ this.stencilZPass = KeepStencilOp;
|
|
|
+ this.stencilWrite = false;
|
|
|
+
|
|
|
this.clippingPlanes = null;
|
|
|
this.clipIntersection = false;
|
|
|
this.clipShadows = false;
|
|
@@ -8766,6 +8792,14 @@
|
|
|
data.depthTest = this.depthTest;
|
|
|
data.depthWrite = this.depthWrite;
|
|
|
|
|
|
+ data.stencilWrite = this.stencilWrite;
|
|
|
+ data.stencilFunc = this.stencilFunc;
|
|
|
+ data.stencilRef = this.stencilRef;
|
|
|
+ data.stencilMask = this.stencilMask;
|
|
|
+ data.stencilFail = this.stencilFail;
|
|
|
+ data.stencilZFail = this.stencilZFail;
|
|
|
+ data.stencilZPass = this.stencilZPass;
|
|
|
+
|
|
|
// rotation (SpriteMaterial)
|
|
|
if ( this.rotation && this.rotation !== 0 ) data.rotation = this.rotation;
|
|
|
|
|
@@ -8859,6 +8893,14 @@
|
|
|
this.depthTest = source.depthTest;
|
|
|
this.depthWrite = source.depthWrite;
|
|
|
|
|
|
+ this.stencilWrite = source.stencilWrite;
|
|
|
+ this.stencilFunc = source.stencilFunc;
|
|
|
+ this.stencilRef = source.stencilRef;
|
|
|
+ this.stencilMask = source.stencilMask;
|
|
|
+ this.stencilFail = source.stencilFail;
|
|
|
+ this.stencilZFail = source.stencilZFail;
|
|
|
+ this.stencilZPass = source.stencilZPass;
|
|
|
+
|
|
|
this.colorWrite = source.colorWrite;
|
|
|
|
|
|
this.precision = source.precision;
|
|
@@ -12129,8 +12171,6 @@
|
|
|
vertices2 = geometry.vertices,
|
|
|
faces1 = this.faces,
|
|
|
faces2 = geometry.faces,
|
|
|
- uvs1 = this.faceVertexUvs[ 0 ],
|
|
|
- uvs2 = geometry.faceVertexUvs[ 0 ],
|
|
|
colors1 = this.colors,
|
|
|
colors2 = geometry.colors;
|
|
|
|
|
@@ -12212,23 +12252,25 @@
|
|
|
|
|
|
// uvs
|
|
|
|
|
|
- for ( i = 0, il = uvs2.length; i < il; i ++ ) {
|
|
|
+ for ( var i = 0, il = geometry.faceVertexUvs.length; i < il; i ++ ) {
|
|
|
|
|
|
- var uv = uvs2[ i ], uvCopy = [];
|
|
|
+ var faceVertexUvs2 = geometry.faceVertexUvs[ i ];
|
|
|
|
|
|
- if ( uv === undefined ) {
|
|
|
+ if ( this.faceVertexUvs[ i ] === undefined ) this.faceVertexUvs[ i ] = [];
|
|
|
|
|
|
- continue;
|
|
|
+ for ( var j = 0, jl = faceVertexUvs2.length; j < jl; j ++ ) {
|
|
|
|
|
|
- }
|
|
|
+ var uvs2 = faceVertexUvs2[ j ], uvsCopy = [];
|
|
|
|
|
|
- for ( var j = 0, jl = uv.length; j < jl; j ++ ) {
|
|
|
+ for ( var k = 0, kl = uvs2.length; k < kl; k ++ ) {
|
|
|
|
|
|
- uvCopy.push( uv[ j ].clone() );
|
|
|
+ uvsCopy.push( uvs2[ k ].clone() );
|
|
|
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+ this.faceVertexUvs[ i ].push( uvsCopy );
|
|
|
|
|
|
- uvs1.push( uvCopy );
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -16192,22 +16234,18 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
- function getWireframeAttribute( geometry ) {
|
|
|
-
|
|
|
- var attribute = wireframeAttributes[ geometry.id ];
|
|
|
-
|
|
|
- if ( attribute ) return attribute;
|
|
|
+ function updateWireframeAttribute( geometry ) {
|
|
|
|
|
|
var indices = [];
|
|
|
|
|
|
var geometryIndex = geometry.index;
|
|
|
- var geometryAttributes = geometry.attributes;
|
|
|
-
|
|
|
- // console.time( 'wireframe' );
|
|
|
+ var geometryPosition = geometry.attributes.position;
|
|
|
+ var version = 0;
|
|
|
|
|
|
if ( geometryIndex !== null ) {
|
|
|
|
|
|
var array = geometryIndex.array;
|
|
|
+ version = geometryIndex.version;
|
|
|
|
|
|
for ( var i = 0, l = array.length; i < l; i += 3 ) {
|
|
|
|
|
@@ -16221,7 +16259,8 @@
|
|
|
|
|
|
} else {
|
|
|
|
|
|
- var array = geometryAttributes.position.array;
|
|
|
+ var array = geometryPosition.array;
|
|
|
+ version = geometryPosition.version;
|
|
|
|
|
|
for ( var i = 0, l = ( array.length / 3 ) - 1; i < l; i += 3 ) {
|
|
|
|
|
@@ -16235,15 +16274,50 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
- // console.timeEnd( 'wireframe' );
|
|
|
-
|
|
|
- attribute = new ( arrayMax( indices ) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute )( indices, 1 );
|
|
|
+ var attribute = new ( arrayMax( indices ) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute )( indices, 1 );
|
|
|
+ attribute.version = version;
|
|
|
|
|
|
attributes.update( attribute, 34963 );
|
|
|
|
|
|
+ //
|
|
|
+
|
|
|
+ var previousAttribute = wireframeAttributes[ geometry.id ];
|
|
|
+
|
|
|
+ if ( previousAttribute ) attributes.remove( previousAttribute );
|
|
|
+
|
|
|
+ //
|
|
|
+
|
|
|
wireframeAttributes[ geometry.id ] = attribute;
|
|
|
|
|
|
- return attribute;
|
|
|
+ }
|
|
|
+
|
|
|
+ function getWireframeAttribute( geometry ) {
|
|
|
+
|
|
|
+ var currentAttribute = wireframeAttributes[ geometry.id ];
|
|
|
+
|
|
|
+ if ( currentAttribute ) {
|
|
|
+
|
|
|
+ var geometryIndex = geometry.index;
|
|
|
+
|
|
|
+ if ( geometryIndex !== null ) {
|
|
|
+
|
|
|
+ // if the attribute is obsolete, create a new one
|
|
|
+
|
|
|
+ if ( currentAttribute.version < geometryIndex.version ) {
|
|
|
+
|
|
|
+ updateWireframeAttribute( geometry );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ updateWireframeAttribute( geometry );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return wireframeAttributes[ geometry.id ];
|
|
|
|
|
|
}
|
|
|
|
|
@@ -17750,7 +17824,7 @@
|
|
|
|
|
|
function WebGLProgram( renderer, extensions, code, material, shader, parameters, capabilities ) {
|
|
|
|
|
|
- var gl = renderer.context;
|
|
|
+ var gl = renderer.getContext();
|
|
|
|
|
|
var defines = material.defines;
|
|
|
|
|
@@ -20561,6 +20635,15 @@
|
|
|
depthBuffer.setMask( material.depthWrite );
|
|
|
colorBuffer.setMask( material.colorWrite );
|
|
|
|
|
|
+ var stencilWrite = material.stencilWrite;
|
|
|
+ stencilBuffer.setTest( stencilWrite );
|
|
|
+ if ( stencilWrite ) {
|
|
|
+
|
|
|
+ stencilBuffer.setFunc( material.stencilFunc, material.stencilRef, material.stencilMask );
|
|
|
+ stencilBuffer.setOp( material.stencilFail, material.stencilZFail, material.stencilZPass );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
setPolygonOffset( material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits );
|
|
|
|
|
|
}
|
|
@@ -22720,12 +22803,10 @@
|
|
|
* @author mrdoob / http://mrdoob.com/
|
|
|
*/
|
|
|
|
|
|
- function WebXRManager( renderer ) {
|
|
|
+ function WebXRManager( renderer, gl ) {
|
|
|
|
|
|
var scope = this;
|
|
|
|
|
|
- var gl = renderer.context;
|
|
|
-
|
|
|
var session = null;
|
|
|
|
|
|
var referenceSpace = null;
|
|
@@ -23067,7 +23148,6 @@
|
|
|
// public properties
|
|
|
|
|
|
this.domElement = _canvas;
|
|
|
- this.context = null;
|
|
|
|
|
|
// Debug configuration container
|
|
|
this.debug = {
|
|
@@ -23290,7 +23370,6 @@
|
|
|
|
|
|
info.programs = programCache.programs;
|
|
|
|
|
|
- _this.context = _gl;
|
|
|
_this.capabilities = capabilities;
|
|
|
_this.extensions = extensions;
|
|
|
_this.properties = properties;
|
|
@@ -23304,7 +23383,7 @@
|
|
|
|
|
|
// vr
|
|
|
|
|
|
- var vr = ( typeof navigator !== 'undefined' && 'xr' in navigator && 'supportsSession' in navigator.xr ) ? new WebXRManager( _this ) : new WebVRManager( _this );
|
|
|
+ var vr = ( typeof navigator !== 'undefined' && 'xr' in navigator && 'supportsSession' in navigator.xr ) ? new WebXRManager( _this, _gl ) : new WebVRManager( _this );
|
|
|
|
|
|
this.vr = vr;
|
|
|
|
|
@@ -48483,8 +48562,17 @@
|
|
|
|
|
|
console.warn( 'THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.' );
|
|
|
|
|
|
+ }
|
|
|
+ },
|
|
|
+ context: {
|
|
|
+ get: function () {
|
|
|
+
|
|
|
+ console.warn( 'THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.' );
|
|
|
+ return this.getContext();
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
} );
|
|
|
|
|
|
Object.defineProperties( WebGLShadowMap.prototype, {
|
|
@@ -48881,6 +48969,7 @@
|
|
|
exports.AdditiveBlending = AdditiveBlending;
|
|
|
exports.AlphaFormat = AlphaFormat;
|
|
|
exports.AlwaysDepth = AlwaysDepth;
|
|
|
+ exports.AlwaysStencilFunc = AlwaysStencilFunc;
|
|
|
exports.AmbientLight = AmbientLight;
|
|
|
exports.AmbientLightProbe = AmbientLightProbe;
|
|
|
exports.AnimationClip = AnimationClip;
|
|
@@ -48958,6 +49047,8 @@
|
|
|
exports.DataTexture2DArray = DataTexture2DArray;
|
|
|
exports.DataTexture3D = DataTexture3D;
|
|
|
exports.DataTextureLoader = DataTextureLoader;
|
|
|
+ exports.DecrementStencilOp = DecrementStencilOp;
|
|
|
+ exports.DecrementWrapStencilOp = DecrementWrapStencilOp;
|
|
|
exports.DefaultLoadingManager = DefaultLoadingManager;
|
|
|
exports.DepthFormat = DepthFormat;
|
|
|
exports.DepthStencilFormat = DepthStencilFormat;
|
|
@@ -48976,6 +49067,7 @@
|
|
|
exports.EdgesHelper = EdgesHelper;
|
|
|
exports.EllipseCurve = EllipseCurve;
|
|
|
exports.EqualDepth = EqualDepth;
|
|
|
+ exports.EqualStencilFunc = EqualStencilFunc;
|
|
|
exports.EquirectangularReflectionMapping = EquirectangularReflectionMapping;
|
|
|
exports.EquirectangularRefractionMapping = EquirectangularRefractionMapping;
|
|
|
exports.Euler = Euler;
|
|
@@ -49006,6 +49098,8 @@
|
|
|
exports.GeometryUtils = GeometryUtils;
|
|
|
exports.GreaterDepth = GreaterDepth;
|
|
|
exports.GreaterEqualDepth = GreaterEqualDepth;
|
|
|
+ exports.GreaterEqualStencilFunc = GreaterEqualStencilFunc;
|
|
|
+ exports.GreaterStencilFunc = GreaterStencilFunc;
|
|
|
exports.GridHelper = GridHelper;
|
|
|
exports.Group = Group;
|
|
|
exports.HalfFloatType = HalfFloatType;
|
|
@@ -49018,6 +49112,8 @@
|
|
|
exports.ImageLoader = ImageLoader;
|
|
|
exports.ImageUtils = ImageUtils;
|
|
|
exports.ImmediateRenderObject = ImmediateRenderObject;
|
|
|
+ exports.IncrementStencilOp = IncrementStencilOp;
|
|
|
+ exports.IncrementWrapStencilOp = IncrementWrapStencilOp;
|
|
|
exports.InstancedBufferAttribute = InstancedBufferAttribute;
|
|
|
exports.InstancedBufferGeometry = InstancedBufferGeometry;
|
|
|
exports.InstancedInterleavedBuffer = InstancedInterleavedBuffer;
|
|
@@ -49034,7 +49130,9 @@
|
|
|
exports.InterpolateDiscrete = InterpolateDiscrete;
|
|
|
exports.InterpolateLinear = InterpolateLinear;
|
|
|
exports.InterpolateSmooth = InterpolateSmooth;
|
|
|
+ exports.InvertStencilOp = InvertStencilOp;
|
|
|
exports.JSONLoader = JSONLoader;
|
|
|
+ exports.KeepStencilOp = KeepStencilOp;
|
|
|
exports.KeyframeTrack = KeyframeTrack;
|
|
|
exports.LOD = LOD;
|
|
|
exports.LatheBufferGeometry = LatheBufferGeometry;
|
|
@@ -49043,6 +49141,8 @@
|
|
|
exports.LensFlare = LensFlare;
|
|
|
exports.LessDepth = LessDepth;
|
|
|
exports.LessEqualDepth = LessEqualDepth;
|
|
|
+ exports.LessEqualStencilFunc = LessEqualStencilFunc;
|
|
|
+ exports.LessStencilFunc = LessStencilFunc;
|
|
|
exports.Light = Light;
|
|
|
exports.LightProbe = LightProbe;
|
|
|
exports.LightProbeHelper = LightProbeHelper;
|
|
@@ -49105,11 +49205,13 @@
|
|
|
exports.NearestMipmapLinearFilter = NearestMipmapLinearFilter;
|
|
|
exports.NearestMipmapNearestFilter = NearestMipmapNearestFilter;
|
|
|
exports.NeverDepth = NeverDepth;
|
|
|
+ exports.NeverStencilFunc = NeverStencilFunc;
|
|
|
exports.NoBlending = NoBlending;
|
|
|
exports.NoColors = NoColors;
|
|
|
exports.NoToneMapping = NoToneMapping;
|
|
|
exports.NormalBlending = NormalBlending;
|
|
|
exports.NotEqualDepth = NotEqualDepth;
|
|
|
+ exports.NotEqualStencilFunc = NotEqualStencilFunc;
|
|
|
exports.NumberKeyframeTrack = NumberKeyframeTrack;
|
|
|
exports.Object3D = Object3D;
|
|
|
exports.ObjectLoader = ObjectLoader;
|
|
@@ -49194,6 +49296,7 @@
|
|
|
exports.RedFormat = RedFormat;
|
|
|
exports.ReinhardToneMapping = ReinhardToneMapping;
|
|
|
exports.RepeatWrapping = RepeatWrapping;
|
|
|
+ exports.ReplaceStencilOp = ReplaceStencilOp;
|
|
|
exports.ReverseSubtractEquation = ReverseSubtractEquation;
|
|
|
exports.RingBufferGeometry = RingBufferGeometry;
|
|
|
exports.RingGeometry = RingGeometry;
|
|
@@ -49292,6 +49395,7 @@
|
|
|
exports.ZeroCurvatureEnding = ZeroCurvatureEnding;
|
|
|
exports.ZeroFactor = ZeroFactor;
|
|
|
exports.ZeroSlopeEnding = ZeroSlopeEnding;
|
|
|
+ exports.ZeroStencilOp = ZeroStencilOp;
|
|
|
exports.sRGBEncoding = sRGBEncoding;
|
|
|
|
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|