<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>shaders on TutorialEdge.net</title><link>https://tutorialedge.net/tags/shaders/</link><description>Recent content in shaders on TutorialEdge.net</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 29 May 2026 10:04:00 +0000</lastBuildDate><atom:link href="https://tutorialedge.net/tags/shaders/index.xml" rel="self" type="application/rss+xml"/><item><title>Part 3 - Drawing Your First Triangle</title><link>https://tutorialedge.net/projects/graphics-with-wgpu-in-rust/part-3-drawing-your-first-triangle/</link><pubDate>Fri, 29 May 2026 10:03:00 +0000</pubDate><guid>https://tutorialedge.net/projects/graphics-with-wgpu-in-rust/part-3-drawing-your-first-triangle/</guid><description>The triangle is the &amp;ldquo;hello world&amp;rdquo; of graphics programming. In this part we define vertex data, upload it to the GPU, write our first shaders in WGSL, and draw a colourful triangle to the screen.
Add bytemuck to Cargo.toml before you start:
Cargo.toml [dependencies] wgpu = &amp;#34;0.20&amp;#34; winit = &amp;#34;0.29&amp;#34; pollster = &amp;#34;0.3&amp;#34; env_logger = &amp;#34;0.11&amp;#34; log = &amp;#34;0.4&amp;#34; bytemuck = { version = &amp;#34;1.14&amp;#34;, features = [&amp;#34;derive&amp;#34;] } ##What is a Vertex Buffer?</description></item><item><title>Part 4 - Colors and Uniforms</title><link>https://tutorialedge.net/projects/graphics-with-wgpu-in-rust/part-4-colors-and-uniforms/</link><pubDate>Fri, 29 May 2026 10:04:00 +0000</pubDate><guid>https://tutorialedge.net/projects/graphics-with-wgpu-in-rust/part-4-colors-and-uniforms/</guid><description>So far our triangle is static. In this part we add a CPU-to-GPU data channel called a uniform buffer, and use it to animate the triangle&amp;rsquo;s colour tint every frame.
##What is a Uniform Buffer? A uniform is a value that stays constant across all vertices and fragments in a single draw call, but can be updated between frames. It&amp;rsquo;s how you pass per-frame data — time, camera position, colour — from your Rust code into the shader.</description></item></channel></rss>