2008年8月22日 星期五

先有雞先有蛋

軟體功能開發以來,一直是以使用者或設計師的需求為優先考量。直至今日,卻遇到一個矛盾的抉擇:是否要開發一個已屬設計師專長的功能。究竟從業人員都具備手繪能力?還是電腦繪圖將完全取代?這應該不會是一個先有雞還是先有蛋的問題,科技再怎麼進步,畢竟只是工具,對於繪圖的天賦,無法為人們無中生有,只有降低門檻的協助。

手繪圖的基本功夫,一直以來都是從事設計相關產業的基本要求。在客戶的事務所或工作室中,總展示著幾件設計師引以為傲的手繪畫作。對於只會塗鴉的筆者,面對畫作中筆觸刻鑿的痕跡,是一種望塵莫及的羨慕:只需輕描淡寫幾筆簡單的線條,卻清楚呈現規劃後的空間。在現今電腦繪圖濫觴的時代,要看到這樣反璞歸真的堅持,已經是越來越困難了。

將線條圖與輪廓圖功能,應用在3D場景中,呈現出與以往完全不同的視覺效果。這是一種全新的手法─即時性3D輪廓圖或即時性3D線條圖。圖面呈現出來的效果,帶有一絲手繪素描或草圖的筆觸。唯一的矛盾在於設計師擁有徒手繪圖的能力,何須再以電腦輔助。難道從業人員都會畫透視圖?這樣的功能完全派不上用場?暫時就先當是個噱頭吧,至少筆者的經驗中,是有幾種使用時機:

  1. 聚焦:在展示設計時,可將不重要的配角以輪廓外觀顯示,以突顯設計重點,避免失焦。
  2. 示意:在還沒選配合適的傢俱時,暫時以輪廓外觀示意,以免壞了整體設計與搭配,也可避免資料庫永遠不足的窘境。
  3. 底稿:在放樣完成後可以直接列印出底稿,直接在圖面上手繪溝通。

對於這樣的問題,不是在實驗室裡討論就能得到結論,其實答案就藏在市場裡,市場會決定一切,只待發掘而已。期盼日後持續開發出類似這樣即時性的影像處理功能,能夠為使用者強化競爭力,並為軟體帶來更多的附加價值。


聚焦

示意

底稿

底稿

2008年7月1日 星期二

軟體共享後的隱憂

雖然功能強、操作簡單的軟體共享後,新進會員與初學者很容易利用教學資源自學入門,但是入門之後,漸漸感受到挫折,因為資源與經驗的累積,是一段漫長的煎熬,是體力與腦力的折磨過程。因此如何促使經驗與資源能互通有無、相互激盪,是關鍵的隱憂…

專業共享版自推出以來頗受好評:無論是喜好數位內容創作與分享的部落客;或是滿足一般學生實習作業上的需要;甚至是提供專業設計師與業主溝通的工具。相信會員朋友已經逐漸了解這種強調即時性與互動性的空間模擬工具軟體,為日常工作或生活所帶來的便利。

然而,在軟體共享的背後,卻隱藏著一個隱憂:如何快速累積使用經驗與資料庫資源,是所有使用者共同追求的武林密技。如果軟體使用者也共同參與共享流程,那經驗與資源也隨之共享。簡而言之,就是魚幫水,水幫魚的道理,整個共享的活水,也會因此而川流不息;源源不絕。

因此論壇開始遵循一套原則:鼓勵所有參與分享的會員,也能分享他人的成果,真正落實共享的精神,享受網路世界的神奇力量。因落實這套原則,論壇隨之推出積點管理,逐漸將會員所參與的活動給予量化統計,所有獲得資源的額度,將隨著會員的分享貢獻而成長,不再一味追求無償的獲得。

開始遵循有償的分享,是希望藉由眾人的力量:各盡其能、各取所需,也期盼藉由網路的力量:互助分享、互通有無。當然最終的目標,是要達成FancyDesigner的成長茁壯!

2008年6月22日 星期日

版本的迷思

忙了幾天,終於把ATi的異常鋸齒情形給避開了;不過,居然又讓我發現了一個ATi的記憶體管理問題,看來又得跟它奮戰一番了。身為程式設計師嘛,本來就有接不完的挑戰,所以我早已習慣了。其實不僅是習慣,我簡直是樂在其中。解問題時雖然痛苦,不過解開時那份成就感卻是讓我快樂得無以附加!

