Directx11教程(11) 增加一個debug宏

      現在我們在common.h中增加一個debug的宏,在每個d3d11函數後調用,如果d3d函數出錯,它能夠給出程式中錯誤的程式碼數。common.h代碼如下:#pragma once#include <d3d11.h> #include <d3dx10math.h>#if defined(DEBUG) || defined(_DEBUG) #ifndef D3D_DEBUG_INFO #define

Directx11教程(18) D3D11管線(7)

光柵化階段(RS)之後,將進入PS/OM階段。參考外文資料:http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-7/大致的管線流程應該是這樣的:      RS光柵化的fragment達到64或者32(一個wave或者warp)後,PS調度模組會產生一個新的wave或者warp,並把它們傳給PS shader階段,PS shader得到調度資訊後,會從video

Directx11教程(13) D3D11管線(1)

      從本篇教程開始,我們暫停coding,先來瞭解一下D3D11的pipeline,這些pipeline不涉及具體的硬體,而是著重於理解能夠支援D3D11的pipeline實現。參考資料:http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-1/通過前面的教程,我們知道,要用D3D11畫一個三角形,我們需要做以下步驟:  這些步驟最終會在D3D11硬體上執行,從調用D3

Directx11教程(3) 一個最基本D3D應用程式(1)

     在教程2程式碼的基礎上,這次我們將增加2個類:InputClass,鍵盤處理的代碼將放在這個類裡面,GraphicsClass類,D3D渲染的代碼放在這個類裡,這兩個類都是SystemClass類的成員變數,SystemClass類中會調用這2個類執行個體的初始化、渲染以及shutdown函數。   增加這個兩個類後,應用的程式的架構如下:   System

AMD OpenCL大學課程(10)

GPU線程及調度     本節主要講述OpenCL中的Workgroup如何在硬體裝置中被調度執行。同時也會講一下同一個workgroup中的workitem,如果它們執行的指令發生diverage(就是執行指令不一致)對效能的影響。學習OpenCL並行編程,不僅僅是對OpenCL Spec本身瞭解,更重要的是瞭解OpenCL硬體裝置的特性,現階段來說,主要是瞭解GPU的的架構特性,這樣才能針對硬體特性最佳化演算法。    

Directx11教程(21) 修正程式最小化異常bug

      很長時間竟然沒有注意到,視窗最小化時候,程式會異常,今天調試水面程式時,隨意間最小化了視窗,發現程式異常了。經過調試,原來程式最小化時候,螢幕的高度和寬度為0,此時建立深度緩衝會fail,所以在D3DClass.cpp的初始化函數中加入以下的代碼,可以防止最小化時候程式異常。D3DClass.cpp增加代碼://Initialize函數包含完成D3D設定的所有代碼。 bool D3DClass::Initialize(int screenWidth, int

Directx11教程(6) 畫一個簡單的三角形(2)

     在上篇教程中,我們實現了在D3D11中畫一個簡單的三角形,但是,當我們改變視窗大小時候,三角形形狀卻隨著視窗高寬比例改變而改變,如所示:          這是因為我們改變了視窗大小,但後緩衝大小在程式初始化時候,已經被指定,不隨著視窗改變而改變,這樣在視口映射下,我們所渲染的三角形就改變了形狀。下面我們將對程式進行一些小的改動,從而實現改變視窗大小,而渲染的圖形形狀不變。   

Directx11教程(34) 紋理映射(4)

    本篇教程中,我們嘗試在myTutorialD3D_27中改變採樣狀態原因符的各種設定,看紋理貼圖的方式有什麼變化。原始的代碼是:    // 建立紋理採樣描述符 samplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; samplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP; samplerDesc.AddressV =

Directx教程(30) 如何保證渲染物體不會變形

     在Directx11教程(6)中, 我們曾經實現過這個功能,但那時是在SystemClass中,處理WM_SIZE時候,重新調用m_Graphics的初始化函數,這樣的話,它的成員變數D3D類還有其它幾個成員類,都會重新建立,所以我們的情境等於是從頭重新渲染。對於靜態情境,這沒有問題,但是對於動畫情境,我們一改變視窗大小,動畫就會從頭播放,這顯然不是我們所希望的。    

qt creator中常用快速鍵

F2        跳轉到函數定義Shift+F2    聲明和定義之間切換F4        標頭檔和源檔案之間切換Ctrl+1         歡迎模式Ctrl+2        編輯模式Ctrl+3        偵錯模式Ctrl+4        項目設定模式Ctrl+5        協助模式    Ctrl+6        輸出模式Alt+0        顯示或者隱藏側邊條,編輯模式下起作用Ctrl+Space    自動補全ESc        切換到編輯模式Alt+1    

