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

Deprecated UniformsUtils. See #8016.

上级 6078e085
......@@ -848,6 +848,71 @@ export var ImageUtils = {
};
export var UniformsUtils = {
merge: function ( uniforms ) {
console.warn( 'THREE.UniformsUtils.merge() has been deprecated. Use Object.assign() instead.' );
var merged = {};
for ( var u = 0; u < uniforms.length; u ++ ) {
var tmp = this.clone( uniforms[ u ] );
for ( var p in tmp ) {
merged[ p ] = tmp[ p ];
}
}
return merged;
},
clone: function ( uniforms_src ) {
console.warn( 'THREE.UniformsUtils.clone() has been deprecated.' );
var uniforms_dst = {};
for ( var u in uniforms_src ) {
uniforms_dst[ u ] = {};
for ( var p in uniforms_src[ u ] ) {
var parameter_src = uniforms_src[ u ][ p ];
if ( parameter_src && ( parameter_src.isColor ||
parameter_src.isMatrix3 || parameter_src.isMatrix4 ||
parameter_src.isVector2 || parameter_src.isVector3 || parameter_src.isVector4 ||
parameter_src.isTexture ) ) {
uniforms_dst[ u ][ p ] = parameter_src.clone();
} else if ( Array.isArray( parameter_src ) ) {
uniforms_dst[ u ][ p ] = parameter_src.slice();
} else {
uniforms_dst[ u ][ p ] = parameter_src;
}
}
}
return uniforms_dst;
}
};
//
export function Projector () {
......
......@@ -6,7 +6,6 @@ export { WebGLRenderer } from './renderers/WebGLRenderer.js';
export { WebGL2Renderer } from './renderers/WebGL2Renderer.js';
export { ShaderLib } from './renderers/shaders/ShaderLib.js';
export { UniformsLib } from './renderers/shaders/UniformsLib.js';
export { UniformsUtils } from './renderers/shaders/UniformsUtils.js';
export { ShaderChunk } from './renderers/shaders/ShaderChunk.js';
export { FogExp2 } from './scenes/FogExp2.js';
export { Fog } from './scenes/Fog.js';
......
import { Material } from './Material';
import { UniformsUtils } from '../renderers/shaders/UniformsUtils';
/**
* @author alteredq / http://alteredqualia.com/
......@@ -90,7 +89,7 @@ ShaderMaterial.prototype.copy = function ( source ) {
this.fragmentShader = source.fragmentShader;
this.vertexShader = source.vertexShader;
this.uniforms = UniformsUtils.clone( source.uniforms );
this.uniforms = Object.assign( {}, source.uniforms );
this.defines = source.defines;
......
import { ShaderMaterial } from './ShaderMaterial';
import { ShaderChunk } from '../renderers/shaders/ShaderChunk';
import { UniformsLib } from '../renderers/shaders/UniformsLib';
import { UniformsUtils } from '../renderers/shaders/UniformsUtils';
/**
* @author mrdoob / http://mrdoob.com/
......@@ -10,12 +9,12 @@ import { UniformsUtils } from '../renderers/shaders/UniformsUtils';
function ShadowMaterial() {
ShaderMaterial.call( this, {
uniforms: UniformsUtils.merge( [
UniformsLib[ "lights" ],
uniforms: Object.assign( {},
UniformsLib.lights,
{
opacity: { value: 1.0 }
}
] ),
),
vertexShader: ShaderChunk[ 'shadow_vert' ],
fragmentShader: ShaderChunk[ 'shadow_frag' ]
} );
......
import { REVISION, MaxEquation, MinEquation, RGB_ETC1_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT5_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT1_Format, RGB_S3TC_DXT1_Format, SrcAlphaSaturateFactor, OneMinusDstColorFactor, DstColorFactor, OneMinusDstAlphaFactor, DstAlphaFactor, OneMinusSrcAlphaFactor, SrcAlphaFactor, OneMinusSrcColorFactor, SrcColorFactor, OneFactor, ZeroFactor, ReverseSubtractEquation, SubtractEquation, AddEquation, DepthFormat, DepthStencilFormat, LuminanceAlphaFormat, LuminanceFormat, RGBAFormat, RGBFormat, AlphaFormat, HalfFloatType, FloatType, UnsignedIntType, IntType, UnsignedShortType, ShortType, ByteType, UnsignedInt248Type, UnsignedShort565Type, UnsignedShort5551Type, UnsignedShort4444Type, UnsignedByteType, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestFilter, MirroredRepeatWrapping, ClampToEdgeWrapping, RepeatWrapping, FrontFaceDirectionCW, NoBlending, BackSide, DoubleSide, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, NoColors, FlatShading, LinearToneMapping } from '../constants';
import { Matrix4 } from '../math/Matrix4';
import { WebGLUniforms } from './webgl/WebGLUniforms';
import { UniformsUtils } from './shaders/UniformsUtils';
import { ShaderLib } from './shaders/ShaderLib';
import { LensFlarePlugin } from './webgl/plugins/LensFlarePlugin';
import { SpritePlugin } from './webgl/plugins/SpritePlugin';
......@@ -1534,7 +1533,7 @@ function WebGLRenderer( parameters ) {
materialProperties.__webglShader = {
name: material.type,
uniforms: UniformsUtils.clone( shader.uniforms ),
uniforms: Object.assign( {}, shader.uniforms ),
vertexShader: shader.vertexShader,
fragmentShader: shader.fragmentShader
};
......
import { ShaderChunk } from './ShaderChunk';
import { UniformsUtils } from './UniformsUtils';
import { Vector3 } from '../../math/Vector3';
import { UniformsLib } from './UniformsLib';
import { Color } from '../../math/Color';
......@@ -14,13 +13,11 @@ var ShaderLib = {
basic: {
uniforms: UniformsUtils.merge( [
uniforms: Object.assign( {},
UniformsLib.common,
UniformsLib.aomap,
UniformsLib.fog
] ),
),
vertexShader: ShaderChunk.meshbasic_vert,
fragmentShader: ShaderChunk.meshbasic_frag
......@@ -29,20 +26,17 @@ var ShaderLib = {
lambert: {
uniforms: UniformsUtils.merge( [
uniforms: Object.assign( {},
UniformsLib.common,
UniformsLib.aomap,
UniformsLib.lightmap,
UniformsLib.emissivemap,
UniformsLib.fog,
UniformsLib.lights,
{
emissive : { value: new Color( 0x000000 ) }
}
] ),
),
vertexShader: ShaderChunk.meshlambert_vert,
fragmentShader: ShaderChunk.meshlambert_frag
......@@ -51,8 +45,7 @@ var ShaderLib = {
phong: {
uniforms: UniformsUtils.merge( [
uniforms: Object.assign( {},
UniformsLib.common,
UniformsLib.aomap,
UniformsLib.lightmap,
......@@ -62,14 +55,12 @@ var ShaderLib = {
UniformsLib.displacementmap,
UniformsLib.fog,
UniformsLib.lights,
{
emissive : { value: new Color( 0x000000 ) },
specular : { value: new Color( 0x111111 ) },
shininess: { value: 30 }
}
] ),
),
vertexShader: ShaderChunk.meshphong_vert,
fragmentShader: ShaderChunk.meshphong_frag
......@@ -78,8 +69,7 @@ var ShaderLib = {
standard: {
uniforms: UniformsUtils.merge( [
uniforms: Object.assign( {},
UniformsLib.common,
UniformsLib.aomap,
UniformsLib.lightmap,
......@@ -91,15 +81,13 @@ var ShaderLib = {
UniformsLib.metalnessmap,
UniformsLib.fog,
UniformsLib.lights,
{
emissive : { value: new Color( 0x000000 ) },
roughness: { value: 0.5 },
metalness: { value: 0 },
envMapIntensity : { value: 1 }, // temporary
}
] ),
),
vertexShader: ShaderChunk.meshphysical_vert,
fragmentShader: ShaderChunk.meshphysical_frag
......@@ -108,12 +96,10 @@ var ShaderLib = {
points: {
uniforms: UniformsUtils.merge( [
uniforms: Object.assign( {},
UniformsLib.points,
UniformsLib.fog
] ),
),
vertexShader: ShaderChunk.points_vert,
fragmentShader: ShaderChunk.points_frag
......@@ -122,18 +108,15 @@ var ShaderLib = {
dashed: {
uniforms: UniformsUtils.merge( [
uniforms: Object.assign( {},
UniformsLib.common,
UniformsLib.fog,
{
scale : { value: 1 },
dashSize : { value: 1 },
totalSize: { value: 2 }
}
] ),
),
vertexShader: ShaderChunk.linedashed_vert,
fragmentShader: ShaderChunk.linedashed_frag
......@@ -142,12 +125,10 @@ var ShaderLib = {
depth: {
uniforms: UniformsUtils.merge( [
uniforms: Object.assign( {},
UniformsLib.common,
UniformsLib.displacementmap
] ),
),
vertexShader: ShaderChunk.depth_vert,
fragmentShader: ShaderChunk.depth_frag
......@@ -157,9 +138,7 @@ var ShaderLib = {
normal: {
uniforms: {
opacity : { value: 1.0 }
},
vertexShader: ShaderChunk.normal_vert,
......@@ -203,9 +182,7 @@ var ShaderLib = {
distanceRGBA: {
uniforms: {
lightPos: { value: new Vector3() }
},
vertexShader: ShaderChunk.distanceRGBA_vert,
......@@ -217,16 +194,13 @@ var ShaderLib = {
ShaderLib.physical = {
uniforms: UniformsUtils.merge( [
uniforms: Object.assign( {},
ShaderLib.standard.uniforms,
{
clearCoat: { value: 0 },
clearCoatRoughness: { value: 0 }
}
] ),
),
vertexShader: ShaderChunk.meshphysical_vert,
fragmentShader: ShaderChunk.meshphysical_frag
......
/**
* Uniform Utilities
*/
var UniformsUtils = {
merge: function ( uniforms ) {
var merged = {};
for ( var u = 0; u < uniforms.length; u ++ ) {
var tmp = this.clone( uniforms[ u ] );
for ( var p in tmp ) {
merged[ p ] = tmp[ p ];
}
}
return merged;
},
clone: function ( uniforms_src ) {
var uniforms_dst = {};
for ( var u in uniforms_src ) {
uniforms_dst[ u ] = {};
for ( var p in uniforms_src[ u ] ) {
var parameter_src = uniforms_src[ u ][ p ];
if ( parameter_src && ( parameter_src.isColor ||
parameter_src.isMatrix3 || parameter_src.isMatrix4 ||
parameter_src.isVector2 || parameter_src.isVector3 || parameter_src.isVector4 ||
parameter_src.isTexture ) ) {
uniforms_dst[ u ][ p ] = parameter_src.clone();
} else if ( Array.isArray( parameter_src ) ) {
uniforms_dst[ u ][ p ] = parameter_src.slice();
} else {
uniforms_dst[ u ][ p ] = parameter_src;
}
}
}
return uniforms_dst;
}
};
export { UniformsUtils };
......@@ -6,7 +6,6 @@
import { FrontSide, BackSide, DoubleSide, RGBAFormat, NearestFilter, PCFShadowMap, RGBADepthPacking } from '../../constants';
import { WebGLRenderTarget } from '../WebGLRenderTarget';
import { ShaderMaterial } from '../../materials/ShaderMaterial';
import { UniformsUtils } from '../shaders/UniformsUtils';
import { ShaderLib } from '../shaders/ShaderLib';
import { MeshDepthMaterial } from '../../materials/MeshDepthMaterial';
import { Vector4 } from '../../math/Vector4';
......@@ -64,7 +63,7 @@ function WebGLShadowMap( _renderer, _lights, _objects, capabilities ) {
depthMaterialTemplate.clipping = true;
var distanceShader = ShaderLib[ "distanceRGBA" ];
var distanceUniforms = UniformsUtils.clone( distanceShader.uniforms );
var distanceUniforms = Object.assign( {}, distanceShader.uniforms );
for ( var i = 0; i !== _NumberOfMaterialVariants; ++ i ) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册