Shader: Einfaches Float Node (wie Color) fehlt #72

Closed
opened 2026-09-13 11:50:55 +02:00 by admin · 1 comment

Ein einfaches node mit einem output port der eine zahl repräsentiert (wie bei property), das prinzip ist wie beim color node. Benennung bin ich mir nicht sicher ob "Number" oder "Float" oder "Value"

Ein einfaches node mit einem output port der eine zahl repräsentiert (wie bei property), das prinzip ist wie beim color node. Benennung bin ich mir nicht sicher ob "Number" oder "Float" oder "Value"
admin added the shader label 2026-09-13 11:50:55 +02:00
Owner

Umgesetzt in ccc6dc5 (Wiki 7af6602, Seite Shaders).

Was gebaut ist

Number (Name wie der Behavior-Literal) als Shader-Node nach dem Color-Muster: kein Eingang, ein Param Value (Zahl, Step 0.05, auf dem Node gezeichnet), Ausgang value als float. Im Fragment wird er ein Literal ueber floatLiteral: 0.5, 2.0 (Dezimalpunkt bleibt, sonst ist es in GLSL ein int), -0.25, NaN -> 0.0. Kein Uniform, keine Zeile am Sprite - das ist der Unterschied zu Property. Neu im Debug-Hook: __gm.shader.nodeSettings(id) liest die Param-Zeilen eines Shader-Nodes.

Geprueft, nicht behauptet

./check.sh === CHECK EXIT 0 ===, 855 Tests (vorher 854)
e2e-Schritt 28 allein ALL PASSED - 36 checks (vorher 33), gegen das finale Bundle; nichts in src/, tools/e2e/, tests/ juenger
Pixel roter Color x Number 0.5 -> #800000 byte-genau; Number auf 1 getippt -> #ff0000, byte-gleich mit vorher (Neukompilierung bei Param-Aenderung)
Setting-Zeile nodeSettings('sh-half') = Value: 0.500

Gegenproben, beide beissen an ihrer Stelle: String() statt floatLiteral -> genau der Literal-Test faellt (2 statt 2.0); emit stur 1.0 gegen ein neu gebautes Bundle -> genau "halves the red" faellt mit #ff0000, die anderen 35 bleiben gruen.

Zwei Test-Anker, die der Node aufgedeckt hat

  • Der Negativ-Check "kein Behavior-Node in der Shader-Palette" benutzte Number als Marker - der Behavior-Literal heisst genauso. Marker ist jetzt Boolean.
  • Die Palette scrollt ab zwoelf Eintraegen (ScrollContainer, minHeight 260): der letzte Eintrag lag unter der Maske, locate fand ihn, der Klick ging ins Leere. Schritt 28 tippt jetzt erst den Suchtext. Kein Produktfehler.

Zaehler 720 in README und Wiki Development ist gerechnet (717 + 3); CI misst ihn mit dem Push.

Umgesetzt in `ccc6dc5` (Wiki `7af6602`, Seite *Shaders*). ## Was gebaut ist **`Number`** (Name wie der Behavior-Literal) als Shader-Node nach dem `Color`-Muster: kein Eingang, ein Param `Value` (Zahl, Step 0.05, auf dem Node gezeichnet), Ausgang `value` als float. Im Fragment wird er ein Literal ueber `floatLiteral`: `0.5`, `2.0` (Dezimalpunkt bleibt, sonst ist es in GLSL ein int), `-0.25`, NaN -> `0.0`. Kein Uniform, keine Zeile am Sprite - das ist der Unterschied zu `Property`. Neu im Debug-Hook: `__gm.shader.nodeSettings(id)` liest die Param-Zeilen eines Shader-Nodes. ## Geprueft, nicht behauptet | | | |---|---| | `./check.sh` | `=== CHECK EXIT 0 ===`, 855 Tests (vorher 854) | | e2e-Schritt 28 allein | `ALL PASSED - 36 checks` (vorher 33), gegen das finale Bundle; nichts in `src/`, `tools/e2e/`, `tests/` juenger | | Pixel | roter `Color` x `Number` 0.5 -> `#800000` byte-genau; `Number` auf 1 getippt -> `#ff0000`, byte-gleich mit vorher (Neukompilierung bei Param-Aenderung) | | Setting-Zeile | `nodeSettings('sh-half')` = `Value: 0.500` | Gegenproben, beide beissen an ihrer Stelle: `String()` statt `floatLiteral` -> genau der Literal-Test faellt (`2` statt `2.0`); `emit` stur `1.0` gegen ein neu gebautes Bundle -> genau "halves the red" faellt mit `#ff0000`, die anderen 35 bleiben gruen. ## Zwei Test-Anker, die der Node aufgedeckt hat - Der Negativ-Check "kein Behavior-Node in der Shader-Palette" benutzte `Number` als Marker - der Behavior-Literal heisst genauso. Marker ist jetzt `Boolean`. - Die Palette scrollt ab zwoelf Eintraegen (`ScrollContainer`, minHeight 260): der letzte Eintrag lag unter der Maske, `locate` fand ihn, der Klick ging ins Leere. Schritt 28 tippt jetzt erst den Suchtext. Kein Produktfehler. Zaehler 720 in README und Wiki *Development* ist gerechnet (717 + 3); CI misst ihn mit dem Push.
admin added this to the Development project 2026-09-13 13:43:19 +02:00
admin moved this to Done in Development on 2026-09-13 13:44:22 +02:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#72