extends Sprite2D @export var size := 512 @export var export_path = "" func _ready() -> void: var image = Image.create_empty(size, size, false, Image.FORMAT_RGBA8) # 放射性 point light,圆心 alpha 通道为 1,随半径增加逐渐接近 0 var r = size / 2.0 for x in range(size): for y in range(size): var rate = pow(pow(x - r, 2) + pow(y - r, 2), 0.5) / r if rate > 1: image.set_pixel(x, y, Color.TRANSPARENT) else: # var a = 1 - rate var a = smoothstep(1.0, 0.0, rate) image.set_pixel(x, y, Color(1, 1, 1, a)) if export_path: image.save_png(export_path) texture = ImageTexture.create_from_image(image)