Вобще и в 3.хх нет никакой проблемы сделать динамические шейдерные облака. Делаем отдельную ноду viewport, в нее добавляем sprite (ImageTexture), где пишем любой шейдер.
В скрипте камеры связываем вьюпорт и environment (разметка кода поедет): onready var sky = get_tree().get_root().get_node("main/sky")
func _ready():
var iChannel = sky.get_viewport().get_texture()
self.environment = load("res://default_env.tres") as Environment self.environment.background_sky.set_panorama(iChannel)
В viewport можно добавлять еще сколько угодно sprite с шейдерами или текстурами (например панораму отдаленного ландшафта, cityscape...) и тасовать их между собой как слои, выбирая что будет на каком плане, и даже вращать. Дополнительного кода чтоб все это показывалось не надо.
Выглядеть это все будет как-то так (облака бегут слева направо, за cityscape'ом):
Вобще и в 3.хх нет никакой проблемы сделать динамические шейдерные облака. Делаем отдельную ноду viewport, в нее добавляем sprite (ImageTexture), где пишем любой шейдер.
В скрипте камеры связываем вьюпорт и environment (разметка кода поедет):
onready var sky = get_tree().get_root().get_node("main/sky")
func _ready():
var iChannel = sky.get_viewport().get_texture()
self.environment = load("res://default_env.tres") as Environment
self.environment.background_sky.set_panorama(iChannel)
В viewport можно добавлять еще сколько угодно sprite с шейдерами или текстурами (например панораму отдаленного ландшафта, cityscape...) и тасовать их между собой как слои, выбирая что будет на каком плане, и даже вращать. Дополнительного кода чтоб все это показывалось не надо.
Выглядеть это все будет как-то так (облака бегут слева направо, за cityscape'ом):