Appearance
What are Meshes?
Meshes allow your shader to render custom geometry instead of the default fullscreen triangle. They provide access to actual vertex data — such as position and color — enabling you to create more complex and meaningful visuals in both 2D and 3D contexts.
A mesh is a collection of vertices and faces that define a 2D or 3D object. Each vertex can carry attributes like:
- Position
- Color
- (In future versions: normals, UVs, etc.)
Why Use Meshes?
Using a mesh opens up new possibilities in shader design:
- Visualize custom shapes and models
- Enable the use of vertex shaders
- Animate or distort geometry using vertex inputs
- Represent 3D objects, characters, or abstract structures
Attributes Passed to Shaders
When a mesh is provided, vertex data is passed to your WGSL shader as:
@location(0)→vec3<f32>position@location(1)→vec3<f32>color
You can access this in your @vertex function and pass it to the fragment stage as needed.
What Happens at Runtime
When you upload or select a mesh, Splitshade:
- Parses the
.objfile - Extracts vertex positions and colors
- Passes this data to your vertex shader using WGSL input attributes
See Mesh Usage to learn how to upload and apply your own.