這幾天有人問我,為什麼FancyDesigner為什麼推出到現在還是稱作1.0版?這樣會不會讓人覺得這個軟體還處於剛發展的階段,而有穩定性不佳的錯覺?這真是個值得玩味的問題。軟體的版本編號,原本應該是用來標示功能上的進展或區別,不過望眼目前市面上的軟體生態,版本編號的異動竟已成了收取昇級費的主要用意。軟體公司藉著收取昇級費來支應研發成本,這本是合情合理的。如果大家都想要軟體功能越來越強,但都想免費昇級的話,那誰來支付研發成本呢?但是反過來說,如果軟體只有些微的改進,就急著標上個新的版本編號,來收取昇級費,這是否合理呢?

FancyDesigner上市至今,已陸續推出了十多個免費昇級的程式,有的是改進了軟體的缺失,而絕大部分則是增加了新的功能,但是在版本的主編號上,還是維持1.0版,因為我們不想動不動就跟客戶收昇級費。在我的感覺,一個好的軟體有賴使用者與研發者同心耕耘,特別是研發者不可閉門造車,應該多聽聽使用者的建議,來能開發出符合市場需求的軟體。做為一個程式設計師,其實最大的成就並不是來自於財富的累積,而是使用者滿心的讚賞!因此,在現階段,我們最主要的目標是讓更多的使用者喜歡我們的產品,而不是急著向老客戶收錢,所以,各位看倌,記得呷好逗相報喔!

2008年6月16日 星期一

多了一小步 感覺完全不一樣

從此【物件複製】時可以針對位置使用預覽功能。有這個功能後,使用者不會因一再嘗試錯誤的過程中,失去耐心。期待它能順利通過測試過程。


許多功能與想法,隨著時間一一實現的感覺真好!

過程中最耗時間的其實並不是功能開發,而是功能的測試:『牽一髮而動全身』是最好的寫照。就算測試工程師規畫再多的測試計畫與測試報告,總還是提心吊膽,深怕思慮不周,挂一漏百、掛一漏萬。

因此在考量如何分配資源,投入開發 FancyDesigner 的因素上,首重《穩定 Stable》;其次《效能 performance》;最後才是《功能 function》。相信這樣一步一腳印,建築扎實穩固的基礎,才能在大鵬展翅時,飛的暨高、又遠、更長久。

2008年6月15日 星期日

饒了我吧,ATi …

不知道各位有沒有注意到,FancyDesigner裡的鏡面反射效果是可以有巢狀反射的。什麼是巢狀反射呢?舉例來說,如果有一塊大理石地板反射了地板上的傢俱,而有一面鏡子又反射了這塊地板,則鏡子裡的地板也可以看到所反射的傢俱。

Ati的顯示卡:茶几下的木板周圍可看見明顯的鋸齒狀白邊
(按圖放大)

nVidia的顯示卡:一切正常
(按圖放大)

這種情況在現實生活中常見,不過虛擬實境裡可不容易達成。當然囉,咱們儒思科技的研發團隊照例是責無旁貸,拼了老命來完成這偉大的任務。(有點臉紅了 :P)

話說FancyDesigner團隊所獨家開發的巢狀鏡射演算法(Nest Reflection Algorithm)總算是不付所託,圓滿達成任務;不過為了兼顧效能上的考量,鏡射裡的影像是會出現鋸齒狀的,而這也是要求完美的我們心中的痛。

不過最近隨著顯示卡的效能越來越強,我們倒是想出了解決之道,所以現今的FancyDesigner版本已可在鏡射面裡呈現高畫質反鋸齒的影像。不過,問題可來了,採用新的做法之後,卻發現在ATi的顯示卡上居然會出現奇怪的白邊,我們接連更換了幾次ATi的驅動程式都沒有用,而在nVidia的顯示卡上卻一切正常。唉,這可真是令人喪氣呀!據我推測,應該是ATi為了在反鋸齒(Anti-Aliasing)上取得較好的效能,而出現的錯誤。

ATi與nVidia這兩家公司我可是看著他們成長茁壯的,看著他們這十幾年來如何在3D晶片的市場攻城掠地的。nVidia的3D晶片一向在效能上較為突出,想當年,我還曾經以nVidia的TNT2顯示卡與SGI的Indigo2繪圖工作站做過一場慘烈的對比。結果售價高達一百多萬台幣的Indigo2竟然在效能上慘敗給當時售價僅有8仟多台幣的TNT2顯示卡。至於ATi方面,雖然早期在與nVidia的競爭上,效能並非總是能佔有什麼優勢,不過在畫質上的表現卻是令人印象深刻。特別是在全景反鋸齒(Full Scene Anti-Aliasing)上的表現,即使打開了高達6倍取樣的反鋸齒效果,在效能上的影響並不明顯。所以以往我都會跟人客推薦採用ATi的顯示卡。

