### Godot version

v4.1.stable.official [970459615]

### System information

Godot v4.1.stable - Windows 10.0.22621 (this is what "copy system info" says, but I'm running Windows 11 Home) - Vulkan (Compatibility) - NVIDIA GeForce RTX 4090 (NVIDIA; 31.0.15.3168) - 12th Gen Intel(R) Core(TM) i7-12700F (20 Threads)

### Issue description

Adding a NoiseTexture3D to a Visual Shader crashes Godot.

### Steps to reproduce

- In a new project, create a "MeshInstance3D"
- Set the mesh to any mesh that has the "Surface Material Overide" property (New BoxMesh for instance)
- In said property, create a "New ShaderMaterial"
- Set the ShaderMaterial's shader to a new shader, with the type: "VisualShader"
- Edit the VisualShader
- Add a Texture3D node
- Set the texture to "New NoiseTexture3D"

Godot then crashes (note, the crash takes place even if you remove the "MeshInstance3D")

### Minimal reproduction project

N/A
Ref<Noise> ref_noise = noise;
	if (ref_noise.is_null()) {
		return TypedArray<Image>();
	}
	Vector<Ref<Image>> images;
	if (seamless) {
		images = ref_noise->_get_seamless_image(width, height, depth, invert, true, seamless_blend_skirt, normalize);
	} else {
		images = ref_noise->_get_image(width, height, depth, invert, true, normalize);
	}
	if (color_ramp.is_valid()) {
		for (int i = 0; i < images.size(); i++) {
			images.write[i] = _modulate_with_gradient(images[i], color_ramp);
		}
	}
	TypedArray<Image> new_data;
	new_data.resize(images.size());
	for (int i = 0; i < new_data.size(); i++) {
		new_data[i] = images[i];
	}
	return new_data;
}
Ref<Image> NoiseTexture3D::_modulate_with_gradient(Ref<Image> p_image, Ref<Gradient> p_gradient) {