2
0
Эх сурвалжийг харах

WebGLRenderer: PointCloudMaterial now uses map.offset/map.repeat. Fixes #6047.

Mr.doob 10 жил өмнө
parent
commit
a8cca4d64e

+ 9 - 0
src/renderers/WebGLRenderer.js

@@ -4696,6 +4696,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 ) {

+ 2 - 2
src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl

@@ -1,5 +1,5 @@
 #ifdef USE_MAP
 
-	gl_FragColor = gl_FragColor * texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) );
+	gl_FragColor = gl_FragColor * texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );
 
-#endif
+#endif

+ 2 - 1
src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl

@@ -1,5 +1,6 @@
 #ifdef USE_MAP
 
+	uniform vec4 offsetRepeat;
 	uniform sampler2D map;
 
-#endif
+#endif

+ 1 - 0
src/renderers/shaders/UniformsLib.js

@@ -80,6 +80,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 },