@@ -3,11 +3,11 @@ use core::{array::from_fn, ops::ControlFlow::Continue};
33use re:: prelude:: * ;
44
55use re:: math:: rand:: { Distrib , PointsInUnitBall , Xorshift64 } ;
6- use re:: render:: { Model , ModelToView , ViewToProj , cam:: * , render} ;
6+ use re:: render:: { ModelToView , ViewToProj , cam:: * , render} ;
77use re_front:: minifb:: Window ;
88
99fn main ( ) {
10- let verts: [ Vec2 < Model > ; 4 ] = [
10+ let verts: [ Vec2 < View > ; 4 ] = [
1111 vec2 ( -1.0 , -1.0 ) ,
1212 vec2 ( -1.0 , 1.0 ) ,
1313 vec2 ( 1.0 , -1.0 ) ,
@@ -32,23 +32,6 @@ fn main() {
3232 . build ( )
3333 . expect ( "should create window" ) ;
3434
35- let shader = shader:: new (
36- |v : Vertex3 < Vec2 < _ > > ,
37- ( mv, proj) : ( & Mat4x4 < ModelToView > , & Mat4x4 < ViewToProj > ) | {
38- let vertex_pos = 0.008 * v. attrib . to_vec3 ( ) . to ( ) ;
39- let view_pos = mv. apply_pt ( & v. pos ) + vertex_pos;
40- vertex ( proj. apply ( & view_pos) , v. attrib )
41- } ,
42- |frag : Frag < Vec2 < _ > > | {
43- let d2 = frag. var . len_sqr ( ) ;
44- ( d2 < 1.0 ) . then ( || {
45- // TODO ops trait for colors
46- let col: Vec3 = splat ( 1.0 ) - d2 * vec3 ( 0.25 , 0.5 , 1.0 ) ;
47- rgba ( col. x ( ) , col. y ( ) , col. z ( ) , 1.0 ) . to_color4 ( )
48- } )
49- } ,
50- ) ;
51-
5235 let ( w, h) = win. dims ;
5336 let cam = Camera :: new ( win. dims )
5437 . transform ( translate ( 0.5 * Vec3 :: Z ) . to ( ) )
@@ -58,6 +41,22 @@ fn main() {
5841 win. run ( |frame| {
5942 let theta = rads ( frame. t . as_secs_f32 ( ) ) ;
6043
44+ let shader = shader:: new (
45+ |v : Vertex3 < Vec2 < _ > > ,
46+ ( mv, proj) : ( & Mat4x4 < ModelToView > , & Mat4x4 < ViewToProj > ) | {
47+ let vertex_pos = 0.008 * v. attrib . to_vec3 ( ) ;
48+ let view_pos = mv. apply_pt ( & v. pos ) + vertex_pos;
49+ vertex ( proj. apply ( & view_pos) , v. attrib )
50+ } ,
51+ |frag : Frag < Vec2 < _ > > , _| {
52+ let d2 = frag. var . len_sqr ( ) ;
53+ ( d2 < 1.0 ) . then ( || {
54+ let col = color:: gray ( 1.0 ) - d2 * rgb ( 0.25 , 0.5 , 1.0 ) ;
55+ col. to_color4 ( )
56+ } )
57+ } ,
58+ ) ;
59+
6160 let modelview = rotate_x ( theta * 0.2 )
6261 . then ( & rotate_z ( theta * 0.14 ) )
6362 . to ( )
0 commit comments