Heresy's profile[Heresy' Space]PhotosBlogListsMore ![]() | Help |
|
5/31/2008 呼叫器取餐的東京王子日式拉麵
而到了愛買買完東西後,也該吃晚餐了~這時候,發現以前記得是鐵板燒的店面,變成了一家「東京王子日式拉麵專賣」?Heresy 承認,很久沒注意,所以不知道他開多久;不過,他還有掛著開幕特價八折的條子,所以應該是沒多久吧。
重點來了~點完結帳時,店員除了發票和找錢外,又給了 Heresy 一個呼叫器!原來,一般的店家適用號碼牌加上喊號或者電子看版,來告訴客人要來取餐了;但是他們改用呼叫器,在餐點準備好的時候,呼叫器就會叫,通知客人可以來拿了。以這點來看,這家店還真是現代化啊~ ^^" 另外,他的湯匙也滿特別的。有一邊凸出來,就像叉子一樣,不知道為什麼要這樣設計?在舀湯的時候,Heresy 覺得還滿礙手礙腳的…尤其到了最後,很難用湯匙把碗底的東西撈起來。 而重要的食物呢?Heresy 覺得他的日式拉麵算是普普吧~沒有特別好吃,但是也還算不錯。不過 Heresy 到是滿喜歡那晚加點的小碗鮭魚飯!而拉麵雖然看起來沒裝滿,但是實際上由於他的碗滿高的,所以份量也不少;一碗拉麵在加上那碗鮭魚飯,Heresy 算是吃得相當地飽。 要說整體評價嗎…由於他是在愛買裡,對於店面也就沒什麼必要多加要求。而以這個價位配上這樣的口味,Heresy 是覺得不算差!雖然不是像京都浪漫明治館那種是非常喜歡的,不過也是會考慮的一家店了~ 附註:本文的照片都是用手機拍的,所以就不要太在意畫質了。 ^^" ASUS XG Station 正式發佈
新聞網頁:http://www.asus.com/news_show.aspx?id=11426 他的基本規格如下:
如同以前所說,在顯示的部分,他應該就是單純的把 ExpressCard 的 PCI-Express x1 部分,拉出來做成 PCI-Express x16 的插槽來接一般的顯示卡。而由於頻寬只剩下 PCI-Express x1,當遇到大量資料要從系統記憶體傳到顯示卡記憶體的時候,應該會很慘吧~ 而除了單純的把顯示卡外接外,他還加入了一些其他額外的功能,包括了:
不過呢,目前還是不知道這張卡到底能不能熱插拔?Heresy 是希望可以啦~不過以顯示卡這樣很重要的系統元件來說,可能很難說了…像 Sony 的 VAIO SZ,雖然有兩種顯示晶片可以做切換,但是還是要重開機才能啟用… MSI 之前也有展示過類似概念的產品:Luxium,不過也是一樣展覽完後就沒後續消息了。 另外,實際上目前 PCI-Express 外接的方法除了 ExpressCard 外,PCI-SIG 實際上也已經有 PCI-Express 的外接標準了~如果以後的桌上電腦和筆記電腦,都能做個 PCI-Express x16 的外接介面的話,那應該就會更方便了! 5/30/2008 ef - the latter tale.上個月已經預告過,《ef - a fairy tale of the two》的第二部《ef - the latter tale.》會在 5/30 推出。而實際上呢,Heresy 發現已經有人玩到囉~ http://hero_hki.mysinablog.com/index.php?op=ViewArticle&articleId=1179140 由他講的內容看來,優子的故事,應該也會都講出來了~ 不過,雖然遊戲已經出了,不過對於不會日文的 Heresy 來說,應該還是沒辦法玩吧… orz 5/27/2008 GeForce GTX200、CUDA 2.0 即將加入 double!消息來源是 HKEPC 的《NVIDIA GPGPU技術越見成熟 CUDA 2.0 入侵超級電腦領域》一文。文中在 Heresy 看來比較重要,應該就是:
也就是說,CUDA 2.0 正式版應該會隨著新一代的 GeForce GTX200 一啟發布,而同時也會正式的開始支援雙精度的浮點數計算了!這點在科學計算來說,應該是相當重要的!尤其當 ATi 已經有支援的情形下,nVidia 實在是有點慢半拍… 不過想當然耳,double 應該是只有新一代的卡可以使用了… 此外,文中也有提到:
連 Adobe 也投入了,這也代表了 CUDA 的應用應該會越來越多吧?(這部分可參考:《Photoshop to get GPU and physics acceleration》) 附帶一提,著名的超 CPU 軟體 SuperPI 也打算推出 CUDA 版了。 5/26/2008 RV250 行照更換!Heresy 的 RV250 也買了快兩年了~而里程呢…還沒破兩萬。這點,到是比一開始估計的低了些;主要也是因為後來的事情比較多、比較沒有時間衝長程的吧? 而由於兩年也快到了,所以也就需要更換行照囉!現在的行照更換,其實滿簡單的啦~便利商店、電話語音、網路換照…等等,有相當多便利的方法。不過,由於 Heresy 買車之後,多了一條規定:「汽機車使用 HID 頭燈,須於行照加註」~ 而 Heresy 的 RV250 行照上,由於是在法規實施前拿到的,所以並沒有加註。而根據古老的印象,有人是說必需再換行照時,自行到監理站更換,並告訴服務人員;雖然後來有人是說新的電腦資料已經有了,應該是不用親自跑一趟,但是 Heresy 怕等等沒加註到麻煩,所以前幾天還是自己到監理站去了~不過,到了新竹市監理站,卻發現服務人員根本不認為機車有 HID 頭燈,都說要一定要驗車…不然就要請車商提出證明了… 後來只好先回家,再查一下資料。這次又仔細看了一下網路上的討論,發現現階段應該是 RV250 各系列車款,在監理所的資料都有更新了~而更新後的型號呢,會在後面多一個「@」的符號。 而 Heresy 忽然想到,其實應該可以先到電子公路監理網,查一下 Heresy 自己的 RV250 資料吧?畢竟他在註冊後,功能還滿多的呢~而登入後一查詢,果然發現 Heresy 的 RV250 型式也變成「LA25W@」了!想想,這也難怪為什麼服務人員不知道了…畢竟這個符號出現在車輛形式後面,誰知道代表什麼意思啊… 而 Heresy 本來是想乾脆就網路上刷卡更換算了吧?但是手續辦到一半,才發現他行照的寄送地址,是戶籍地址,而非聯絡地址…考慮了一下,由於要回 Heresy 的戶籍地拿行照,反而麻煩,所以還是決定,今天又請了一個小時的假,跑到監理站更換了! 但是滿搞笑的…Heresy 自己都忘了,車輛保險是和行照一起辦的兩年期保險,因此也是即將到期了!所以,只好當下直接跑到附設在監理站裡的保險公司櫃檯,當場辦了一份保險。本來想這樣應該就可以換行照了吧?但是又發現:辦完保險後錢又不夠了… orz 總之,就是這樣一波三折,Heresy 總算是拿到新的行照了~而在行照上,他印的就不只是「LA25W@」,而是「LA25W@HID頭燈」了! 5/25/2008 沒有車坐的台鐵上禮拜三,老媽要 Heresy 幫忙用網路查看看,19:30 後,台鐵有沒有車可以從板橋到高雄,Heresy 就連上台鐵網頁了。結果呢,卻發了一件 Heresy 覺得滿誇張的事:沒有!Heresy 覺得很誇張,後來又查了一下,確定:
Heresy 看完後,感覺是一整個不可思議…之前台鐵大改點,改到很多人在罵是知道的;像是超龜速的莒光號、要超過時速兩百的區間速度等等。但是 Heresy 沒有想到的,從板橋到高雄,這兩個都算是大站了,居然是會「完全沒有車可以坐」!? 不能否認,在高鐵通車穩定服務後,台鐵的確大受影響;再加上現行的自由席、非假日八折等,的確吸引了許多南北往返的人改成坐高鐵。而在加上客運業的大將價肉搏戰,的確應該會讓台鐵有背腹受敵的感覺吧? 但是 Heresy 真的沒想到,台鐵居然直接以差不多放棄的方法,來處理南北長程的問題?基本上,Heresy 家人都不是很喜歡坐客運,而比較偏好鐵路;而高鐵由於車站較遠,要轉車稍嫌麻煩,也比較不會考慮。但是現在,變成是台鐵逼著想坐的人去選擇別項服務?這點實在是讓 Heresy 無法理解的決策…是台鐵真的不想玩了嗎?還是以後的台鐵,真的就是變成是區域性捷運?不再重視長程運輸? 高鐵很快沒錯,但是他的站並不多,而且很多車站交通都沒有現有的台鐵站來的方便,而台鐵的決策,居然是這樣直接放棄這點優勢,直接把商業機會拱手讓給高鐵,這點實在是讓 Heresy 無法理解…這算是國營的台鐵主動去配合民營的高鐵嗎?反正現在流行民營化,怎麼不把台鐵賣掉算了?搞不好這樣,台鐵的策略還會好一點吧? = = 5/21/2008 由外而內的 VPS:Nolan N103
而 N103 最大的改變是什麼呢?應該就是他本來在外層,像是外掛的 VPS 鏡片,現在變成類似 Airoh SV55 的內層鏡片了! 為什麼會這樣改呢?其實 Heresy 覺得這樣改是比較好的!在之前寫 N102 介紹文的時候,就有想過外部 VPS 的缺點:
而改成內部鏡片後,這個問題就解決了!Heresy 真的滿高興,Nolan 做了這個改變~不過,Heresy 應該還是買不起進口安全帽吧… orz SOL 推出類似 Nolan VPS 的雙色鏡片了!Heresy 自己算是相當習慣帶可掀式全罩的安全帽了~從最早的瑞獅,後來夭折的 THH,以及現在在用的 SOL 44s,都是這種俗稱「汽水帽」或「可樂帽」的可掀式全罩安全帽。 不過,Heresy 還是一直很妄想,想要一頂有 VPS 的 Nolan N102,或者有內層遮陽鏡片的 Airoh SV55 之類的帽子;因為有這種帽子的話,一定會更方便的!太陽大的時候,把墨鏡放下來遮陽;沒太陽或晚上的時候,可以把墨鏡收起來,避免影響視線。能做到這樣的話,也就不用在無色鏡片和墨片間做交換了~ 本來 Heresy 就有想過,外掛式的 VPS 應該是有辦法在一般的安全帽上改裝出來的?而現在,SOL 也推出了類似的產品了!!他應該算是國內的第一家吧?資料可以看官方網站的《SOL 雙色鏡片(遮陽用) 5月17發售決定,另雙層鏡片(防霧用)也上市囉》;基本上:
最讓人高興的是,Heresy 的 44s 也有呢!之後有空,應該會去買一組吧~ Mobile 01 已經有人有買來裝了~售價大概在五百元上下,算是可以接受的價位吧?還有附上比較多的照片,可以參考《SOL雙層鏡片》。 5/20/2008 台北亂晃上禮拜六,是很久沒有舉辦的同學會,Heresy 也跑回板橋參加了。而由於同學會是傍晚,而 Heresy 中午就先回到土城了,所以下午無聊,就決定閒閒沒事,坐捷運跑到台北地下街去晃晃了~ 出了台北捷運站,往地下街走,才想起來,這裡有中山地下街和台北地下街兩條。想說到處亂晃,就都繞看看吧~結果沒想到,中山地下街現在,似乎都變成沒有營業了?至少 Heresy 在周六的下午走過,每個店面的鐵捲門,都是拉下的…到是看到不少情侶,坐在附近的椅子上親親我我的。印象中,之前走在這,還算滿熱鬧的?沒想到現在,已經沒落了嗎? 而回到台北地下街,感覺上就還是像以前一樣熱鬧了!Heresy 主要是想看看模型之類的啦~所以就走到那一區去,每家店都進去大概繞了一圈。而該說果然嗎?想買的都很貴,便宜的都沒看上眼的… ^^" 而回頭的時候,剛好也碰到有節目在路電玩相關的節目?好像是「數位遊戲王」什麼的吧?
另,台中的星野銅鑼燒在板橋的誠品也開分店了耶~看來…以後回台北,可能都會看看有沒有閒錢,跑去買來解解饞了! :p 5/19/2008 CUDA Zone 的更新、以及 Lame MP3 競賽!
可能都有一小段時間了,不過 Heresy 是今天才發現的。 nVidia 的 CUDA ZONE 中,在文件的部分,多加入了「Trainings and Tutorials」這一項。而裡面呢,則是舉了不少的投影片或課程的連結,可以提供給大家做參考~有的 Heresy 在之前寫《nVidia CUDA 相關文章目錄》的時候就有整理了,不過還是有很多是 Heresy 當初沒有找到的資料!像現在還有 University of Illinois CUDAcasts 的影片呢。 另外,感覺上《CUDA Technical Training》似乎也是 nVidia 官方的投影片?雖然 Heresy 還沒仔細看,不過應該也是相當有用的參考資料了~
此外,nVidia 也舉辦了一個 CUDA 的競賽!他的網站是:http://cudacontest.nvidia.com/index.cfm。 不過話說回來,如果 nVidia 多搞幾種這種競賽,應該可以把一堆 OpenSource 的軟體都 CUDA 化吧?這樣在某方面來說,好像相當不錯?比賽是到 7/25,那八九月應該會有一版不錯的 CUDA 版的 lame 可以用囉~不知道下一個比賽項目會是啥?Xvid 嗎? ^^" 5/18/2008 WD MyBook Home Edition 簡單測試報告
這次是廠商借一台 1TB 的 MyBook Home Edition,來讓 Heresy 玩一玩,寫一些測試報告,給他們對於產品的意見了~(很可惜,還是要還 :p) 規格、內容
產品特色
基本效能測試
售價
結論
參考: 5/16/2008 Office Live Update 1.1Heresy 在之前,也介紹過 Microsoft 的 Office Live Workspace 這個平台。而實際上,Heresy 自己目前也都用它來管理一些想再多台電腦存取的檔案了~ 在 Office Live Workspace 開始 beta 的時候,就有提供了一個 add-in,可以把 Office Live Workspace 和 Office 做一個整合;而昨天,Microsoft 又推出了一個「Office Live Update 1.1」~他的說明是:
感覺上,是可以讓使用上更快?但是實際上,Heresy 到是感覺不大出來…和之前的 Add-in 好像也沒什麼大差別?不過,也是一個更新就是了。 5/13/2008 CUDA Volume Rendering [Part.4 Render(GPU part)]前面已經把 CPU 要做的事都講完了,接下來,就是最重要的 GPU 的 Kernel 程式了!這份 kernel 的定義如下:
他要接受的參數有:
而 Heresy 把這個 kernel 程式的動作,分成四大部分:
第一部分就是設定一些需要的變數了~這裡包含了 maxSteps、tstep、boxMin、boxMax 四個變數,Heresy 會在用到的時候再去解釋。而接下來,就是根據 thread index 和 block index,計算出這個 thread 的索引值了~這邊還是很單純的,用 index = (block index) * (block size) + (thread index) 來做計算。 uint x = __umul24(blockIdx.x, blockDim.x) + threadIdx.x; uint y = __umul24(blockIdx.y, blockDim.y) + threadIdx.y; 不過,這邊他改用 24bit 的整數乘法函式 __umul24() 來取代 32bit 的 operator*;在目前的硬體上,這樣是會比較快一點的。 算出來的 x 和 y,就是代表現在這個點的結果,是要儲存在輸出畫面的哪一點上;而要開始計算這一點的顏色,還要再把他轉換成空間座標的一條線。而這邊就要先講一下這個範例程式的空間定義了~首先,他把 volume 視為一個 (-1, -1, -1) 到 (1, 1, 1) 的一個正方體,並把這兩個座標儲存在 boxMin、boxMax。而攝影機的位置在預設會有一個 z 方向的位移 4,所以位置會是 (0, 0, 4);而視平面則是建立在相對攝影機的 (0,0,-2) 的位置,大小是 2*2。而在旋轉時,實際上都是將攝影機的位置做移動,不會動到代表 volume 的 box。 整個空間關係,可以畫成下方的示意圖。 實際上在程式的部分,是寫成下面的樣子: float u = (x / (float) imageW)*2.0f-1.0f; float v = (y / (float) imageH)*2.0f-1.0f; // calculate eye ray in world space Ray eyeRay; eyeRay.o = make_float3(mul(c_invViewMatrix, make_float4(0.0f, 0.0f, 0.0f, 1.0f))); eyeRay.d = normalize(make_float3(u, v, -2.0f)); eyeRay.d = mul(c_invViewMatrix, eyeRay.d); 第一段在計算 u, v 的值,就是在把他們由 [0, imageW] 和 [0, imageH] 轉換到 [-1, 1] 的座標定義;而 eyeRay 就是用來儲存攝影機的位置(eyeRay.o)和這條視線所看的方向(eyeRay.d)。eyeRay.o 就是直接帶入矩陣 c_invViewMatrix;而 eyeRay.d 則是根據計算出的 u, v,再考慮視平面 z 軸的位移 -2,建立出長度為 1 的向量,最後再考慮矩陣 c_invViewMatrix。如此,就可以建立出符合上述空間定義的資料了。
而接下來第二部分, 就是要計算 eyeRay 這條視線,和 volume 的 box 的交點了。在這邊,他是呼叫這個 intersectBox() 函式;傳入 eyeRay 和 boxMin、boxMax 後,他會傳回這條視線是否有和 volume 相交,同時把和 volume 相交點到攝影機位置距離的最小值和最大值記錄在 tnear、tfar 中。而 tnear、tfar 也就代表了這個 volume 在這條視線上,對攝影機來說對短距離與最遠距離;這是之後用來計算 ray casting 要走過哪些區域的依據。這部分的程式如下:
而這邊 intersectBox() 用的計算方法,算是 Heresy 覺得相當有趣的一個方法,他是參考 Siggraph 的一篇 education 來做的;基本上,就是透過將 box 限制在和座標軸同方向,來簡化計算。在這個方法裡,他可以簡單的向量運算,就快速的求出一條射線和六個平面焦點對於某個點的距離。不過,在這邊細節就先不提了。
再來的第三部分,就是實際要計算 volume 在 (x, y) 這點的顏色的部分了!這段的程式碼如下:
基本上,他的計算方法就是由一條視線和 volume 相交最遠的點(距離為 tfar),以 tstep 為間距向攝影機前進,直到和攝影機的距離小於 tnear,或累積次數大於 maxSteps。每前進一步,都可以透過「pos = eyeRay.o + eyeRay.d*t」計算出在空間座標中的位置;不過由於這是計算一個在 volume box 中的點,所以他的座標會是介於 (-1,-1,-1) 和 (1,1,1) 之間;而由於 texture 的 normailized 座標是介於 [0, 1] 之間,所以必須再把他做個轉換。 而接下來,就是透過 tex3D() 到 volume data 的 3D texture(tex)去取得 (pos.x, pos.y, pos.z) 這一點的值 sample。而這裡取出來的值會是灰階的,要再用 tex1D() 到代表 transfer function 的 1D texture transferTex 中,去找到對應的色彩;不過,這邊會先把取得的 sample 透過 transferOffset 和 transferScale 做一個調整。 取得這一點的色彩後,接下來就是要和目前的結果 sum 做累加的動作;在這邊,他是用一個定義在 cutil_math.h 裡的函式 lerp() 來進行這項計算。而「sum = lerp(sum, col, col.w*density);」實際的動作,就是:「sum += (col.w * density) * (col - sum);」;其中,density 這個參數算是在調整每一點的 alpha 值了~ 而最後,就是計算計數器 t 的值,並確認他還沒有超過 tnear;如果已經超過的話,就提前結束整個迴圈。而最後,他還會再把最後的顏色,根據 brightness 做一的調整,然後才是最後的 (x, y) 這個點的顏色 sum。
最後的第四部分,就是將計算出來的顏色值 sum,寫入到代表 pixel buffer object 的 d_output 裡了。而他的第一個動作,就是確認 (x, y) 的質是否有超過 (imageW, imageH)(其實這個動作應該可以更早做?);之後,就是計算出 (x, y) 在一維陣列中 d_output 中的索引值 i,並把值寫進去。 這段程式的內容如下:
而到此,也就是 CUDA Volume Rendering 的 kernel 的全部內容了~而 Heresy 關於 CUDA 提供的這個 Volume Render 範例,大概也就先講到這了~ :) CUDA Volume Rendering [Part.3 Render(CPU part)]前面的 part.1 大概介紹了 volume rendering 的概念,也大概列了一下裡面的 function。而 part.2 也已經透過把 main() 掃一遍,把 ray casting 外的東西,大致都講了一下了。而接下來這一部分,主要就來看顯示的部分了~ 在這個程式中,要去把 volume 畫出來的部分,主要就是在 OpenGL 的 display callback function,也就是 display() 這個函式;當每次需要 render 的時候,就會呼叫到這個函式。而整個繪製的流程,大致上如下圖所示: 上圖中,左邊的區域,就是 display() 的大致流程。中間「Render to pixel buffer object」的大框,則是 render() 這個函式在做的事;CUDA 的 kernel 程式 d_Render(),也是在 render() 中被呼叫的。右邊紅色的區域,則是代表 CUDA 的 kernel d_Render() 的流程。
接下來,就先來看 display() 的程式內容: // use OpenGL to build view matrix
GLfloat modelView[16];
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glRotatef(-viewRotation.x, 1.0, 0.0, 0.0);
glRotatef(-viewRotation.y, 0.0, 1.0, 0.0);
glTranslatef(-viewTranslation.x, -viewTranslation.y, -viewTranslation.z);
glGetFloatv(GL_MODELVIEW_MATRIX, modelView);
glPopMatrix();
invViewMatrix[0] = modelView[0]; invViewMatrix[1] = modelView[4]; invViewMatrix[2] = modelView[8]; invViewMatrix[3] = modelView[12];
invViewMatrix[4] = modelView[1]; invViewMatrix[5] = modelView[5]; invViewMatrix[6] = modelView[9]; invViewMatrix[7] = modelView[13];
invViewMatrix[8] = modelView[2]; invViewMatrix[9] = modelView[6]; invViewMatrix[10] = modelView[10]; invViewMatrix[11] = modelView[14];
render();
// display results
glClear(GL_COLOR_BUFFER_BIT);
// draw image from PBO
glDisable(GL_DEPTH_TEST);
glRasterPos2i(0, 0);
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, pbo);
glDrawPixels(width, height, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0);
glutSwapBuffers();
glutReportErrors();
如同前面所述,display() 的內容分成三部分:
第一部分矩陣計算的部分,基本上這個範例程式在 motion() 中,可以透過滑鼠來控制攝影機(眼睛的位置)的旋轉和平移,並把資料存在 viewRotation 和 viewTranslation 裡;所以在進行 ray casting 前,要先算出來這些影響所形成的矩陣(viewTranslation 在 z 軸預設位移是 -4)。而他的方法是透過 OpenGL 的 model view matrix 來計算,並把結果讀到 modelView 中,然後進行一個轉置,轉換成 kernel 中要用的形式(三乘四的矩陣),也就是 invViewMatrix。
而接下來的第二部分,是把最主要、也就是呼叫 ray casting 的 CUDA kernel 程式,都包到 render() 這個函式;裡面的內容有四步:
其程式碼如下: CUDA_SAFE_CALL( cudaMemcpyToSymbol(c_invViewMatrix, invViewMatrix, sizeof(float4)*3) ); // map PBO to get CUDA device pointer uint *d_output; CUDA_SAFE_CALL(cudaGLMapBufferObject((void**)&d_output, pbo)); CUDA_SAFE_CALL(cudaMemset(d_output, 0, width*height*4)); // call CUDA kernel, writing results to PBO d_render<<<gridsize , blockSize>>>(d_output, width, height, 因為在 ray casting 時要用到 invViewMatrix 這個矩陣的內容,而且是要在 kernel 中讀取,所以要先透過 cudaMemcpyToSymbol() 把資料複製到 c_invViewMatrix 這個 constant 變數。而c_invViewMatrix 是一個自訂的 structure,他的定義和宣告如下:
接著,就是透過 cudaGLMapBufferObject() 這個函式,來取得之前在 part.2 時所建立的 pixel buffer object pbo 的記憶體位址:d_output;並再透過 cudaMemset() 把他的資料都填 0。 再來就是呼叫 kernel 函式 d_render() 來進行最重要的 ray casting 的動作了!這個 kernel 的參數包含了要寫入結果的 PBO:d_output,以及 pixel buffer object 的寬和高(width, height);而剩下的 density、brightness、transferOffset、transferScale 這四個變數,主要是用來控制呈現的效果的。關於 kernel 的部分,會在下一部分的 part.4 再來講。 在 kernel 結束後,ray casting 的結果也都會存到 d_output 裡了~而由於此時已經不會再對 pixel buffer object 做寫入的動作,所以也需要透過 cudaGLUnmapBufferObject(),解除 pbo 和 d_output 之間的對應。
而當 render() 的動作都結束後,就要回到 display() 執行最後一的動作:把 pixel buffer object 畫出來了~基本上,這邊就全都是 OpenGL 的東西了。主要,就是先透過 glBindBufferARB() 來指定要使用的 buffer object(這邊當然是 pbo),然後再透過 glDrawPixels() 把他畫出來了~ 5/12/2008 考古中…這幾天,由於混蛋的無名,在某種程度上算是在從頭看一遍 Heresy 自己 blog 以前的文章了~雖然進展還只有一點點,但是在這過程中,也感覺到許多時間產生的變化… 從 2005 年五月第一篇文章開始到現在,文章數目已經懶得去數了。中間,不但微軟把 MSN Space 改成 Windows Live Space,Heresy 自己編寫的習慣,也不停的變化;Flash 的引進和 Heresy 開始使用 Flickr,都大幅地增加了 Heresy 在寫文章時的多元性!但相對的,也使的版面越來越亂了。 ^^" 不過,這樣回過頭去看以前的東西,也才發現,很多東西都已經消失了…尤其是一些外部網站的圖、連結,很多都只剩下一些空殼了…甚至連 Tom's Hardware 以前中文站的網址,也都已經失效了。雖說走過必留下痕跡,但是,很多東西,即使是電腦網路上的東西,還是會隨著時間消逝的… 很多東西,Heresy 也不打算修了,就當作時代的見證吧…
ダイアモンド クレバス《ダイアモンド クレバス 》這首歌,是動畫《Macross Frontier》的片尾曲,風格和片頭曲的《トライアングラー》比起來,差異相當的大。而歌名應該「diamond crevasse」的日文拼音,中文…鑽石裂痕?Heresy 個人是不知道該怎麼解讀啦…不過,也是一首非常耐聽的好歌! 不過,話說回來,Heresy 總覺得《Macross Frontier》的作畫品質實在很不穩…總覺得好像每況愈下的樣子?畫質最好的,大概也只有第零話吧?希望作畫不要在崩壞下去了啊!!
歌詞來源: 5/11/2008 苗栗 大安溪峽谷(下)
剛過溪後,看到的就是一整塊雜草叢生的石地。到處都是非常巨大的岩石,而在石縫中,則是有許多雜草茂盛的長出來;不過與其說是大石頭,應該說是由於河水的侵蝕,把整個地盤切個成這樣的吧?這裡到處都可以看到幾塊巨石中,留著涓涓細流。而也由於這裡本來應該是河床(漲潮時應該會到這吧?),所以整體地勢相當的平坦,看起來相當的遼闊。下面則是一些在這裡拍的照片:
而之後,就是往大安溪的對岸看了~雖說這邊的地勢大致來說都很平坦,但是在河的對岸,卻變成是較高的山壁了;遠遠望去,河水所走的峽谷反而比較不明顯。不過,再稍微靠近一點,就可以很清楚看到很深的河谷了! 而在比較靠近溪谷的地方,還有打了一些方洞,應該是之後要做欄杆吧?而為了警示,許多地方也都插上了小小的「土質鬆軟,請勿靠近」的警告牌。而實際上,這一帶的地質應該算是由砂頁岩構成的,所以的確在地質上,應該是比較容易繼續變化的;或許,再過了一兩年來,整個感覺又會不一樣了? 而也由於目前沒有任何安全措施,而靠近溪谷的山壁不但深,又很陡峭,看起來非常的壯寬!之前新聞也是說可比美國大峽谷;不過 Heresy 個人是覺得,比例上應該是差了很多就是了。不過,這種深度,如果不幸掉下去…應該沒救了吧?也因此,Heresy 一群怕死的人,都不是非常感靠近旁邊。 ^^" 也由於本來就是來看這裡的自然景觀的,也帶了廣角鏡來,拍了不少照片~接下來,就看照片列表吧~(點圖可以連到 Flickr,下方如果有文字的話,典文字可以到不同的照片)
而之後,也就離開了大峽谷一帶了。離開的時候,還有遇到準備要設立護欄的工人,他們說還有人來了七八次了!但是他們似乎始終不知道,這裡到底哪裡好,為什麼有這麼多人跑來看? ^^"
而之後呢,就直接沿著台三線往台中市區走了~後來,就是到東海夜市大致吃了晚餐(名產:雞爪凍 XD),又去買台中的星野銅鑼燒等,變成美食之旅了。 :p 苗栗 大安溪峽谷(上)好一陣子前,新聞好像還吵得滿熱的?就是苗栗大安溪一帶,因為 921 地震的關係,產生了一個「大峽谷」(參考維基百科)。而其實一開始看到的時候,Heresy 就有想要去了~只不過後來一直沒有成行。而這次,是剛好公司的同事大家也都有興趣,於是就一起出發了!這也是繼上次大隘的巴斯達隘行後,少數的集體出遊。 而這次的行程,是坐同事的汽車去的,所以實際上是走國道一號南下,再轉到產業道路,經過台鐵舊山線的泰安一帶,之後往台三線走,才轉到目的地的。而這個大峽谷的實際位置,大概介於「內灣堤防」和「卓蘭堤防」之間;在苗 58 上,可以很清楚的看到各種非官方的指示牌~真的不行,到了附近問超商,都可以得到很清楚的答案(應該被問慣了吧? :p)。詳細的路線,可以參考 Heresy 上傳的 Google Earth KMZ 檔(中間有的是走錯繞路 :p)。如果是 Heresy 自己騎機車的話,應該會直接走台三線吧?
而離開泰安之後,就是往台三線走了。由於這一段路算是沿著大安溪走,所以路旁的景色還不錯~下面就是一組河谷的照片,本來想合廣角的,但是好像合不太起來…
在這,周圍都是葡萄園,雖然因為季節關係還沒成熟,但是都長的滿漂亮的~此外,這裡也理所當然地聚集了不少的攤販,賣香腸、飲料等等…而有兩個攤販剛好把路夾起來,活像是要圍路收門票似的(當然沒有收啦~他們看到人還會說:「大峽谷走這裡」)。 ^^"
而過了這條溪後,就算是要到了大峽谷的區域了~接下來,就看下一篇吧! :p Flickr Group 建立!前一篇提過了,Heresy 的無名相簿,目前是完全消失的狀態。而目前,也正在慢慢進行轉移到 Flickr 的動作(話說,Flickr 也是屬於 Yahoo 的,但是國際使用人數超多,應該不會和無名相簿一樣掛吧?)。 而由於 Flickr 的免費版本有兩百張的限制,雖然實際相片都還在,但是卻沒辦法直接透過 Flickr 的個人頁面看到;之前也有一些透過相片集或第三方網站的方法,可以破解這個限制,但是目前應該都是失效了。而目前一個勉強可以破解的方法,應該算是 Flickr 的群組吧? 在 Flickr 的群組中,有所謂的分享區,加入群組後,就可以把照片丟到分享區裡。而且,這個分享區沒有兩百張的限制!以設計上來說,應該也不太可能加上這個限制~也因此,如果在每次上傳照片到 Flickr 後,就把相片加到群組的分享區的話,就可以在 Flickr 中,保持超過兩百張以上的照片了!而 Heresy 也建立了一個群組,並把一些照片加進去了~ 不過,實際上這樣對 Heresy 到底有沒有用?Heresy 加一加後,到是覺得像沒差…畢竟,相片集依然無法使用,而 Heresy 又沒有幫相片下標題、寫描述的習慣,直接看相簿用處應該不大?而像 Heresy 這樣相片數量一多,沒有了 Flickr 本來的管理工具,要修改也變得相對麻煩了…看來,要不要把以前的照片都丟到群組裡,可能會再考慮看看吧~ 5/9/2008 無名相簿失蹤了…之前無名就有通知過,要把帳號和 Yahoo 做個整合。但是基於各種理由,Heresy 始終沒有辦法完成整個轉移…而 Heresy 雖然早就想放棄無名,把無名上的相片都移到 Flickr 上,但是因為人懶,一直沒有進行這項轉移的工程。 而今天,當 Heresy 要回去點以前的遊記的時候,才發現,Heresy 所有的無名相簿已經不知道什麼時候都消失了… = = 總之,現在看來,必須要花點時間,把相片重新上傳,在整理一下以前的網誌了。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|