原创 DirectX11--實現一個3D魔方(2)

前言 上一章我們主要講述了魔方的構造和初始化、紋理的準備工作。目前我還沒有打算講Direct3D 11關於底層繪圖的實現,因此接下來這一章的重點是魔方的旋轉。因爲我們要的是能玩的魔方遊戲,而不是一個觀賞品。所以對旋轉這一步的處理就顯得

原创 DirectX11--實現一個3D魔方(1)

前言 可以說,魔方跟我的人生也有一定的聯繫。 在高中的學校接觸到了魔方社,那時候的我雖然也能夠還原魔方,可看到大神們總是可以非常快地還原,爲此我也走上了學習高級公式CFOP的坑。當初學習的網站是在魔方小站,不過由於公式太多了,那一年主

原创 DirectX11 With Windows SDK--25 法線貼圖

前言 在很早之前的紋理映射中,紋理存放的元素是像素的顏色,通過紋理座標映射到目標像素以獲取其顏色。但是我們的法向量依然只是定義在頂點上,對於三角形面內一點的法向量,也只是通過比較簡單的插值法計算出相應的法向量值。這對平整的表面比較有用

原创 DirectX11--教程項目無法編譯、運行的解決方法

綜述 對於Win10系統的大多數用戶來說,可以直接編譯本教程對應的項目並運行。但也有部分用戶由於某些原因可能會出現無法編譯的情況。 DirectX11 With Windows SDK完整目錄 歡迎加入QQ羣: 727623616 可

原创 DirectX11--ComPtr智能指針

綜述 DirectX11 With Windows SDK完整目錄 歡迎加入QQ羣: 727623616 可以一起探討DX11,以及有什麼問題也可以在這裏彙報。 IUnknown接口類 DirectX11的API是由一系列的COM組件

原创 DirectX11--HR宏關於dxerr庫的替代方案

DirectX11 With Windows SDK完整目錄 歡迎加入QQ羣: 727623616 可以一起探討DX11,以及有什麼問題也可以在這裏彙報。 綜述 參考文章:https://blogs.msdn.microsoft.co

原创 DirectX11--HLSL編譯着色器的三種方法

前言 本教程不考慮Effects11(FX11),而是基於原始的HLSL。 目前編譯與加載着色器的方法如下: 使用Visual Studio中的HLSL編譯器,隨項目編譯期間一同編譯,並生成.cso(Compiled Shader

原创 一封來自惡魔的挑戰邀請函,那些你見過或者沒見過的C語言指針都在這裏了

前言 相信大多數的同學都是第一門能接觸到語言是C/C++,其中的指針也是比較讓人頭疼的部分了,因爲光是指針都能專門出一本叫《C和指針》的書籍,足見指針的強大。但如果不慎誤用指針,這些指針很大可能就會像惡魔一樣把你的程序給直接搞崩潰。

原创 DirectX11 With Windows SDK--24 Render-To-Texture(RTT)技術的應用、使用ScreenGrab保存紋理到文件

前言 儘管在上一章的動態天空盒中用到了Render-To-Texture技術,但那是針對紋理立方體的特化實現。考慮到該技術的應用層面非常廣,在這裏抽出獨立的一章專門來講有關它的通用實現以及各種應用。此外,這裏還會講到如何使用Direc

原创 DirectX11 With Windows SDK--23 立方體映射:動態天空盒的實現

前言 上一章的靜態天空盒已經可以滿足絕大部分日常使用了。但對於自帶反射/折射屬性的物體來說,它需要依賴天空盒進行繪製,但靜態天空盒並不會記錄周邊的物體,更不用說正在其周圍運動的物體了。因此我們需要在運行期間構建動態天空盒,將周邊物體繪

原创 DirectX11 With Windows SDK--22 立方體映射:靜態天空盒的讀取與實現

前言 從現在開始可以說算是要進入到高級主題部分了。這一章我們主要學習由6個紋理所構成的立方體映射,以及用它來實現一個靜態天空盒。 但是在此之前先要消除兩個誤區: 認爲這一章的天空盒就是簡單的在一個超大立方體的六個面內部貼上天空盒紋

原创 DirectX11 With Windows SDK--21 鼠標拾取

前言 由於最近在做項目,不得不大幅減慢更新速度。現在可能一個月1-2章。 拾取是一項非常重要的技術,不論是電腦上用鼠標操作,還是手機的觸屏操作,只要涉及到UI控件的選取則必然要用到該項技術。除此之外,一些類似魔獸爭霸3、星際爭霸2這樣

原创 DirectX11--HLSL中矩陣的內存佈局和mul函數探討

前言 說實話,我感覺這是一個大坑,不知道爲什麼要設計成這樣混亂的形式。 在我用的時候,以row_major矩陣,並且mul函數以向量左乘矩陣的形式來繪製時的確能夠正常顯示,並不會有什麼感覺。但是也有人會遇到明明傳的矩陣沒有問題,卻怎麼

原创 DirectX11 With Windows SDK--20 硬件實例化與視錐體裁剪

前言 這一章將瞭解如何在DirectX 11利用硬件實例化技術高效地繪製重複的物體,以及使用視錐體裁剪技術提前將位於視錐體外的物體進行排除。 在此之前需要額外瞭解的章節如下: 章節回顧 18 使用DirectXColli

原创 DirectX11 With Windows SDK--13 動手實現一個簡易Effects框架、陰影效果繪製

前言 到現在爲止,所有的教程項目都沒有使用Effects11框架類來管理資源。因爲在D3DCompile API (#47)版本中,如果你嘗試編譯fx_5_0的效果文件,會收到這樣的警告: X4717: Effects depreca