星期三, 12月 27, 2006

[WPF] Demo from YouTube

說了許多的技術或是文章 不如直接看Demo

從YouTube找到這一個 還不錯的綜合demo

可以一次看完最近這一二年內所有cool demos :P


不過前幾個星期我到一個用Mac電腦的朋友家 他demo他們平常用的keynoter(就是我們的PowerPoint),結果效果超炫的...........

我想WPF雖然是蠻炫的 但是我這些東西 在蘋果電腦的使用者看來 應該只能覺得還好而已 :p

[WPF] Flexible Application

VS Template: Flexible Application

在Scorbs的blog看到這個Visual Studio的Template,這個Template主要能夠幫你自動切換Project Type,即EXE與XBAP之間的切換。

另外Scrobes上還有Screen Saver的Template,不過我有特別去看,可參考WPF Screen Saver Template!

另外,因為在XBAP上 不能任意開啟Windows or Popup(由於Security issues,XBAP run在sandbox裡) 所以這裡有一個有趣的解決方案可以參考 :P

WPF/E --> WPF Everywhere

什麼是WPF/E呢? 可以從官方的FAQ得到答案
"WPF/E" is the codename for a cross-platform presentation technology for rich Web applications that enable browsers to render XAML (eXtensible Application Markup Language) in addition to HTML

From WPE/E FAQ

也就是一種可以讓XAML在網頁上可以run的技術~~ 可以把他想成是另外一種的Flash
也有人說WPF是Flash Killer~~

前幾天看了一些文章研究起來,發現WPF跟WPF/E分二條路了~~
WPF是一套UI Framework,在.Net Framework 3.0裡 .... 要能執行的話 要灌的runtime要5xMB
WPF/E是一套Lightweight的Library,所需要的Runtime 好像不到2MB,可以從這裡Download到,所以WPF/E只有一部分WPF的功能~~ 甚至連Button都沒有~~~ 主要我是是vector方面的東西,但是WPF也是可以直接run在browser裡的,叫做XBAP, Web applications,可以透過ClickOnce的技術,從Server Download程式在Browser端執行.....

現在看來~ 除了AJAX, Flash, Java Applet之外,另一波的WPF-related技術來勢洶洶
而且未來的Windows Vista都是內建.Net Framework 3.0 (including WPF),好像之後Ship出去的Windows XP (sp2)也都內建.Net Framework 3.0。未來一二年內 可預見會愈來愈普級....


相關的所有軟體,可以從這裡找到

另外官網也有一大堆現成可以demo的samples,所以有興趣的話,你可灌WPF/E runtime之後
就可以在browser上直接run這些WPF/E的程式在你的瀏覽器裡.....


可以參考WPE/E微軟官方網頁

[WPF] Snoop, a WPF utility

現在WPF的網路資源愈來愈多了,本來想要自己寫一套Debug的library來用

結果在網路上發現這個東西,已經做掉我想做的事情了~~~ :p

主要我想要能runtime看所有UI元件的Visual Tree長怎樣 然後看property & value

這些Snoop都具備了,還有其它蠻炫的功能

還可以看RoutedEvent, 可以Preview, 還有Zoom View

真的很炫~~ 有開發WPF的人建議可以來使用 :D

http://www.blois.us/Snoop/

星期二, 12月 19, 2006

Image Filter & Pixel Shader

前一陣子用C#試寫了幾支Image Filters,雖然效果是ok~~ 但是其實performance並沒有很好...

