提交 c886b840 编写于 作者: M Mr.doob

Updated builds.

上级 5d724d33
......@@ -24179,14 +24179,14 @@ THREE.ShaderLib = {
uniforms: THREE.UniformsUtils.merge( [
THREE.UniformsLib[ "common" ],
THREE.UniformsLib[ "aomap" ],
THREE.UniformsLib[ "fog" ]
THREE.UniformsLib[ 'common' ],
THREE.UniformsLib[ 'aomap' ],
THREE.UniformsLib[ 'fog' ]
] ),
vertexShader: THREE.ShaderChunk['meshbasic_vert'],
fragmentShader: THREE.ShaderChunk['meshbasic_frag']
vertexShader: THREE.ShaderChunk[ 'meshbasic_vert' ],
fragmentShader: THREE.ShaderChunk[ 'meshbasic_frag' ]
},
......@@ -24194,12 +24194,12 @@ THREE.ShaderLib = {
uniforms: THREE.UniformsUtils.merge( [
THREE.UniformsLib[ "common" ],
THREE.UniformsLib[ "aomap" ],
THREE.UniformsLib[ "lightmap" ],
THREE.UniformsLib[ "emissivemap" ],
THREE.UniformsLib[ "fog" ],
THREE.UniformsLib[ "lights" ],
THREE.UniformsLib[ 'common' ],
THREE.UniformsLib[ 'aomap' ],
THREE.UniformsLib[ 'lightmap' ],
THREE.UniformsLib[ 'emissivemap' ],
THREE.UniformsLib[ 'fog' ],
THREE.UniformsLib[ 'lights' ],
{
"emissive" : { type: "c", value: new THREE.Color( 0x000000 ) }
......@@ -24207,8 +24207,8 @@ THREE.ShaderLib = {
] ),
vertexShader: THREE.ShaderChunk['meshlambert_vert'],
fragmentShader: THREE.ShaderChunk['meshlambert_frag']
vertexShader: THREE.ShaderChunk[ 'meshlambert_vert' ],
fragmentShader: THREE.ShaderChunk[ 'meshlambert_frag' ]
},
......@@ -24216,15 +24216,15 @@ THREE.ShaderLib = {
uniforms: THREE.UniformsUtils.merge( [
THREE.UniformsLib[ "common" ],
THREE.UniformsLib[ "aomap" ],
THREE.UniformsLib[ "lightmap" ],
THREE.UniformsLib[ "emissivemap" ],
THREE.UniformsLib[ "bumpmap" ],
THREE.UniformsLib[ "normalmap" ],
THREE.UniformsLib[ "displacementmap" ],
THREE.UniformsLib[ "fog" ],
THREE.UniformsLib[ "lights" ],
THREE.UniformsLib[ 'common' ],
THREE.UniformsLib[ 'aomap' ],
THREE.UniformsLib[ 'lightmap' ],
THREE.UniformsLib[ 'emissivemap' ],
THREE.UniformsLib[ 'bumpmap' ],
THREE.UniformsLib[ 'normalmap' ],
THREE.UniformsLib[ 'displacementmap' ],
THREE.UniformsLib[ 'fog' ],
THREE.UniformsLib[ 'lights' ],
{
"emissive" : { type: "c", value: new THREE.Color( 0x000000 ) },
......@@ -24234,8 +24234,8 @@ THREE.ShaderLib = {
] ),
vertexShader: THREE.ShaderChunk['meshphong_vert'],
fragmentShader: THREE.ShaderChunk['meshphong_frag']
vertexShader: THREE.ShaderChunk[ 'meshphong_vert' ],
fragmentShader: THREE.ShaderChunk[ 'meshphong_frag' ]
},
......@@ -24243,17 +24243,17 @@ THREE.ShaderLib = {
uniforms: THREE.UniformsUtils.merge( [
THREE.UniformsLib[ "common" ],
THREE.UniformsLib[ "aomap" ],
THREE.UniformsLib[ "lightmap" ],
THREE.UniformsLib[ "emissivemap" ],
THREE.UniformsLib[ "bumpmap" ],
THREE.UniformsLib[ "normalmap" ],
THREE.UniformsLib[ "displacementmap" ],
THREE.UniformsLib[ "roughnessmap" ],
THREE.UniformsLib[ "metalnessmap" ],
THREE.UniformsLib[ "fog" ],
THREE.UniformsLib[ "lights" ],
THREE.UniformsLib[ 'common' ],
THREE.UniformsLib[ 'aomap' ],
THREE.UniformsLib[ 'lightmap' ],
THREE.UniformsLib[ 'emissivemap' ],
THREE.UniformsLib[ 'bumpmap' ],
THREE.UniformsLib[ 'normalmap' ],
THREE.UniformsLib[ 'displacementmap' ],
THREE.UniformsLib[ 'roughnessmap' ],
THREE.UniformsLib[ 'metalnessmap' ],
THREE.UniformsLib[ 'fog' ],
THREE.UniformsLib[ 'lights' ],
{
"emissive" : { type: "c", value: new THREE.Color( 0x000000 ) },
......@@ -24264,8 +24264,8 @@ THREE.ShaderLib = {
] ),
vertexShader: THREE.ShaderChunk['meshstandard_vert'],
fragmentShader: THREE.ShaderChunk['meshstandard_frag']
vertexShader: THREE.ShaderChunk[ 'meshstandard_vert' ],
fragmentShader: THREE.ShaderChunk[ 'meshstandard_frag' ]
},
......@@ -24273,13 +24273,13 @@ THREE.ShaderLib = {
uniforms: THREE.UniformsUtils.merge( [
THREE.UniformsLib[ "points" ],
THREE.UniformsLib[ "fog" ]
THREE.UniformsLib[ 'points' ],
THREE.UniformsLib[ 'fog' ]
] ),
vertexShader: THREE.ShaderChunk['points_vert'],
fragmentShader: THREE.ShaderChunk['points_frag']
vertexShader: THREE.ShaderChunk[ 'points_vert' ],
fragmentShader: THREE.ShaderChunk[ 'points_frag' ]
},
......@@ -24287,8 +24287,8 @@ THREE.ShaderLib = {
uniforms: THREE.UniformsUtils.merge( [
THREE.UniformsLib[ "common" ],
THREE.UniformsLib[ "fog" ],
THREE.UniformsLib[ 'common' ],
THREE.UniformsLib[ 'fog' ],
{
"scale" : { type: "1f", value: 1 },
......@@ -24298,8 +24298,8 @@ THREE.ShaderLib = {
] ),
vertexShader: THREE.ShaderChunk['linedashed_vert'],
fragmentShader: THREE.ShaderChunk['linedashed_frag']
vertexShader: THREE.ShaderChunk[ 'linedashed_vert' ],
fragmentShader: THREE.ShaderChunk[ 'linedashed_frag' ]
},
......@@ -24313,8 +24313,8 @@ THREE.ShaderLib = {
},
vertexShader: THREE.ShaderChunk['depth_vert'],
fragmentShader: THREE.ShaderChunk['depth_frag']
vertexShader: THREE.ShaderChunk[ 'depth_vert' ],
fragmentShader: THREE.ShaderChunk[ 'depth_frag' ]
},
......@@ -24326,8 +24326,8 @@ THREE.ShaderLib = {
},
vertexShader: THREE.ShaderChunk['normal_vert'],
fragmentShader: THREE.ShaderChunk['normal_frag']
vertexShader: THREE.ShaderChunk[ 'normal_vert' ],
fragmentShader: THREE.ShaderChunk[ 'normal_frag' ]
},
......@@ -24342,8 +24342,8 @@ THREE.ShaderLib = {
"tFlip": { type: "1f", value: - 1 }
},
vertexShader: THREE.ShaderChunk['cube_vert'],
fragmentShader: THREE.ShaderChunk['cube_frag']
vertexShader: THREE.ShaderChunk[ 'cube_vert' ],
fragmentShader: THREE.ShaderChunk[ 'cube_frag' ]
},
......@@ -24358,8 +24358,8 @@ THREE.ShaderLib = {
"tFlip": { type: "1f", value: - 1 }
},
vertexShader: THREE.ShaderChunk['equirect_vert'],
fragmentShader: THREE.ShaderChunk['equirect_frag']
vertexShader: THREE.ShaderChunk[ 'equirect_vert' ],
fragmentShader: THREE.ShaderChunk[ 'equirect_frag' ]
},
......@@ -24379,8 +24379,8 @@ THREE.ShaderLib = {
uniforms: {},
vertexShader: THREE.ShaderChunk['depthRGBA_vert'],
fragmentShader: THREE.ShaderChunk['depthRGBA_frag']
vertexShader: THREE.ShaderChunk[ 'depthRGBA_vert' ],
fragmentShader: THREE.ShaderChunk[ 'depthRGBA_frag' ]
},
......@@ -24389,12 +24389,12 @@ THREE.ShaderLib = {
uniforms: {
"lightPos": { type: "v3", value: new THREE.Vector3( 0, 0, 0 ) }
"lightPos": { type: "v3", value: new THREE.Vector3() }
},
vertexShader: THREE.ShaderChunk['distanceRGBA_vert'],
fragmentShader: THREE.ShaderChunk['distanceRGBA_frag']
vertexShader: THREE.ShaderChunk[ 'distanceRGBA_vert' ],
fragmentShader: THREE.ShaderChunk[ 'distanceRGBA_frag' ]
}
......@@ -26692,14 +26692,34 @@ THREE.WebGLRenderer = function ( parameters ) {
} else if ( type === 'i' ) {
console.warn( 'THREE.WebGLRenderer: Uniform "i" is now "1i".' );
// console.warn( 'THREE.WebGLRenderer: Uniform "i" is now "1i".' );
_gl.uniform1i( location, value );
} else if ( type === 'f' ) {
console.warn( 'THREE.WebGLRenderer: Uniform "f" is now "1f".' );
// console.warn( 'THREE.WebGLRenderer: Uniform "f" is now "1f".' );
_gl.uniform1f( location, value );
} else if ( type === 'iv1' ) {
// console.warn( 'THREE.WebGLRenderer: Uniform "iv1" is now "1iv".' );
_gl.uniform1iv( location, value );
} else if ( type === 'iv' ) {
// console.warn( 'THREE.WebGLRenderer: Uniform "iv" is now "3iv".' );
_gl.uniform3iv( location, value );
} else if ( type === 'fv1' ) {
// console.warn( 'THREE.WebGLRenderer: Uniform "fv1" is now "1fv".' );
_gl.uniform1fv( location, value );
} else if ( type === 'fv' ) {
// console.warn( 'THREE.WebGLRenderer: Uniform "fv" is now "3fv".' );
_gl.uniform3fv( location, value );
} else if ( type === 'v2' ) {
// single THREE.Vector2
......@@ -26756,26 +26776,6 @@ THREE.WebGLRenderer = function ( parameters ) {
}
} else if ( type === 'iv1' ) {
console.warn( 'THREE.WebGLRenderer: Uniform "iv1" is now "1iv".' );
_gl.uniform1iv( location, value );
} else if ( type === 'iv' ) {
console.warn( 'THREE.WebGLRenderer: Uniform "iv" is now "3iv".' );
_gl.uniform3iv( location, value );
} else if ( type === 'fv1' ) {
console.warn( 'THREE.WebGLRenderer: Uniform "fv1" is now "1fv".' );
_gl.uniform1fv( location, value );
} else if ( type === 'fv' ) {
console.warn( 'THREE.WebGLRenderer: Uniform "fv" is now "3fv".' );
_gl.uniform3fv( location, value );
} else if ( type === 'v2v' ) {
// array of THREE.Vector2
......@@ -31056,8 +31056,7 @@ THREE.LensFlarePlugin = function ( renderer, flares ) {
var state = renderer.state;
var vertexBuffer, elementBuffer;
var program, attributes, uniforms;
var hasVertexTexture;
var shader, program, attributes, uniforms;
var tempTexture, occlusionTexture;
......@@ -31105,193 +31104,99 @@ THREE.LensFlarePlugin = function ( renderer, flares ) {
gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST );
gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST );
hasVertexTexture = gl.getParameter( gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS ) > 0;
var shader;
if ( hasVertexTexture ) {
shader = {
shader = {
vertexShader: [
vertexShader: [
"uniform lowp int renderType;",
"uniform lowp int renderType;",
"uniform vec3 screenPosition;",
"uniform vec2 scale;",
"uniform float rotation;",
"uniform vec3 screenPosition;",
"uniform vec2 scale;",
"uniform float rotation;",
"uniform sampler2D occlusionMap;",
"uniform sampler2D occlusionMap;",
"attribute vec2 position;",
"attribute vec2 uv;",
"attribute vec2 position;",
"attribute vec2 uv;",
"varying vec2 vUV;",
"varying float vVisibility;",
"varying vec2 vUV;",
"varying float vVisibility;",
"void main() {",
"void main() {",
"vUV = uv;",
"vUV = uv;",
"vec2 pos = position;",
"vec2 pos = position;",
"if ( renderType == 2 ) {",
"if ( renderType == 2 ) {",
"vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );",
"vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );",
"visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );",
"vVisibility = visibility.r / 9.0;",
"vVisibility *= 1.0 - visibility.g / 9.0;",
"vVisibility *= visibility.b / 9.0;",
"vVisibility *= 1.0 - visibility.a / 9.0;",
"vVisibility = visibility.r / 9.0;",
"vVisibility *= 1.0 - visibility.g / 9.0;",
"vVisibility *= visibility.b / 9.0;",
"vVisibility *= 1.0 - visibility.a / 9.0;",
"pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;",
"pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;",
"pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;",
"pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;",
"}",
"}",
"gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );",
"gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );",
"}"
"}"
].join( "\n" ),
].join( "\n" ),
fragmentShader: [
fragmentShader: [
"uniform lowp int renderType;",
"uniform lowp int renderType;",
"uniform sampler2D map;",
"uniform float opacity;",
"uniform vec3 color;",
"uniform sampler2D map;",
"uniform float opacity;",
"uniform vec3 color;",
"varying vec2 vUV;",
"varying float vVisibility;",
"varying vec2 vUV;",
"varying float vVisibility;",
"void main() {",
"void main() {",
// pink square
// pink square
"if ( renderType == 0 ) {",
"if ( renderType == 0 ) {",
"gl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );",
"gl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );",
// restore
// restore
"} else if ( renderType == 1 ) {",
"} else if ( renderType == 1 ) {",
"gl_FragColor = texture2D( map, vUV );",
"gl_FragColor = texture2D( map, vUV );",
// flare
// flare
"} else {",
"} else {",
"vec4 texture = texture2D( map, vUV );",
"texture.a *= opacity * vVisibility;",
"gl_FragColor = texture;",
"gl_FragColor.rgb *= color;",
"vec4 texture = texture2D( map, vUV );",
"texture.a *= opacity * vVisibility;",
"gl_FragColor = texture;",
"gl_FragColor.rgb *= color;",
"}",
"}",
"}"
"}"
].join( "\n" )
};
} else {
].join( "\n" )
shader = {
vertexShader: [
"uniform lowp int renderType;",
"uniform vec3 screenPosition;",
"uniform vec2 scale;",
"uniform float rotation;",
"attribute vec2 position;",
"attribute vec2 uv;",
"varying vec2 vUV;",
"void main() {",
"vUV = uv;",
"vec2 pos = position;",
"if ( renderType == 2 ) {",
"pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;",
"pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;",
"}",
"gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );",
"}"
].join( "\n" ),
fragmentShader: [
"precision mediump float;",
"uniform lowp int renderType;",
"uniform sampler2D map;",
"uniform sampler2D occlusionMap;",
"uniform float opacity;",
"uniform vec3 color;",
"varying vec2 vUV;",
"void main() {",
// pink square
"if ( renderType == 0 ) {",
"gl_FragColor = vec4( texture2D( map, vUV ).rgb, 0.0 );",
// restore
"} else if ( renderType == 1 ) {",
"gl_FragColor = texture2D( map, vUV );",
// flare
"} else {",
"float visibility = texture2D( occlusionMap, vec2( 0.5, 0.1 ) ).a;",
"visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) ).a;",
"visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) ).a;",
"visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) ).a;",
"visibility = ( 1.0 - visibility / 4.0 );",
"vec4 texture = texture2D( map, vUV );",
"texture.a *= opacity * visibility;",
"gl_FragColor = texture;",
"gl_FragColor.rgb *= color;",
"}",
"}"
].join( "\n" )
};
}
};
program = createProgram( shader );
......@@ -31335,7 +31240,10 @@ THREE.LensFlarePlugin = function ( renderer, flares ) {
var screenPosition = new THREE.Vector3( 1, 1, 0 ),
screenPositionPixels = new THREE.Vector2( 1, 1 );
var areaToCopy = new THREE.Vector2();
var validArea = new THREE.Box2();
validArea.min.set( 0, 0 );
validArea.max.set( viewport.z - 16, viewport.w - 16 );
if ( program === undefined ) {
......@@ -31383,18 +31291,14 @@ THREE.LensFlarePlugin = function ( renderer, flares ) {
screenPosition.copy( tempPosition );
screenPositionPixels.x = screenPosition.x * halfViewportWidth + halfViewportWidth;
screenPositionPixels.y = screenPosition.y * halfViewportHeight + halfViewportHeight;
// horizontal and vertical coordinate of the lower left corner of the pixels to copy
areaToCopy.x = viewport.x + screenPositionPixels.x - 8; // horizontal coordinate of the lower left corner of the pixels to copy
areaToCopy.y = viewport.y + screenPositionPixels.y - 8; // vertical coordinate of the lower left corner of the pixels to copy
screenPositionPixels.x = viewport.x + ( screenPosition.x * halfViewportWidth ) + halfViewportWidth - 8;
screenPositionPixels.y = viewport.y + ( screenPosition.y * halfViewportHeight ) + halfViewportHeight - 8;
// screen cull
if ( areaToCopy.x > 0 &&
areaToCopy.x < ( viewport.z - 16 ) &&
areaToCopy.y > 0 &&
areaToCopy.y < ( viewport.w - 16 ) ) {
if ( validArea.containsPoint( screenPositionPixels ) === true ) {
// save current RGB to temp texture
......@@ -31402,7 +31306,7 @@ THREE.LensFlarePlugin = function ( renderer, flares ) {
state.bindTexture( gl.TEXTURE_2D, null );
state.activeTexture( gl.TEXTURE1 );
state.bindTexture( gl.TEXTURE_2D, tempTexture );
gl.copyTexImage2D( gl.TEXTURE_2D, 0, gl.RGB, areaToCopy.x, areaToCopy.y, 16, 16, 0 );
gl.copyTexImage2D( gl.TEXTURE_2D, 0, gl.RGB, screenPositionPixels.x, screenPositionPixels.y, 16, 16, 0 );
// render pink quad
......@@ -31421,7 +31325,7 @@ THREE.LensFlarePlugin = function ( renderer, flares ) {
state.activeTexture( gl.TEXTURE0 );
state.bindTexture( gl.TEXTURE_2D, occlusionTexture );
gl.copyTexImage2D( gl.TEXTURE_2D, 0, gl.RGBA, areaToCopy.x, areaToCopy.y, 16, 16, 0 );
gl.copyTexImage2D( gl.TEXTURE_2D, 0, gl.RGBA, screenPositionPixels.x, screenPositionPixels.y, 16, 16, 0 );
// restore graphics
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册