2006-10-17

Joel on Software

這幾天偶然看到有人介紹Joel on Software中譯版網頁. Joel是一個很有經驗的程式開發者, 和專案管理人, 曾經待過微軟參與Excel製作. 老實說一開始還在想這傢伙的文章真的有份量嗎..值得我花時間讀嗎?

後來大概上班時遇到瓶頸, 沒有動力作事情, 就稍稍用了一點時間看...一開始看覺得這位老兄的文筆挺有趣的, 看了之後發現許多論點真的是很值得參考. 從軟體的需求規格, 除錯, UI設計..時程管理, 不要讓老闆對進度有錯誤認知等等.. 我想開發遊戲程式也是軟體開發範疇內, 許多觀點是值得參考的. 有幾點我學到的

  1. 不要輕易說重寫整個程式. (似乎程式設計師常犯的..特別是接別人的系統後)
  2. 撰寫規格文件是重要的
  3. 時程的規劃必須是以小時為單位
  4. 在除錯未完成前, 不寫新功能

既然學到了, 那就做看看吧!

2006-09-28

Before next step

研究了PRT Lighting一段時間了...覺得PRT Lighting效果真是不錯啦....但是目前的演算法有很多限制..最大的限制就是不能處理Local Lighting, 所以目前最主要的運用就是模擬太陽光...

為了能夠打破這個限制..看了一些PRT 的paper. 思考了一些做法, 也嘗試著實作看看..不過目前並沒有一個理想的結果.即使如此, 還是學習到一些新東西或是把遺忘的東西找回來(像是PCA 用到的eigenvalue/eigenvector) . 本來想做個完整的紀錄, 但是自己很懶惰, 所以只把一些看過的鏈結做個整理.

 技術研究先到這裡. 接下來的工作就是把目前的Code做個整理. 最近開始使用 Visual Paradigm for UML community edition 這個免費的UML工具來畫類別圖並嘗試規劃Use case來畫循序圖. 這個工具以免費軟體來說還不錯用 . 希望可以作比較好的規劃.

2006-06-16

加入KDTree和HDR light probe

加入了KDTree來加速ray cast的計算. 這個KDTree算是基本款. 目前是依據polygon數目條件來決定是否切割空間, 且切割平面是取XYZ軸最長軸中間切一半. 不過即使如此, 效能倒是提升不少.

現在也加上載入light probe image 作為光源資訊, 效果就更好了.
light probe image 是下載自這裡
以下是使用不同的light probe 的測試結果


看起來還不錯. 接下來可能會看看D3DX的PRT Engine. 了解一下D3DX PRT Engine提供了哪些更進階演算方式. 這些演算如果都自己做, 可能會暈倒吧orz

2006-05-24

Spherical Harmonics Lighting

看了SH Lighting的paper一段時間了, 總算開始coding了. 其實對於裡面的數學推導還是沒有完全了解. 但是對於SH function 的特性已經有所了解了.
其實目前的code主要還是參考這個網站所提供的範例程式改寫的. 而且使用硬幹的方式作ray casting的計算.
貼上取樣50*50的sample, 4 bands 的SH function, 約花了40~50分鐘計算出的結果(真是有夠慢)






















以下是對照組: 使用標準的phong lighting (per-pixel diffuse lighting)












看起來有點樣子了, 不過效能不佳, 所以接下來要先把那個硬幹的ray casting修改掉, 打算使用KD Tree來作加速.