You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
699 B
GDScript

extends MeshInstance3D
class_name LevelFog
var rng = RandomNumberGenerator.new()
var mat = get_active_material(0)
func _ready():
var size: int = 8
var data = []
for z in range(size):
data.append(self.create_slice(size))
#var texture = Texture2DArray.new()
#texture.create_from_images(data)
var texture = ImageTexture3D.new()
texture.create(Image.FORMAT_RGB8, size, size, size, false, data)
mat.set_shader_parameter("u_texture", texture)
func create_slice(size):
var image = Image.new()
image.create(size, size, false, Image.FORMAT_RGB8)
for x in range(size):
for y in range(size):
image.set_pixel(x, y, Color.from_hsv(rng.randf(), rng.randf(), rng.randf()))
return image