下面就先講述下如何建立第乙個基於dx11的視窗程式。(這是基於我的「簡化框架」的流程設計)
首先建立個名為「dx.h」的標頭檔案,我的框架程式程式不包含任何". ccp"檔案也不生成任何lib和dll,但需要在vs的環境變數中引用它的目錄。這樣是為了保證與c#的語法完全相等。
在標頭檔案中調入下面的庫:
//dx11所必須
#pragma comment (lib, "dxgi.lib")
#pragma comment (lib, "d3d11.lib")
#pragma comment (lib, "d3dx11.lib")
#pragma comment (lib, "d3dcompiler.lib ")
所必須#pragma comment (lib, "d3d10_1.lib")
#pragma comment (lib, "d2d1.lib")
#pragma comment (lib, "dwrite.lib")
//windows變數的使用必須
#pragma comment(lib, "winmm.lib")
在以後的工程檔案中再也不需要引用以上和以下的內容了,它已經包含再全域性中
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#ifndef kill
#define kill(p) }
#endif
#include"device.h"//以後需要用的dx11類
#include"swapchain.h"
現在需要建立個dx11的容器來包含dx11的一些必要的指標。任何乙個dx程式都需要個device裝置來指向它所關聯的資源。
建立個名為"device.h"的標頭檔案
struct device
void dispose()//必須清理程式退出後不用的資源
這裡只是建立了顯示dx資源的基礎的裝置,以後是幾乎都不會修改到這些**也無需為每個專案都重新貼上他們。
未完待續
以後會一步步講述直到完成下面的遊戲。。。
我對DX11的理解和簡化框架與快速遊戲製作 續3
有個基本的device裝置後後面就是如何利用這個裝置來顯示圖形了。swapchain的概念來是利用雙緩衝的辦法來解決視窗重新整理的辦法,也可以利用這個思路解決form的控制項閃動的問題。道理就不細說了,都是十幾年前老掉牙的話題。先建立個 swapchain.h 的標頭檔案 struct swapch...
我對DX11的理解和簡化框架與快速遊戲製作 續5
先來測試下是否成功建立了dx11的裝置和顯示緩衝。先建立個新的專案。把專案的目錄選項的包含目錄新增上面提到的一些檔案的位置。新增個 main.ccp 檔案到當前專案。pragma once include dx.h include dxview.h device device dxview gdev...
DX11細分的優勢和特點
花時間學習了下dx11下的細分,感覺細分好處還真多,不象以前想的,模型已經夠象了還需要什麼細分。現在回過頭來看看,細分用在下面有極大的優勢。1 大地形。像 鷹擊長空 這類使用大地形的遊戲,可以充分使用細分來更好地管理地形。可有人會說,增加頂點,會使系統效能下降,的確是這樣。但其優勢是細分距離攝影機近...