diff --git a/src/ray.rs b/src/ray.rs new file mode 100644 index 0000000..2b4eecf --- /dev/null +++ b/src/ray.rs @@ -0,0 +1,15 @@ +use nalgebra::Vector4; + +#[derive(Copy, Clone)] +pub struct Ray { + a: Vector4, + b: Vector4, +} +impl Ray { + fn new(_a: Vector4, _b: Vector4) -> Ray { + Ray { a: _a, b: _b } + } + fn point_at_paremeter(&self, t: f32) -> Vector4 { + self.a + t * self.b + } +} diff --git a/src/shader.wsgl b/src/shader.wsgl new file mode 100644 index 0000000..f84ccfe --- /dev/null +++ b/src/shader.wsgl @@ -0,0 +1,11 @@ +@vertex +fn vs_main(@builtin(vertex_index) in_vertex_index: u32) -> @builtin(position) vec4 { + let x = f32(i32(in_vertex_index) - 1); + let y = f32(i32(in_vertex_index & 1u) * 2 - 1); + return vec4(x, y, 0.0, 1.0); +} + +@fragment +fn fs_main() -> @location(0) vec4 { + return vec4(1.0, 0.0, 0.0, 1.0); +}