May 18, 2009

New Toy !

I bought a new Mac Book from Apple store last week. I never played Mac OS before, and this made me suffer recently. But Leopard does have a good looking, so maybe I will enjoy in this OS soon.

There is some problems that make me post this in English. First, I don`t know how to change IME in Mac OS. Second, I only use LIU for Chinese, but I think it`s hard to find a Mac version. The main purpose to play this machine is I wanna practice programming in Mac. I don`t know if I could get any help from this domain, but to learn more is always better.

Here is a screen shot from my first GUI program in Mac. A simple window to translate ASCII code to Morse Code. It cost me about 3 hours to make it work, though I can do the same thing by MFC in 10 minutes. The level of AppKit is higher than MFC, so to create a new window application is easier. But if my experience from windows is still work, it`s better to study window programming in lower level. Just like I started ui programming with win32 (yes, register window class, create windows), and that made me better in gui programming till now.
 

BTW, <Learn Objective-C on the Mac> is really good for an experienced C/C++ programmer. Though there are many different feature, it`s possible to pick it up in 4 days. My own problems is how to become more familiar with those new topic, like category & protocol.

May 4, 2009

thinking about depth buffer


我的 software rendering 用的 view matrix 跟 d3d 一樣,但是會有問題,這個問題也許是整個pipeline 最大的瓶頸。

主要的問題是這樣,為了讓 z 可以 mapping 到 near 跟 far plane,view matrix 裡會做些手腳,讓最後的 z 變成 (f / (f - n)) * (1 - n / z),如此一來,當 z 是n 時,深度為0,z 是 f 時深度為 1。上圖是 depth - z 的關係。問題出在 z 小於 0 的時候,depth是正的,如果在這時才作 z 方向上的 culling,那整個三角形的方向就錯了!如果這一塊是無法解決的,那整塊 mesh 就得在 normaliz 之前先跟 view frustum clip,結果則是產生更多的小三角形。讓我慶幸的是……我可以懶得管這件事,讓dx去解決。

Apr 29, 2009

Jaina may cry !

最近上班時挺忙的,下班後生活單調,幾乎無事可記!四月就要結束了,記錄一下目前的成果!

這是很久以前寫的東西,沒錯,她是 Jaina……version d3d9:


這個是年老的 Jaina …… software version ……


還沒寫完,只花兩個晚上寫的 rasterizer 品質果然很差啊!不過大致上已達到目的,這表示我腦袋裡的 3d rendering pipe line,就算跟 directx 或 opengl 有出入,至少也是邏輯上可行的!

20090502 ...... 保養品生效了!

Apr 1, 2009

公務員

你以為我是來抱怨公務員的嗎?錯錯錯!最近認識了幾位當公務員的朋友,自己一度也想當個公務員,且來回憶當時漫無目標的生活!

畢業即失業?我沒有這樣的問題!一來差點不能畢業,二來我體位乙等又不可能有國防役,所以畢業後就是等當兵了。但是退伍前半年似乎意識到「退伍即失業」的下場,那時highpass 決定休學考高考,漫無目標的我也好像找到件可以做的事,於是也開始唸起書來。買了些參考書回連上,沒事的時候就翻翻,下基地時也把書帶到台東,晚上弟兄們就寢後因為燈火管制,就拿了書坐在樓梯上看。忘了是退伍前還是後初試的,總之通過了高普考的初試,雖然沒什麼唸,倒也應付得來。但是退伍後忽然沒了勁,雖然報名複試,最後卻完全放棄。墮落了幾個月後流浪到新藝術學苑,開始我程式設計的生涯!

也許當初認真考,當個公務員,現在已經有個完全不一樣的人生?但是,有太多的「也許」,也許大學時二一,昨天就中了樂透頭彩,現在早就樂得忘了這個網誌的存在啦!

Mar 29, 2009

考驗你的創造力

三月就要結束,部落格都快長蜘蛛網了,上來清理清理,順便推荐一下最近玩過的小遊戲:

http://fantasticcontraption.com/

這個遊戲讓你用簡單的元件建造一個工具以完成目標,共二十關,對我而言,最有趣的部份在絞盡腦汁後過關,開始欣賞其他人的設計,挑評分4~5 的看,總能讓我有「原來也可以這麼做!」工作幾年後,我的創造力是不是開始萎縮了呢?

Feb 15, 2009

sc like


這個畫面是否讓你覺得眼熟?

整理備份的時候,意外發現五年前寫的程式。剛退伍時渾渾噩噩,大學時不唸書,研究所一試不中就沒打算再考了,服役時本打算考個公職,通過初試後卻忽然放棄,只是整天打電動過了空白的三個月。後來被老爹抓包唸了一頓,打算進遊戲產業,在網路上逛了一圈後就去現在已經消失的「新藝術遊戲學苑」報到。

在這之前實際上只修了一學期的計算機程式,到電機系去上的課,繼承都還沒教完學期就結束了,最後成績只有六十分,那是從後頭數過來的成績啊,我還記得期中考時班上九成的人超過九十分,滿分的比比皆是,我只有六十,不過大學時代我一向不太在乎成績,能畢業就好。這樣的成績其實很明顯,我在退伍時寫的程式,只能印些簡單的字串吧!在新藝術時就當作從完全不懂開始學,那時覺得沒退路了,所以學得格外認真。

三個月學到的東西,說多不多,很多東西還是弄不懂,但卻有了強固的基礎,坦白說那時我還是搞不懂指標是什麼東西啊!最後兩個星期每個人得做個小遊戲出來,以現在的標準看來,那時我只算會24-bit的bmp software rendering,連8-bit 都還搞不清楚是什麼東西,而且效能不好。最後就做出上面那個東西了,沒什麼特別的,不過是我第一個有點複雜的程式,名字正是「SC Like」。

我找到工具解出star craft的圖檔,裡頭的圖檔對我後來rendering的概念有很深的影響。玩過的話你也許會想知道:
  • 所有的圖都是 8-bit,但是為了區隔隊伍的顏色,所以有很多調色盤。
  • 每個動作的每個frame有32張圖代表32個方向,真的不是3d的。
  • 所有角色的圖寬都是power of 2。
  • ……忘了

這個備份加上大老闆的精神訓話,讓我想起很多事,那時為了讓整個程式跑得更快,所以特別花時間去寫,用了些其他人無力或是無心嚐試的方法,最後的結果是只有我有辦法讓飛機滿天飛也不會頓,而且每個飛機都有影子。

追求效能不正是一個程式員該有的本色嗎!

Feb 2, 2009

五分山

20090201

接到果子狸的電話時,毫不猶豫地決定跟了!最近的天氣不錯,加上環島剛結束(?)體力還不錯(?),應該能成功攻上去吧!年假十天只出門一次實在太悲情了,趁這個機會出門活動活動筋骨!晚上打電動到兩點,早上五點半起床!啃完麵包後出門,快七點時到台大大門,碰到一隻松鼠在牆上跑來跑去。


很久沒洗澡的愛駒跟學校大門合照!


今天的成員有edit、edit單車社朋友、taco、果子狸跟我,集合後緩緩地穿過校園,一點也不像下午三點要回來的樣子啊!剛買車時跟栗子騎過一樣線到平溪,那時還沒上到軍功路頂時就氣喘如牛了,這次可是對軍功路抱著崇高的敬意啊!不過輕鬆地過關啦,兩年來果然沒有白練啊!到十分時大家開始進食,我吃了山下帶上來的手捲,馬鞍袋裡還藏了一條壽司!


經過一番努力後終於到「入口」了!


五分山上是座氣象站,路線呈之字形向上攀升,誠如edit所說:「看得到,騎不到!」路邊有水泥護欄,往山上看去有如長城,萬里長城萬里長啊!因為一直覺得快登頂了,所以想來個不落地上山,代價就是腿酸屁股痛!



氣象站門口有本「車友簽到簿」,某勇腳留言「風櫃嘴→萬里→五分山→……」我開玩笑的說:「那我們把路線寫詳細一點,看起來也很厲害!」於是edit把「新店→公館→軍功路→石碇→菁桐→平溪→十分→五分山」寫上去,我則像大學時抄作業一般,把新店改成大龍峒,在最後加上「→???」。

之後原路而回,過軍功路後解散,五點到家!雖然很累,可是完全沒睡不飽的感覺,過年天天睡到中午果然不是蓋的!

p.s. 失敗的五分行