如果用C++寫的話 應該可以更快~~~ (尤其C#沒有inline or macro,所以用procedure會變慢)

然後如果還是不夠 就只好用assembly或是SSE/MMX來加速~~ 雖然這方面我沒試過.....


如果要作Interative Arts之類的東西 所有的Image Processing必須要real-time

也就是一秒最好是能跑在15~25個Frame之中最好....

我隨手寫的Blur超級慢的...... 剛又試寫一個overlay大概也會慢了一些....

所以如果想要real-time看特效結果的話~~~ 特效中間又串了七八個filters.....

真的很不容易 更何況我用的video source只是320x240.... @@

DVD(720x480)都快要過時了......如果用HD的source 我看電腦就不用跑了.....


然後這時候就突然有種領悟.... 咦?可以用Pixel Shader做呀....

如果電腦有附很好的顯卡,為什麼不利用GPU的Power呢....

當然如果要推出Image or Video Editing的軟體用這個的話.... 會有一些問題產生

除了不同顯卡有不同能力,要考量不用的Shader version語法,還要考慮不同顯卡出來效果不同

但是如果能同時support兩組filters 一組是pixel shader-base用GPU,另一組用CPU

或許processing的時間可以變的很快 ( @@ 不過不知道可不可以serializtion出來 我想應該可以吧)


嗯 上網找了一些Pixel Shader的文章.... 從來沒寫過這些東西 希望剛剛的猜想可以試試看

可以從下面的links看一些samples
http://www.riemers.net/eng/Tutorials/DirectX/Csharp/Series3/Vertex_Shader.php
http://www.steelskies.com/article/4/directx-shader-effects#
http://www.codesampler.com/dx9src/dx9src_8.htm#dx9_hlsl_fx_simple
http://dev.gameres.com/Program/Visual/DirectX/ManagedDirectX9_21.htm
http://www.flipcode.com/articles/article_ps20tut.shtml

有高手對這方面比較了解的話 也可以指教或是補充囉 ^^

星期六, 12月 16, 2006

Real-time Glow

最近寫些程式,突然想要做些特效....... 像是暈光或是很特別的東西

但是我又是希望能是realtime的... 所以直接用image filter似乎有點困難..

不過還是值得一試..... 剛好看到Gamasutra有一篇文章,是用vertex shader達成....

最近也跟幾個朋友在研究這方面的東西.... 發現還蠻好玩的...

可以從http://www.gamasutra.com/features/20040526/james_pfv.htm看到一些相關的資料


雖然早就知道這個網站,但是每次有問題的時候,還是不知道從何找起....

現在知道了,以後一些realtime or game programming的時候,就可以從這邊開始找了

可以從http://www.gamasutra.com/features/ 看到一些最近的一些文章....

:D

星期四, 12月 14, 2006

Top Coder [http://www.topcoder.com/]

最近看新聞....然後發現了這一家公司... 可以online跟全界的Programmer比賽

結果我當下就註冊了一個帳號 看大家比賽 ^^

感覺很好玩~~ 所以今天的時候我也去比比看...

只要灌好JRE (Java Runtime Environement)就可以用Java Applet or Java Web Start來遠端寫程式比賽

比賽可以使用C++/C#/VB/Java四種語言~~~ 上線submit程式後,遠端會幫你自動編譯程式...



結果今天的比賽我的表現很慘 @@ 三題有一題被challenged,另外一題沒過System Testing,然第一題又多用了一陶迴圈

一次迴圈就足夠讓我是那一區裡過那一題中最低分 @@

TopCoder裡有很多比賽,像Algorthms, Software Design, Software Developement

所以不必一定要成為比賽ACM那程式怪物....也可以寫些real world case的一樣比賽

然後最後要交文件來說明自己的開發設計與使用方法..

比Algorithm的規則很不錯~~ 以我今天比賽為例的話....

9:00(?)開始報名 10:00開始比賽 三題 (各250,450,1000分,共1800分)於11:15前,共75分鐘做完....

11:20進入Challenge階段.... 就是大家互相看各位的程式有沒有問題,

如果有問題可以輸入challenge的input,challenge成功自己可以多獲得50分(?),而別人就會歸零...... 如果challenge失敗的話,自己會扣75分(?)

結果我的第三題就是被別人一下子challenge成功 ><....

20分的challenge之後 是第三階段,就是System Testing,系統再做最後一次最嚴謹的測試,

如果過了就真的得到分數了 沒過的話又是歸零... 過了三階段之後就是比賽之後真正的排名了...

^^ 結果第一次的結果很慘~~ 不過覺得還是蠻好玩的 :p 以後繼續努力...


可到http://www.topcoder.com/註冊帳號~

星期五, 12月 01, 2006

using DirectShow in C# - DirectShow.Net

這一年來都在用C#開發程式,其實已經上癮了 不會想要回去使用C/C++
如果寫UI的話 更會直接跳過SDK/MFC,用Windows Forms or WPF
前陣子需要用DirectShow寫一些程式~~ 想說如果能直接用C#開發多好

Direct3D部分似乎有Managed的環境,但是DirectShow似乎就是沒有官方的Solution
結果上網找,結真就有到不少套Mangned的DirectShow

後來我是選用SourceForge那套,除了DLL外,還有完整的Example可以參考

還真不錯 :p 現在開發起來就快多了......

Links
http://sourceforge.net/projects/directshownet/