不過,看來這次我們算是無意間踩到ATi的痛腳了,當Back Buffer與Render Target同使採用反鋸齒時,竟然會出現明顯的鋸齒狀白邊,而如果所採用的取樣倍數不一致,則下場更慘,連整個Back Buffer的Background color都會被改掉,而且整個Back Buffer都會呈現不堪的白邊鋸齒狀。看來,還是nVidia比較遵循著D3D的規則來發展,不僅畫面一切正常,而且畫質與效能也相當不錯。

不過雖然這是人家驅動程式的瑕疵,但是我們總不能要每個使用者都換用nVidia的顯示卡呀!所以囉,幾經琢磨之下,目前我已經想到了解決之道來避開ATi的這隻臭蟲,只是行不行得通還得實際去測試才知道,各位看倌就敬候佳音吧!

2008年6月14日 星期六

又要馬兒跑,又要馬兒不吃草

看到有這麼多的FancyDesigner愛用者,心裡實在是高興!

不過嘛,有越來越多的使用者抱怨,當場景變大時,執行的速度也會越來越慢!

人客呀,這是當然的嘛!無論如何,場景總不可能無限制的擴充下去呀!場景裡的東西如果越來越多,越來越複雜,執行速度當然會越來越慢的嘛!

這面牆的後面是個浴室

不過話雖如此,我也知道使用者就是因為喜歡FancyDesigner,才會有如此期盼的。

好吧,即使不是十分合理,我還是希望能寵寵使用者,讓他們真的能在兼顧畫質之下,擁有更大更複雜的場景。

浴室裡的物件雖然被牆擋住了 但還是會做3D運算

這個問題到底該怎麼解呢?看來應該可以從遮蔽物的觀念來下手。無論場景多麼的大,除非是百分之百的開放空間,否則使用者應該不可能一眼就看到場景裡所有的東西,所以只要把暫時看不到的東西去除掉,也就是不列入計算,那就能夠大大提高執行的效能。舉例來說,如果人是在客廳的話,那主臥室或其他房間裡的東西就極可能被隔間牆擋住,所以裡面的東西就可暫時不列入計算。

其實這個說穿了就是3D遊戲裡常用的遮蔽演算法,只是人家的3D遊戲在建場景時都會有嚴格的限制,所以遮蔽演算法較為單純,而我們的FancyDesigner卻是要讓每個人都能輕鬆容易地建構場景,所以遮蔽演算法所要考慮的因素可就複雜多了。

啟用遮蔽演算法之後 牆後面的物件運算大幅減少了

不過,…..嘿嘿,經過幾個月的努力,遮蔽演算法總算大功告成了!這都得多感謝Su的協助,因為比較難的數學問題,我都是讓他去傷腦筋!

人客呀,再耐心等個幾天,就可以享受到遮蔽演算法的好處了唷!

2008年6月11日 星期三

處女座的吹毛求疵 ── 光暈特效終於完成

明知道虛擬實境的畫質有其限制,但我就是不死心,總希望能在畫質上再上一層樓,於是就將腦筋動到了光暈效果上。

(按圖放大)

真實世界裡,發光體或者是高亮度的材質表面,通常都會對週遭的環境產生光暈般的反光效果。反過來說,如果能在虛擬實境的場景裡表現出光暈的效果,那麼整體的真實度就會提高許多。
關於光暈的演算法其實難度並不算高,難的是如何讓大部分的顯示卡都能顯示出光暈的特效,否則就變成曲高和寡了!


經過幾個星期的奮戰,心血總算沒有白費,如今只要在FancyDesigner裡簡單地按一個按鈕,就可以啟動光暈特效,看起來效果還真的蠻炫的!

(按圖放大)

2008年5月1日 星期四

welcome to the blog

這將是 FancyDesigner 研發團隊最完整與最權威的 Blog. 在這裡體驗ㄧ下 FancyDesigner 的故事。

This will be the most complete and most authoritative Blog for FancyDesigner development. This is for you to get the same walking-through Experience.