用 Rust 實現簡單的光線追蹤

貓冬發表於2021-05-05

學 Rust 十來天了,自己被這個語言驚豔到,就跟著教程 Ray Tracing in One Weekend 寫了個很簡陋的光線追蹤示例練習,專案在 Latias94/rust_raytracing

學這門語言的時候,感覺就是上手容易遇到很多新概念,容易學不下去,跟編譯器作鬥爭...不過作為一個還很新的系統程式語言,工具鏈如文章、包管理、格式化、編譯器等很完善,官方教程很棒,社群也很活躍。

學 Rust 的契機其實是在 V2EX 上看到有人在糾結學 Go 還是 Rust,底下的帖子也有不少誇 Rust 語言的,因此自己也開始關注 Rust 語言。後來發現 Rust 的用武之地非常廣,Github 上還能找到不少 Rust 做的遊戲引擎,其中一部分主打 ECS 功能,例如:bevyengine/bevyRalith/hecs 等。

學習 Rust 語言,其實也是在瞭解一個現代化的語言該有的樣子,瞭解 C++ 或其他語言部分設計上的不足,以及 Rust 是打算如何從根源解決這些問題的。這部分我作為一個初學者,不打算展開講。大家有空可以瞭解一下 Rust 語言,看看官方的教程《Rust 程式設計語言》

總而言之,我覺得光線追蹤的教程可以作為學一門新語言後嚴肅學習的專案,做完成就感也滿滿!

順便推薦一篇好文:新技術學習不完全指北:以 Rust 為例

最後放下示例的渲染圖: enter image description here

五一勞動節快樂!

相關文章