我對DX11的理解和簡化框架與快速遊戲製作 續2

2021-06-01 08:59:03 字數 1273 閱讀 6801

下面就先講述下如何建立第乙個基於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 大地形。像 鷹擊長空 這類使用大地形的遊戲,可以充分使用細分來更好地管理地形。可有人會說,增加頂點,會使系統效能下降,的確是這樣。但其優勢是細分距離攝影機近...