栗子現場直播 千篇一栗
有很多簡單的道理,若不是被遺忘,不是察覺不到,就是知易行難。

2009年10月29日 星期四

RayTracer與SubPixel

  這裡講的 RayTracer ,指的是在 3D 繪圖中,從鏡頭射出線條來計算顏色的技巧。這種繪圖技巧,雖然極費 CPU ,但即使是極簡單的 implementation ,也能做出比 PS3 更好的效果。因此,一般的 3D 動畫,都會用上這個技巧。
  題外話,有一次我弄了個 RayTracer 。看著 RayTracer 做出的效果,我以為自己找到了上帝。

  RayTracer 的其中一種技巧,是把一個 Pixel 分成多份,每一份做一次 RayTrace ,到最後就把結果 mean 了。這個技巧的好處是能夠做到 Anti-alias 。不過計算時間倍增。

  近來突然想起字型繪圖的 SubPixel 技巧。大慨在 XP 時代,Windows 多了一種新的文字繪畫的方法,好像叫 ClearType 甚麼來著。它的原理是利用 LCD 每個 Pixel 的三色分佈,去做出一些很神奇的東東。原理我不在此詳述。

  我的想法是,把一個 Pixel 分為九份。左三份只計 R ,中三份只計 G ,右三份只計 B 。至於效果嘛,你們幫我想吧,我累了。

  不過,我不知道我這個想法,可以有甚麼作為。這作法在電影院不怎麼行得通。你也不能保證看光碟的傢伙一定用 LCD 看,也不能保證他們的 LCD 是 RGB 排列。如果用來遊戲即時 render ,也未免太天方夜譚。
  再說,由於RayTracer最費時的計算,在於反射/折射的vector變化,因此即使只是計一個色,也不會節省很多 CPU 。頂多在計算折射時,因光譜範圍減少三分二,使折射角度範圍也減少了三分二。

沒有留言: