ソースを参照

Add optimizations for debug and release builds, and implement Jamie's plane generation

Ghastrod 1 年間 前
コミット
b52a48bd5c
4 ファイル変更50 行追加2 行削除
  1. 15 0
      Cargo.toml
  2. 8 1
      src/lib.rs
  3. 1 1
      src/shader.wgsl
  4. 26 0
      src/simple_plane.rs

+ 15 - 0
Cargo.toml

@@ -5,6 +5,19 @@ edition = "2021"
 
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
+# Add optimizations for debug builds
+[profile.dev]
+opt-level = 3
+
+
+
+# Add optimizations for release builds
+[profile.release]
+opt-level = 3
+
+
+
+
 [dependencies]
 cfg-if = "1.0.0"
 winit = "0.29.15"
@@ -16,3 +29,5 @@ bytemuck = { version = "1.15.0", features = ["derive"] }
 image = { version = "0.25.0", features = ["rayon"] }
 anyhow = "1.0.81"
 glam = "0.27.0"
+
+

+ 8 - 1
src/lib.rs

@@ -1,6 +1,7 @@
 use std::iter;
 
 use debug_triangle::DEBUG_VERT;
+use simple_plane::generate_jamie_plane;
 use simple_plane::generate_square;
 use wgpu::util::DeviceExt;
 
@@ -348,7 +349,13 @@ impl<'a> State<'a> {
 
         //let vert = generate_simple_plane(0.5, 1);
         //let vert = generate_square();
-        let vert = DEBUG_VERT;
+
+        //let vert = DEBUG_VERT;
+        //println!("{:?}", vert);
+
+        let vert = generate_jamie_plane(2);
+        println!("{:?}", vert);
+
         // Create a buffer with the vertex data
         let vertex_buffer = device.create_buffer_init(
             &wgpu::util::BufferInitDescriptor{

+ 1 - 1
src/shader.wgsl

@@ -24,5 +24,5 @@ fn vs_main(
 
 @fragment
 fn fs_main(in: VertexOutput) -> @location(0) vec4<f32> {
-    return vec4<f32>(in.color, 1.0);
+    return vec4<f32>(0.5,0.2,0.7, 1.0);
 }

+ 26 - 0
src/simple_plane.rs

@@ -47,4 +47,30 @@ pub fn generate_square()->Vec<Vertex>{
         }
     ];
     return vertices;
+}
+
+//Simple plane from Jamie King video: OpenGL Plane Code
+
+pub fn generate_jamie_plane(dimensions:u32)->Vec<Vertex>{
+    let mut vertices: Vec<Vertex> = vec![];
+    let nombre_de_points = dimensions * dimensions;
+
+    let moitie = dimensions / 2;
+    let mut row = 0;
+    let mut column = 0;
+    while row <= dimensions{
+        while column <= dimensions {
+            let x = column as f32 - moitie as f32;
+            let z = row as f32 - moitie as f32;
+            let y = 0.0;
+            let vert = Vertex{
+                position: [x, z, y],
+                color: [1.0, 1.0, 1.0]
+            };
+            vertices.push(vert);
+            column = column + 1;
+        }
+        row = row + 1;
+    }
+    return vertices;
 }