 					meshBindings.getConstant('diffuseWrapping', SamplerWrapping.REPEAT)
 				);
 				
-				diffuseColor = sampleTexture(diffuseMap,interpolate(vertexUV.xy));
+				if (meshBindings.propertyExists('diffuseUVScale'))
+					uv.scaleBy(meshBindings.getParameter('diffuseUVScale', 2));
+				
+				if (meshBindings.propertyExists('diffuseUVOffset'))
+					uv.incrementBy(meshBindings.getParameter('diffuseUVOffset', 2));
+				
+				diffuseColor = sampleTexture(diffuseMap,interpolate(uv));
 			}
 			else if (meshBindings.propertyExists('diffuseColor'))
 			{

			
			if (meshBindings.propertyExists('diffuseMap'))
			{
				var diffuseMap	: SFloat	= meshBindings.getTextureParameter(
					'diffuseMap',
					meshBindings.getConstant('diffuseFiltering', SamplerFiltering.LINEAR),

	import aerys.minko.type.enum.SamplerFiltering;
	import aerys.minko.type.enum.SamplerMipMapping;
	import aerys.minko.type.enum.SamplerWrapping;
	
	public class DiffuseShaderPart extends ShaderPart
	{
