Let a shader declare a color the sprite sets (#298)
A shader could only ask its sprites for numbers. A tint, an outline colour or a glow colour had to be built from three Property nodes. - New node Color property next to Property: Name and Default (a colour, white unless picked), output `color`. It becomes a colour row below the Shader dropdown and a vec3 uniform in the program. - Number and colour properties share one set of names. A clash is the existing "Another property is named" problem. - Like Color it cannot feed the Vertex output. - Placed from the palette it is called tint, then tint2. - The preview in the Shader tab shows a colour field for it. Like the sliders it starts at the sprite's value and never writes into the project. - `declaredRows` takes the row builder, so the particle graph keeps its number rows unchanged. Tests: - Gate: 222 files, 3452 tests (3445 + 7) - e2e 28: 89 checks (28l-v: default colour drawn, then the colour the sprite sets) - e2e total 1704, counted (1703 + 1) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4f4c149211
commit
bf27e42e8a
13 files changed
+303
-57
No files matched your search
@@ -215,9 +215,9 @@ describe('compileShader', () => {
|
||||
expect(build.reason).toBe('');
|
||||
const compiled = build.compiled!;
|
||||
expect(compiled.uniforms).toEqual([
|
||||
{ name: 'brightness', default: 1 },
|
||||
{ name: 'contrast', default: 1 },
|
||||
{ name: 'saturation', default: 1 },
|
||||
{ name: 'brightness', kind: 'number', default: 1 },
|
||||
{ name: 'contrast', kind: 'number', default: 1 },
|
||||
{ name: 'saturation', kind: 'number', default: 1 },
|
||||
]);
|
||||
const { fragment } = compiled;
|
||||
for (const name of ['brightness', 'contrast', 'saturation'])
|
||||
|
||||
Reference in new issue
Block a user