Nori 筆記 (1) Introduction & Assignment 1
Nori - an educational ray tracer
前幾天看到友人 @anj226 的 IG 限時動態,他發了一張看起來是 ray tracing 產生的圖。由於我一直很嚮往電腦圖學的知識,因此忍不住回覆他的限時動態進一步詢詢問。他說,這是 EPFL 的 Nori,是一個教學用的 project。

這讓我想起大二的寒假在 Coursera 上自學機器學習基石,以及大三旁聽作業系統時自我練習 xv6 作業。總之,希望我能複製同樣的模式自學 Nori,但實際上究竟能走多遠,我也不知道。就看這個標題能更新幾篇文章吧。
Assignment 1: Downloading and Compiling Nori
Compilation
第一份作業是環境準備。作業說明中提及了 Git 的使用,然後是說明怎麼編譯程式碼。
錯誤嘗試(已折疊)
下載 repo:https://github.com/wjakob/nori
我的電腦系統使用 Arch Linux,安裝了 cmake 後,照著作業說明來編譯程式碼,但因為 Nori 的 dependency 有許多陳舊的 library,裡面的 cmake 檔案使用了舊的格式,因此需要手動加上 -DCMAKE_POLICY_VERSION_MINIMUM=3.5 的 flag 才能順利編譯。另外,tbb 這個 extension 因為 C++ 版本過舊,編譯時也需要加上 -DCMAKE_CXX_FLAGS="-Wno-error=changes-meaning" 的 flag 才能順利編譯。最終使用的 command 如下:
mkdir build && cd build
cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_CXX_FLAGS="-Wno-error=changes-meaning" ..
make -j
Fork repo:https://github.com/cs440-epfl/nori-base-2026
git clone [email protected]:ktpss95112/nori-base-2026.git
cd nori-base-2026
git submodule update --init --recursive
照作業說明編譯:
mkdir build && cd build
cmake ..
make -j
Create Your First Nori Class
依照作業說明,新增 src/normals.cpp,並貼上指定的程式碼。重新編譯後,即可得到作業要求的彩色兔子。

後記
這大概是最簡單的作業吧。難以想像接下來的作業會有多難多刺激 😵