Skip to content

Parameterize fragment shader output - #374

Open
jdahlstrom wants to merge 68 commits into
devfrom
frag-out
Open

Parameterize fragment shader output#374
jdahlstrom wants to merge 68 commits into
devfrom
frag-out

Conversation

@jdahlstrom

Copy link
Copy Markdown
Owner

No description provided.

jdahlstrom added 30 commits May 14, 2026 15:06
Directional, point, and spot lights are implemented.
This allows passing light, material, etc. information to the fragment shader.
Adds functions to Text:

* render() for simple 2D rendering
* batch() for more customized rendering
* shader() returning a suitable shader

Other improvements:

* finish anchor/alignment support
* color field to easily set text color
The stats printing code has a fairly large binary footprint.
Collecting the stats may also have a slight performance impact.
jdahlstrom added 26 commits July 7, 2026 20:51
The `line` function did not properly interpolate vertex attributes,
including depth. This led to visual errors especially when drawing
lines together with other geometry.

Resolves #324.
Keys 1 to 5 toggle various visualizations.
0 toggles rendering of the mesh itself.
Refactor the animation+debug state in solids to a new type.
col_vec has a pretty unfortunate implementation due to const limitations...
If the last row is 0, ..., 1 (which should always be for affine matrices)
inverse and determinant calculations can be simplified quite a bit.
Add a comprehensive API overview to the module docs.
These use Cramer's rule to solve Mx = y without computing the full inverse.
* Parameterize Target with input color
* Add FragmentOut associated type to FragmentShader
* Rename VertexShader::Output to VertexOut to match
* Use different names to avoid ambiguities with combined shaders
* Change most shaders in demos to output Color3

Unfortunately Some() wrapping is now needed, as there's no simple way
implement a generic impl with Into<Option>. Will need to think how to
restore the convenience and whether the ability to discard fragments
is even that useful in the end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant