very starty setup
This commit is contained in:
30
root.gd
Normal file
30
root.gd
Normal file
@@ -0,0 +1,30 @@
|
||||
extends Node2D
|
||||
|
||||
@onready var sim_viewport := $SubViewport
|
||||
@onready var display_sprite := $Sprite2D
|
||||
|
||||
var tex_a: Texture2D
|
||||
var tex_b: Texture2D
|
||||
var swap = false
|
||||
|
||||
func _ready():
|
||||
# Create textures
|
||||
tex_a = ImageTexture.create_from_image(
|
||||
Image.create(sim_viewport.size.x, sim_viewport.size.y, false, Image.FORMAT_RGBAF)
|
||||
)
|
||||
tex_b = tex_a.duplicate()
|
||||
|
||||
# Assign one texture to the simulation shader as input
|
||||
$SubViewport/ColorRect.material.set("shader_parameter/trail_tex", tex_a)
|
||||
display_sprite.texture = tex_a
|
||||
|
||||
func _process(_delta):
|
||||
# Swap textures each frame
|
||||
swap = !swap
|
||||
var src = tex_a if swap else tex_b
|
||||
var dst = tex_b if swap else tex_a
|
||||
|
||||
# Assign src as input and dst as render target
|
||||
$SubViewport/ColorRect.material.set("shader_parameter/trail_tex", src)
|
||||
sim_viewport.render_target_update_mode = SubViewport.UPDATE_ALWAYS
|
||||
display_sprite.texture = dst
|
||||
Reference in New Issue
Block a user