Directx11教程(7) 畫一個顏色立方體

      前面教程我們通過D3D11畫了一個三角形,本章我們將畫一個顏色立方體,它的立體感更強。主要的變動是ModelClass類,在ModelClass中定義一個立方體需要的頂點資訊,然後建立頂點緩衝和索引緩衝。     在ModelClass.h中,我們定義一些宏來表示顏色,以便後面給頂點顏色屬性賦值時用。ModelClass.h代碼如下:#pragma once#include <d3d11.h> #include

Directx11教程(12) 禁止alt+enter全屏視窗

       在D3D11應用程式中,我們按下alt+enter鍵,會切換到全螢幕模式。有時候,我們在WM_SIZE中有一些代碼,全屏時,會使得程式崩潰,比如之前教程的代碼,就是如此。     下面我們在D3DClass.cpp 中,增加代碼,禁止alt+enter鍵全屏。有兩種方法可以做到這個功能,下面我們分別貼出代碼:第一種方法:    D3DClass.cpp中修改Initialize函數,調用MakeWindowAssociation時候,使用SwapChain的內部介面工廠。注意:D3

Directx11教程(14) D3D11管線(2)

       下面我們來瞭解一些GPU memory的知識,主要參考資料:http://fgiesen.wordpress.com/0211/07/02/a-trip-through-the-graphics-pipeline-2011-part-2        現在gpu上常用的video memory是GDDR5,和主機上常用的記憶體ddr3比起來,它具有頻寬高,時延長的特點。下面是core i7 2600和GTX480中記憶體和顯存的比較。…Core i7 2600GTX 480頻寬19

Gamma Correction: A Story of Linearity

from: http://www.geeks3d.com/20101001/tutorial-gamma-correction-a-story-of-linearity/1 – What is gamma correction and why is it important?2 – How to achieve gamma correction?3 – Downloads4 – ReferencesBefore writing this tutorial, I didn’t think

AMD OpenCL大學課程(11)

效能最佳化1、線程映射   所謂線程映射是指某個線程訪問哪一部分資料,其實就是線程id和訪問資料之間的對應關係。合適的線程映射可以充分利用硬體特性,從而提高程式的效能,反之,則會降低performance。   請參考Static Memory Access Pattern Analysis on a Massively Parallel GPU這篇paper,文中講述線程如何在演算法中充分利用線程映射。這是我在google中搜尋到的:http://www.ece.neu.edu/~bjang/

Directx11教程(19) 畫一個簡單的地形

      通常我們在xz平面定義一個二維的網格,然後y的值根據一定的Function Compute得到,比如正弦、餘弦函數的組合等等,可以得到一個看似不錯的地形或者水面的效果。 在本教程中我們修改ModelClass.h和ModelClass.cpp,得到一個近似的地形。        在本章代碼中,我們定義300*300=90000個頂點,共(300-1)(300-1)*2個三角形,每個網格的大小都為1.    我們得到y值的函數為:float ModelClass::getHeight(

Directx11教程(32) 紋理映射(2)

    在寫代碼之前,我們先製作一個dds檔案。從網上找到了一張照片,處理成為512*512,儲存為jpg格式。    啟動微軟的directx texture tool後,把圖片拖到其內:     選擇檔案Format->Generate Mip Maps,可以在映像的標題列看到Mip 1 of 10的字樣,這是因為我們原始映像大小為512*512,產生MipMaps時,會產生256*256, 128*128,…, 1*1,一系列下採樣的映像,加上原始映像總共10個。  

PCIE掃盲貼

轉帖:http://www.liusuping.com/it-tech/pci-e-pci-express-jieshao.html什麼是PCI

AMD OpenCL大學教程(9)

    本節主要講述GPU的memory架構。最佳化基於GPU device的kernel程式時,我們需要瞭解很多GPU的memory知識,比如記憶體合并,bank conflit(衝突)等等,這樣才能針對具體演算法做一些最佳化工作。1、GPU匯流排定址介紹    假定X是一個指向整數(32位整數)數組的指標,數組的首地址為0x00001232。一個線程要訪問元素X[0],   int tmp = X[0];      

Directx教程(29) 簡單的光照模型(8)

     現在我們建立一個工程myTutorialD3D_23,在這個工程中,對前面一章的代碼進行一些整理:1、我們在頂點屬性中增加材質的的漫反射係數和高光係數,前面我們放在一個光照材質結構中,這樣我們能夠比較靈活的定義不同頂點的材質屬性,當然這也增加了頂點緩衝的大小。struct VertexType { D3DXVECTOR3 position; D3DXVECTOR3 normal; //法向 D3DXVECTOR4 Kd;

總頁數: 61357 1 .... 10198 10199 10200 10201 10202 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.