Mesh數據的處理
執行D3DXLoadMeshFromX函數完成.X文件的加載後,Mesh的各種數據將存放在頂點緩衝區,頂點索引緩衝區,材質緩衝區,鄰接頂點緩衝區,特效屬性緩衝區,網格緩衝區中。其中,材質緩衝區(包含材質信息和紋理貼圖文件名信息),鄰接頂點緩衝區以及特效屬性緩衝區的地址由 D3DXLoadMeshFromX函數成功執行後返回,其他的緩衝區地址可利用ID3DXMesh接口函數來獲得。
.X網格的渲染和優化就是使用上面緩衝區的數據來進行的。頂點緩衝區給出了整個網格的頂點坐標列表(包括頂點坐標和頂點紋理坐標),頂點索引緩衝區給出了每個三角形面的頂點構成信息(三個頂點的索引值),從而間接給出了整個網格的所有三角形面的頂點信息說明,屬性緩衝區為每個三角形面的一個網格子集編號,即給出了網格的每個三角形面的分組號。具有同一個Subset編號的三角形,將使用相同的材質和紋理對象進行渲染。
Mesh網格的渲染,可以用一個for循環來進行,循環的次數為總的材質數。每一次循環都將那些具有相同Subset子集號的三角形面渲染出來,即渲染每個子集Subset。不過每次循環首先要設置渲染管道線的材質和紋理對象,
createps 發表在 痞客邦 留言(0) 人氣(107)
D3DXVec3Normalize(vOut, v) 返回向量的單位向量
說明:返回向量的單位向量,即方向不變長度為 1 的向量
用法:D3DXVec3Normalize vOut, v
參數:VOut As D3DVECTOR 返回計算結果的向量
v As D3DVECTOR 欲計算其單位向量的向量
createps 發表在 痞客邦 留言(0) 人氣(106)
開始
DX程序第一件事是創建DX對象,相當於初始化DirectX。
LPDIRECT3D9X g_pD3D = Direct3DCreate9( D3D_SDK_VERSION);
if(NULL == g_pD3D) return E_FAILE;
每個程序都是由此開始的,而且寫法都一樣,參數必須是D3D_SDK_VERSION。
createps 發表在 痞客邦 留言(1) 人氣(641)
DirectX 範例裡面的 CDXUTDialog
CDXUTDialog g_HUD; // manages the 3D UI
CDXUTDialog g_SampleUI; // dialog for sample specific controls
一樣可以用回呼function
g_HUD.Init( &g_DialogResourceManager );
g_HUD.SetCallback( OnGUIEvent );
createps 發表在 痞客邦 留言(0) 人氣(73)
C# 字串變數, 如何包含雙引號或反斜線
如果字串裡包括特殊符號,例如換行符號,雙引號等,可以用\,例如\" 表示雙引號
以下是其他的範例
string a="abc\"dd"; //以 \" 表示雙引號
string b= "C:\\Program Files\\"; //以 \\ 表示反斜線
createps 發表在 痞客邦 留言(0) 人氣(374)

DirectX9設置紋理渲染--SetTextureStageState()
函數原型 SetTextureStageState(
DWORD Stage, //當前設置的多級紋理的索引
createps 發表在 痞客邦 留言(0) 人氣(290)
用以下方式來讓單參數多重輸入
#define D3DFVF_XYZRHW 0x002
#define D3DFVF_DIFFUSE 0x004
#define D3DFVF_TEX1 0x006
#define D3DFVF_XYZ 0x008
#define D3DFVF_NORMAL 0x00a
createps 發表在 痞客邦 留言(1) 人氣(102)
在XNA 4.0用 REACH 版本,用基本特效畫出3D地板的時候,出現了以下的錯誤訊息:
XNA Framework Reach profile does not support 32 bit indices. Use IndexElementSize.SixteenBits or a type that has a size of two bytes.
google翻譯寫:
XNA框架REACH配置文件不支持32位指數。使用IndexElementSize.SixteenBits或類型,有兩個字節的大小。
createps 發表在 痞客邦 留言(0) 人氣(113)
如何在Windows XP使用微軟正黑體? (OS) (Windows)
Abstract
我個人對字型還相當講究,而Windows Vista的微軟正黑體還不錯看,該如何將微軟正黑體拿到Windows XP上使用呢?
Introduction
Step 1:
複製微軟正黑體
微軟已經開放Vista的
正黑體(繁體)、
雅黑體(簡體)、
日文字體給Windows XP使用。
複製MSJH.TTF與MSJHBD.TTF到c:\WINDOWS\Fonts\
Step 2:
註冊微軟正黑體字型到系統
下載
VistaFont.7z,解開後執行font_change.reg
重新開機
Step 3:
使用ClearType
桌面右鍵 -> 內容 -> 外觀 -> 效果 -> 使用以下方式使螢幕字型邊緣平滑:ClearType
Step 4:
微調ClearType
或許你會覺得ClearType預設值有點糊糊的,可使用微調精靈進行微調。
下載
VistaFont.7z與
Microsoft ClearType Tuner,解開後將cttune.cpl複製到C:\WINDOWS\system32\
在控制台執行Microsoft ClearType微調精靈
Step 5:
設定Windows使用正黑體
桌面右鍵 -> 內容 -> 外觀 -> 進階,將每個字型改成微軟正黑體,我個人是使用字型 11 + Bold。
createps 發表在 痞客邦 留言(0) 人氣(2,876)
XNA的作法是:
RasterizerState.CullCounterClockwise;//CullCounterClockwise 逆時針來畫模型這是GraphicsDevice的預設
1. 右手系座標系統
2. GraphicsDevice.RasterizerState = RasterizerState.CullCounterClockwise; 逆時針來畫出模型
RasterizerState:
1. CullClockwise 順時針畫模型 A built-in state object with settings for culling primitives with clockwise winding order.
2. CullCounterClockwise 逆時針畫模型 A built-in state object with settings for culling primitives with counter-clockwise winding order.
3. CullNone 背面不剔除 A built-in state object with settings for not culling any primitives.
createps 發表在 痞客邦 留言(0) 人氣(94)