MediaTek Advanced Research Center 首屆「聯發科產學合作卓越貢獻獎」

(Originally posted on Facebook on June 14, 2024)

以前第一次看到魔球(Moneyball)這部電影就很喜歡,大概是因為Oakland A’s這個在二線城市的棒球隊,面臨和大聯盟其他豪華球隊競爭的處境,跟臺師大面臨和台灣其他資源豐富許多的頂尖大學競爭學術卓越的挑戰有點類似吧,當然Brad Pitt飾演的角色跟我很像(最好是)…有一個很貼心的女兒,也是原因之一。(https://youtu.be/gVDAPTabZNQ)

所以當2002年的Oakland A’s從一個戰績墊底的球隊,創造出破紀錄的20連勝,進而打入季後賽,怎能不讓人熱淚盈眶,就如劇中的名言:How can you not be romantic about baseball?

我不知道我有沒有能力創造20連勝那樣的奇蹟,我只知道要跟台清交成比誰的SCI期刊論文多一定沒有勝算,但是只要堅持信念,或許有一天就會柳暗花明。

How can you not be romantic about computer graphics?

That SIGGRAPH 1987 Proceedings on the Library Shelves

(Originally posted on Facebook on June 2, 2024)

大三的某一天,我走進了當年的台大工學院圖書館,在期刊架上,看到了這一本SIGGRAPH 1987論文集,被封面上Pixar Red’s Dream深深吸引,也改變了我的人生,從此我就確定電腦圖學會是我一生追求的志業。

12年後,我已經在Computer Graphics全美排名第一的UNC唸博士班,終於發表了自己的第一篇SIGGRAPH論文(當時我已經有UT Austin的碩士學位,也在Intel工作了兩年,但是Intel不做graphics,所以我就離職去UNC了),想起12年前我在台灣幾乎找不到研究CG的教授,所以就決定畢業後回台灣教書,看能不能遇到一些像我當年為了圖學著迷的學生。

然後很巧的,又過了12年,我的學生也發表了第一篇來自國立清華大學的SIGGRAPH論文(2011)。

又過了12年,去年2023我和我的學生們都沒有再發表SIGGRAPH論文了,然而我很確定他們已經走出一條不同的路。在聯發科工作的學生,讓天璣9300的光線追蹤效能達到世界第一,在InVitro的評比上超越了Samsung和Qualcomm,而在臺師大的學生,陸續在頂尖的Pacific Graphics 2022和High Performance Graphics 2024國際研討會上,發表了Path Tracing領域的最新成果。

突然覺得心願已了,然後就發現我已經到了可以領月退俸的年紀了。

碩士畢業時,曾以為自己會留在美國當一輩子工程師,博士畢業時也差一點跟隨UNC的系友們加入NVIDIA,常常在想,平行時空裡那個投入業界的自己現在怎樣了。

是不是該離開學校,轉換跑道的時候了呢?

X^n = 1

Xn = 1 真是個有趣又富哲理的題目。

當你理所當然的認為X=1時,很快就會發現題目沒有想像的那麼簡單。因為X2=1就有兩個可能的X。

又當你以為頂多就是1和-1這樣了吧,很快就又被打臉。

因為X4=1就有另外的可能,(X2)2=1,那麼X2 = -1的話,X4也是1。所以虛數i和-i也可以。

更好玩的是X3=1也不只一個可能的X。不信的話,試試看X=(-1+i*sqrt(3)) / 2

所以做人絕對不能太鐵齒。

致有意加入計算機圖學實驗室的研究所新生

首先恭喜你錄取本系研究所,如果計算機圖學的各項研究令你驚奇,而想進一步探究作為你的研究方向,那麼十分歡迎你加入計算機圖學實驗室,但請先注意以下幾點:

  1. 每年我會收到許多剛考上研究所的準新生來信,想約時間詢問我的研究領域,今年我對這類型的來信將一概不回(連我的領域是甚麼都不知道,還來找我做甚麼?),如果你已經看到這裏,相信你不會有這個困擾了。
  2. 我們實驗室的研究主題,大多環繞三維計算機圖學的繪圖技術與演算法,而不在內容的美工設計或創作,若以電腦遊戲或動畫為例,我們將著重在繪圖引擎的開發,而非遊戲或動畫的內容。
  3. 也因為上述,程式設計是不可或缺的能力,我們將大量使用C/C++和OpenGL。你不必學過C/C++和OpenGL,但需至少有其他程式設計的經驗。
  4. 三維圖學計算需要大量的運算資源,因此我們也會接觸各類有效率運用繪圖處理器(GPU)和多核心處理器的相關平台或技術,例如GLSL與OpenCL。
  5. 若你讀到這裡,覺得計算機圖學適合你,那歡迎來找我一談,但請前來我研究室之前,先email給我,因為我有許多時間不在研究室,不希望你白跑一趟(而且要爬樓梯到五樓)。

i++ (和自己賽跑的人)

給師大資工(或曾念過本系)今年的畢業生:

不要覺得自己是魯蛇(loser)
很多時候一時win or lose沒那麼重要
重要的是像C語言的 i++ 一樣
下個clock cycle的 i 超越現在的 i
明天的我超越現在的我
現在覺得渺小,就不會overflow志得意滿

最後播放一首,前天金曲獎的得主李宗盛,在我大學畢業那年的作品:
和自己賽跑的人

笨蛋,問題不在排序!

剛做了一個夢,大家開始不管十二年國教的排序公不公平,而開始討論怎麼讓有熱情的流浪教師進入需要他們的高中,以及如何讓現任的老師在政策一再轉彎下僅剩的熱情能重新點燃,從此每個高中都是明星高中。

不過夢畢竟只是夢,而我不是Martin Luther King

夏天在紐奧良Preservation Hall聽Jazz

DSC00489

剛從New Orleans參加SIGGRAPH 2009回來。 今年六月到紐約,八月到紐奧良,各看了一場世界聞名的現場表演,在紐約Majestic Theatre的The Phantom of the Opera和紐奧良Preservation Hall的Jazz。

這兩個表演存在著很微妙的對比。先從客觀數字講起好了,在紐約的Phantom票價將近一百美元,台上的演出者大概有將近百位吧,從我座位到舞台的距離也大概是數十公尺。在紐奧良Preservation Hall的Jazz就大概是把上面的數字都除以十。 是的沒錯,在Preservation Hall我和演出者距離就是那麼近,如果可以跨過前面比我更近的兩三排觀眾,只要走兩三步我就可以和演出者(有些應該是國寶級的)握到手了。

在Preservation Hall的經歷很特別,在這邊名氣不會轉變成演出者和觀眾之間的距離,包括有形和無形的距離,一切都保留在那個遙遠年代的氣氛中。在美國南方燥熱的夏夜裡,即使小小十坪左右的空間裏擠了幾十個人,演出者也不停的擦著汗,Preservation Hall裏依然只開著電風扇,沒有冷氣,像是清清楚楚的傳達這個訊息,要吹冷氣就買CD回去家裡聽,要聽現場就和大家一起流汗。

Why should Mozart be a full professor and Beethoven an assistant professor?

According to the SCI (Symphony Composer Index), Beethoven has 9 published SCI-indexed works while Mozart has more than 50 SCI-indexed works.

OK, just kidding, I made those up.

Still, similar arguments and fallacy often pop up in Taiwan’s academia.

Nathalie’s first bicycle ride

It may be a father’s dream to catch his baby’s first step, that definitive moment, on a video.  But if you’ve ever tried, you know how hard it is.  The lone success I have ever seen is in the “Truman’s Show” movie.

Yet, the opportunity presented itself again on July 20, 2008, when I realized that Nathalie was close to riding a bike completely on her own.  This time, I caught it on the DV tape.  Check this out.

Convolution and Multiplication

When I first learned Fourier Transformation in signal processing, I was told that the convolution of two signals in time domain (or spatial domain) was equivalent to the multiplication of those two signals in frequency domain.  That was amazing, but I got no intuition about why it worked.

Then one day, it hit me that I had been doing convolution since I was a kid in elementary school.  Every time we multiply two decimal numbers, we are not really performing the multiplication.  We are actually computing the convolution of their digits.  For example, the reason why we know 22*33 is 726 is because we compute the convolution of the two signals (2,2) and (3,3), which gives us the signal (6, 2, 7).  (Note: I put the least significant digit to the left, so they look more like the signal in the “transformed” domain.)

Still didn’t get it?  Then think about this.  What is the meaning of the decimal number system that we have taken for granted?  Imagine the world 5,000 years ago.  How would a farmer count the number of plants in his land?  For example, if he has 22 rows of plants, and 33 plants in each row, how does he count the total number of plants?  Does he know the total is simply 22*33 if he doesn’t yet know the multiplication of two decimal numbers?

  • 22 and 33 are the results of projection to the tens and the singles digits of the decimal system.
  • 726 is the result of the convolution between (2,2) and (3,3).