### Godot version

v4.0.beta.custom_build [2afa17519]

### System information

Windows 10, Forward+, NVIDIA GeForce GTX 1050 Ti (31.0.15.1694)

### Issue description

Attempting to tile multiple noise textures with the same settings will create visible seams between them.

Image of 4 noise textures creating seams between them
![noise_seam](https://user-images.githubusercontent.com/10490534/215283424-5dcd06ca-32be-4bf1-827d-654e3f640e8e.png)

It seems to be due to the values being normalized, as can be seen here:
https://github.com/godotengine/godot/blob/218bef90af2091afde3b1be816c87286c194a2a8/modules/noise/noise.cpp#L87

It would be nice if this could be an option instead of hard coded into the noise texture.

### Steps to reproduce

- Create two Sprite2D
- Give them a noise texture
- Make sure both the texture and the noise object of the two sprites are unique
- Reposition the sprites so their edges connect
- Set the noise offsets to the sprite's position
- Observe the textures seemingly tile well with the exception of a visible seam

### Minimal reproduction project

This test project uses a \@tool script for the `noise` scene to duplicate the texture and noise object on `_ready`.
Reopen the `main` scene to refresh textures.
[noise_seam.zip](https://github.com/godotengine/godot/files/10527941/noise_seam.zip)
void set_noise(Ref<Noise> p_noise);
	Ref<Noise> get_noise();
	void set_width(int p_width);
	void set_height(int p_height);
	void set_invert(bool p_invert);
	bool get_invert() const;
	void set_in_3d_space(bool p_enable);
	bool is_in_3d_space() const;
	void set_generate_mipmaps(bool p_enable);
	bool is_generating_mipmaps() const;
	void set_seamless(bool p_seamless);
	bool get_seamless();
	void set_seamless_blend_skirt(real_t p_blend_skirt);
	real_t get_seamless_blend_skirt();
	void set_as_normal_map(bool p_as_normal_map);
	bool is_normal_map();
	void set_bump_strength(float p_bump_strength);
	float get_bump_strength();
	void set_color_ramp(const Ref<Gradient> &p_gradient);
	Ref<Gradient> get_color_ramp() const;
	int get_width() const override;
	int get_height() const override;
	virtual RID get_rid() const override;
	virtual bool has_alpha() const override { return false; }
	virtual Ref<Image> get_image() const override;
	NoiseTexture2D();
	virtual ~NoiseTexture2D();
};
#endif