add dmx color

This commit is contained in:
Philipp Kramer 2025-02-27 15:15:11 +01:00
commit 60284de817
9 changed files with 146 additions and 11 deletions

View file

@ -14,3 +14,8 @@ config/name="ArtNetTest"
run/main_scene="res://scenes/main.tscn"
config/features=PackedStringArray("4.3", "Forward Plus")
config/icon="res://icon.svg"
[display]
window/size/viewport_width=1280
window/size/viewport_height=720

View file

@ -1,10 +1,24 @@
[gd_scene load_steps=2 format=3 uid="uid://dafh3tlcmos4p"]
[gd_scene load_steps=5 format=3 uid="uid://dafh3tlcmos4p"]
[ext_resource type="Script" path="res://scripts/artnet.gd" id="1_hsiae"]
[ext_resource type="Texture2D" uid="uid://buuvoh3jf0f52" path="res://sprites/cross.png" id="2_vgkya"]
[ext_resource type="Texture2D" uid="uid://glyt8h1eag1u" path="res://sprites/pixel.png" id="3_qvw8c"]
[ext_resource type="Script" path="res://scripts/dmx_color.gd" id="4_velje"]
[node name="Node2D" type="Node2D"]
[node name="ArtNet" type="Node" parent="."]
script = ExtResource("1_hsiae")
master = 255
red = 130
ip_destination = "192.168.21.27"
update_frequency = 40
[node name="Point" type="Sprite2D" parent="."]
texture = ExtResource("2_vgkya")
[node name="ColorRect" type="Sprite2D" parent="." node_paths=PackedStringArray("artnet")]
modulate = Color(0.247454, 0.529825, 0.607936, 1)
position = Vector2(162.125, 549.375)
scale = Vector2(283.75, 328.75)
texture = ExtResource("3_qvw8c")
script = ExtResource("4_velje")
artnet = NodePath("../ArtNet")

View file

@ -1,13 +1,8 @@
extends Node2D
extends Node
#nc -ul 2115
var socket = PacketPeerUDP.new()
var data = []
var data = [] #holds dmx channel values. DMX channel 1 is array index 0
@export_range(0,255,1) var master = 0
@export_range(0,255,1) var red = 0
@export_range(0,255,1) var green = 0
@export_range(0,255,1) var blue = 0
@export var ip_destination = "127.0.0.1"
@export_range(1,100,1) var update_frequency=10
@ -26,11 +21,12 @@ func _process(delta: float) -> void:
if last_update_delta>1.0/update_frequency:
last_update_delta=0
'''
setDMXChannel(1,master) #master dimmer
setDMXChannel(3,red) #red
setDMXChannel(4,green) #green
setDMXChannel(5,blue) #blue
'''
sendDMX(data)
func setDMXChannel(ch,val,twobytes:bool=false):

34
scripts/dmx_color.gd Normal file
View file

@ -0,0 +1,34 @@
extends Node2D
@export var artnet:Node
@export_range(0,255,1) var master = 255
@export_range(0,1,0.01) var q = 1.0
var colormix=[
[1.0,0,0], #red
[0,1.0,0], #green
[0,0,1.0], #blue
[1.0,1.0,1.0], #white
[1.0,0.8,0], #amber
]
var colorchannels=[3,4,5,6,7] #same order as colormix
func _process(delta: float) -> void:
var r=modulate.r
var g=modulate.g
var b=modulate.b
#TODO, color mix
artnet.setDMXChannel(1,master) #master dimmer
artnet.setDMXChannel(2,0) #strobo
artnet.setDMXChannel(8,0) #macros
artnet.setDMXChannel(3,modulate.r*255) #red
artnet.setDMXChannel(4,modulate.g*255) #green
artnet.setDMXChannel(5,modulate.b*255) #blue
artnet.setDMXChannel(6,modulate.b*255) #white
artnet.setDMXChannel(7,modulate.b*255) #amber

18
scripts/dmx_movinghead.gd Normal file
View file

@ -0,0 +1,18 @@
extends Node2D
@export var artnet:Node
@export_range(0,255,1) var master = 0
@export_range(0,255,1) var red = 0
@export_range(0,255,1) var green = 0
@export_range(0,255,1) var blue = 0
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
artnet.setDMXChannel(1,master) #master dimmer
artnet.setDMXChannel(3,red) #red
artnet.setDMXChannel(4,green) #green
artnet.setDMXChannel(5,blue) #blue

BIN
sprites/cross.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 B

34
sprites/cross.png.import Normal file
View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://buuvoh3jf0f52"
path="res://.godot/imported/cross.png-7a350973591712bd0fedf6344eb40f07.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://sprites/cross.png"
dest_files=["res://.godot/imported/cross.png-7a350973591712bd0fedf6344eb40f07.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
sprites/pixel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

34
sprites/pixel.png.import Normal file
View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://glyt8h1eag1u"
path="res://.godot/imported/pixel.png-9ba42fb3acbac2c3926b19b63c3183c6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://sprites/pixel.png"
dest_files=["res://.godot/imported/pixel.png-9ba42fb3acbac2c3926b19b63c3183c6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1