(下載 DirectX )
正在品嚐失敗的滋味, ... 雖然有人說人生有起有落, 可是那些都是經歷過了以後, 才在那邊說的風涼話. 身在其中的滋味可是一點也不好受.
* 讀般若波羅多蜜心經可以讓自己專注
* 金剛般若波羅蜜經 -- 是能切斷煩惱的妙法
* 聽音樂能分散自己的注意力, 讓自己不要想太多.
士氣非常低落, 真的找不到好方法讓自己開心.
人生中只有家才是最好的避風港, 不管你多失敗, 客廳裡永遠有愛你的家人等你回家.
我想我該回家了.
Direct3D - 9 範例是我兩個小時前的作品, 讓自己覺得是有用的人. ... 我一直想把 Direct3D 與 一般視窗程式做一個整合, 希望能產生一些驚豔的效果. 例如: 視窗被打成粉狀或者是像風吹動小草一樣動態效果的按鈕.
這範例主要是參考別人的文章修改而成, 就如同大部分 3D 範例程式,都是整個畫面黑黑的, 並沒有整合進視窗元件 3D 是 3D, MFC 是 MFC. 我想看到 MFC 的按鈕與 Direct3D 的成像在同一個視窗, 好像都沒有這種範例.
讓我一直以為 Direct3D 與 MFC 元件不能整合在一起放在同一個視窗, 其實不然. (很多前輩看到這裡應該已經在笑了).
Direct3D 可以設定繪製輪廓, 讓成像引擎只有在定義的輪廓中工作. 我們可以把輪廓內的內容交給 DirectX 進行高效率的處理, 然後把剩下的東西交給方便的 MFC 元件. 我不知道這樣算不算整合, 但是我相信這樣應該可以做到一些驚人的高效能效果.
為了簡單起見, 這個範例的 Direct3D 輪廓使用最簡單的方形, 當然你可以改成任意輪廓.
DirectXDemoDlg.h
DirectXDemoDlg.cpp
完整範例
下面是改成三角形輪廓的範例
在上面的程式碼中,我加了簡單得任意輪廓指令建立三角形輪廓
// 使用與我們要畫物件, 相同輪廓的版本
MY_VERTEX vertices[]={
{150.0f,50.0f,0.5f,1.0f,0xffff0000}, // 頂點 x,y,z,w,color(發散顏色)
{250.0f,250.0f,0.5f,1.0f,0xff00ff00}, // 左邊的點
{50.0f,250.0f,0.5f,1.0f,0xff00ffff}}; // 右邊的點
POINT Trangle[3];
for(int i=0;i<3;i++){
Trangle[i].x=vertices[i].x;
Trangle[i].y=vertices[i].y;
}
HRGN rgnBound=CreatePolygonRgn(Trangle,3,WINDING);
至於為什麼要搞 Direct3D 9 不研究 Direct3D 10 ?
我的理由是:
1. 我的作業系統是 XP , 沒辦法跑 Direct3D 10的程式
2. 目前大部分的使用者作業系統是 XP, 他們都無法執行
Direct3D 10 的程式
3. 如果是想開發業界的專案, 考慮大部分客戶能執行的狀況,
應該使用他們能執行的應用程式
4. 因為程式設計觀念是一樣的, 重點是如何學到 Direct3D 的
基本操作方式, 以實現我的想法. 所以當我的電腦能跑 Vista 時, 再學也不遲.
Enjoy.
by Jing
延伸閱讀
[1] Will Direct3D 10 ever come to Windows XP?
[2] 在 XP 執行 Direct3D 10
(Alky 專案已經 closed, 但是你可以在 這裡 下載的到)
大致的作法是: 解開後 把所有的東西 copy 到 C:\Windows\system32 就可以了.
只是以我的電腦配備, 最多只能執行到 C:\Program Files\Microsoft DirectX SDK (June 2008)\Samples\C++\Direct3D10\Tutorials\Tutorial01, 之後的就無法執行了.
如果你想玩玩, 可以下載回來試試看.
Step 1: 下載 DirectX 10 SDK
Step 2: 下載 preview of DirectX 10
Step 3: 到 DirectX SDK (June 2008)\Samples\C++\Direct3D10\Tutorials\ 隨便找一個 project 試試看.
Step 4: 記得編譯時, 要設定一下:
C++ 設定:General -> Addtional Include Directories:
"$(DXSDK_DIR)Include"
Linker 設定:General -> Additional Library Directories:
"$(DXSDK_DIR)Lib\x86"
Enjoy.
剛好我最近想摸看看D3D
回覆刪除試了一下這Demo程式, 在我的PC下(Vista / ATI Redeon HD 3650)顯示似乎是不正常的
兩個版本的程式, 畫面似乎都是全黑
按下"劃出三角形"後, 三角形是有出來
其它就變成全黑了...
我過幾天有空再來仔細看看~~