|
@@ -16554,7 +16554,7 @@ THREE.ShaderChunk[ 'lights_lambert_vertex'] = "vLightFront = vec3( 0.0 );\n\n#if
|
|
|
|
|
|
// File:src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl
|
|
|
|
|
|
-THREE.ShaderChunk[ 'map_particle_pars_fragment'] = "#ifdef USE_MAP\n\n uniform sampler2D map;\n\n#endif";
|
|
|
+THREE.ShaderChunk[ 'map_particle_pars_fragment'] = "#ifdef USE_MAP\n\n uniform vec4 offsetRepeat;\n uniform sampler2D map;\n\n#endif\n";
|
|
|
|
|
|
// File:src/renderers/shaders/ShaderChunk/default_vertex.glsl
|
|
|
|
|
@@ -16626,7 +16626,7 @@ THREE.ShaderChunk[ 'lightmap_vertex'] = "#ifdef USE_LIGHTMAP\n\n vUv2 = uv2;\n\n
|
|
|
|
|
|
// File:src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl
|
|
|
|
|
|
-THREE.ShaderChunk[ 'map_particle_fragment'] = "#ifdef USE_MAP\n\n gl_FragColor = gl_FragColor * texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) );\n\n#endif";
|
|
|
+THREE.ShaderChunk[ 'map_particle_fragment'] = "#ifdef USE_MAP\n\n gl_FragColor = gl_FragColor * texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\n\n#endif\n";
|
|
|
|
|
|
// File:src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl
|
|
|
|
|
@@ -16905,6 +16905,7 @@ THREE.UniformsLib = {
|
|
|
"size" : { type: "f", value: 1.0 },
|
|
|
"scale" : { type: "f", value: 1.0 },
|
|
|
"map" : { type: "t", value: null },
|
|
|
+ "offsetRepeat" : { type: "v4", value: new THREE.Vector4( 0, 0, 1, 1 ) },
|
|
|
|
|
|
"fogDensity" : { type: "f", value: 0.00025 },
|
|
|
"fogNear" : { type: "f", value: 1 },
|
|
@@ -22411,6 +22412,15 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
uniforms.map.value = material.map;
|
|
|
|
|
|
+ if ( material.map !== null ) {
|
|
|
+
|
|
|
+ var offset = material.map.offset;
|
|
|
+ var repeat = material.map.repeat;
|
|
|
+
|
|
|
+ uniforms.offsetRepeat.value.set( offset.x, offset.y, repeat.x, repeat.y );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
function refreshUniformsFog ( uniforms, fog ) {
|