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

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

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

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

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

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

原创 Visual Studio圖形調試器詳細使用教程(基於DirectX11)

前言 對於DirectX程序開發者來說,學會使用Visual Studio Graphics Debugger(圖形調試器)可以幫助你全面瞭解渲染管線綁定的資源和運行狀態,從而確認問題所在。現在就以我所掌握的圖形調試經驗來進行展開描述。 下

原创 DirectX11 With Windows SDK--19 模型加載:obj格式的讀取及使用二進制文件提升讀取效率

前言 一個模型通常是由三個部分組成:網格、紋理、材質。在一開始的時候,我們是通過Geometry類來生成簡單幾何體的網格。但現在我們需要尋找合適的方式去表述一個複雜的網格,而且包含網格的文件類型多種多樣,對應的描述方式也存在着差異。這一章我

原创 DirectX11 With Windows SDK--11 混合狀態與光柵化狀態

前言 雖然這一部分的內容主要偏向於混合(Blending),但這裏還需提及一下,關於渲染管線可以綁定的狀態主要有如下四種: 光柵化狀態(光柵化階段) 採樣器狀態(像素着色階段) 混合狀態(輸出合併階段) 深度/模板狀態(輸出合併階段)

原创 DirectX11 With Windows SDK--17 利用幾何着色器實現公告板效果

前言 上一章我們知道了如何使用幾何着色器將頂點通過流輸出階段輸出到綁定的頂點緩衝區。接下來我們繼續利用它來實現一些新的效果,在這一章,你將瞭解: 實現公告板效果 Alpha-To-Coverage 對GPU資源進行讀/寫操作 紋理數組 實

原创 DirectX11 With Windows SDK--16 利用幾何着色器可選的流輸出階段幫助繪製多種分形

前言 在上一章,我們知道了如何使用幾何着色器來重新組裝圖元,比如從一個三角形分裂成三個三角形。但是爲了實現更高階的分形,我們必須要從幾何着色器拿到輸出的頂點。這裏我們可以使用可選的流輸出階段來拿到頂點集合。 注意: 本章末尾有大量的GIF動

原创 DirectX11 With Windows SDK--12 深度/模板狀態

前言 深度/模板測試使用的是與後備緩衝區同等分辨率大小的緩衝區,每個元素的一部分連續位用於深度測試,其餘的則用作模板測試。兩個測試的目的都是爲了能夠根據深度/模板狀態需求的設置來選擇需要繪製的像素。 DirectX11 With Windo

原创 DirectX11 With Windows SDK--18 使用DirectXCollision庫進行碰撞檢測

前言 在DirectX SDK中,碰撞檢測的相關函數位於xnacollision.h中。但是現在,前面所實現的相關函數都已經轉移到Windows SDK的DirectXCollision.h中,並且處於名稱空間DirectX內。這裏面主要包

原创 博客園使用highlight.js對代碼進行高亮,並實現自定義關鍵詞高亮

看了網上那麼多有關highlight.js的教程,自己還沒學過JavaScript和CSS,硬是花了3天的時間,才終於弄出了自己想要的效果。一開始我的博客園代碼高亮效果是這樣的: 個人希望代碼塊能夠實現下面功能: 調整代碼塊的背景顏色

原创 DirectX11 With Windows SDK--00 目錄

前言 (更新於 2018/8/12) 從第一次接觸DirectX 11到現在已經有一年時間了。還記得去年的這個時候被要求學習DirectX 11,在用龍書的源碼配置項目運行環境的時候都花了好幾天的時間才搞定,還得忍受上千個編譯警告,不得不視

原创 DirectX11--深入理解HLSL常量緩衝區打包規則

HLSL常量緩衝區打包規則 DirectX11 With Windows SDK完整目錄:http://www.cnblogs.com/X-Jun/p/9028764.html 儘管打包規則並不複雜,但是稍不留意就可能會導致因爲打包規則的不

原创 DirectX11 With Windows SDK--13 拋棄FX11並初步實現BasicFX類

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