Directx11教程(64) tessellation學習(6)-PN Triangles

      前面我們用tessellation細分三角形或者四邊形,產生的細分點都是在三角形或四邊形平面內。本教程我們學習一下PN triangles(point normal triangles)的方法,把一個三角形細分為一個曲面。PN triangles的詳細介紹請參考:2001 paper by Vlachos et al ,下面我們簡單介紹一下PN triangles:    

opengl 教程(8) 物體縮放

原帖地址:http://ogldev.atspace.co.uk/www/tutorial08/tutorial08.html       縮放矩陣比較簡單,它的目的就是在三個軸(x,y,z)方向,對物體長度進行縮放(或者說,對頂點在三個軸的分量進行縮放),當然也可以選擇某個軸方向來縮放。對物體進行縮放的原因主要是用來匹配世界空間不同物體的大小,因為三維物體建模都是在模型空間,通常(x,y,z)的範圍都是(0,1),而世界空間中,物體有大有小,比如小樹和大樓,這就需要我們對這些模型進行縮放操作。

Directx11教程(54) 簡單的基於GS的billboard實現

    本章我們用一個billboard的實現來學習D3D11中的GS。    在VS shader中,我們輸入的是頂點及頂點參數,輸出的也是頂點及參數,在GS shader中,我們輸入的是體元(primitive,可以是點,線,三角形等等,凡是D3D11中允許的體元都可以), 輸出頂點、體元資訊以及相關參數。    如下面兩個圖,左邊對一個三角形做vs操作,則會對三個頂點v1,v2,v3分別執行頂點操作,右圖對三角形做gs操作,則一整個三角形做為輸入,輸出則為一個四面體(增加了3個三角形)。 

D3D11中的硬體反鋸齒 SSAA/MSAA/EQAA/CSAA(3)

五 、EQAA/CSAA       EQAA(enhanced quality AA)和CSAA(coverage sample AA)其實是同樣的採樣技術,EQAA是AMD的實現,CSAA是NV的實現,下面我以EQAA為例看看這兩種AA的原理:      在MSAA中,每個採樣都有一個sample color緩衝相對應,這樣在AA數目比較大的時候,比如16XMSAA,對memory的需求很大,為了節省記憶體頻寬,就出現了EQAA/CSAA這些基於覆蓋採樣(coverage

Directx11教程(44) alpha blend(1)

   我們知道,D3D11中按Frame來渲染物體,每個Frame中又可能包含若干個primitive,如下面的所示:     gpu在實際渲染中,會按幀來渲染,比如frame0中,有兩個primitive(三角形),經過vs以後,PA(primitive assemble) block會進行體元裝配,然後進行光柵化操作,光柵化操作時候,會比較depth buffer的值。因為紅色的三角形面的z值更小,所以它會覆蓋黑色三角形一部分。     

opengl 教程(2) 在視窗畫點

      原文地址:http://ogldev.atspace.co.uk/www/tutorial02/tutorial02.html      通常寫OpenGL程式時候,我們都需要glew庫,該庫封裝了OpenGL的各種擴充,便於我們使用。 我們可以在main函數中調用glew初始化函數,之後就可以查詢opengl各種擴充能否使用了,對於能夠使用的函數,可以動態載入。      在這篇教程中,我們首先瞭解一下頂點緩衝對象(VBO,vertex buffer

opengl 教程(7) 旋轉變化

原帖地址:http://ogldev.atspace.co.uk/www/tutorial07/tutorial07.html      本章我們來學習一下,物體的旋轉。所謂旋轉,就是一個點,繞某個固定的軸轉動一定的角度。在笛卡爾座標系中,我們繞某個主軸轉動時候,會保持該軸決定的分量不變,比如繞z軸旋轉,z座標分量不變,x,y分量變化,所以又稱繞xy平面旋轉,當然,我們也可以繞任意向量進行旋轉操作。我們通過下面的圖來瞭解一下旋轉矩陣是如何產生的?沿著圓把頂點從位置(x1,y1)移動到(x2,y2

DRAM 記憶體介紹

   通常的DRAM記憶體條的模樣如,整個記憶體條稱作DIMM或者chip,上面的每個小黑塊表示一個bank。    主板上,可能有多個記憶體插槽,這樣可以插好多個記憶體條,就是多個DIMM記憶體條的側視圖:一個記憶體條有1個或2個rank,2個rank的記憶體條是指雙面記憶體,就是記憶體條的2面都有bank存在,是記憶體條的俯視圖:     對於DDR3來說,通常一個DIMM有8個bank,而GDDR5有16個bank。在一個bank內,行列的交叉點表示1bit,如所示:    

OpenCL 學習step by step (2) 一個簡單的OpenCL的程式

      現在,我們開始寫一個簡單的OpenCL程式,計算兩個數組相加的和,放到另一個數組中去。程式用cpu和gpu分別計算,最後驗證它們是否相等。OpenCL程式的流程大致如下:下面是source code中的主要代碼: int main(int argc, char* argv[])     {     //在host記憶體中建立三個緩衝區     float *buf1 = 0;     float *buf2 = 0;    

Directx11教程(55) 建立球形和錐形物體

本教程中,我們建立2個model class,SphereModelClass以及CylinderModelClass,分別用來表示球形和錐形物體。程式執行後的介面如下:線框模式介面如下:從線框模式可以看出,球形是由三個因素決定:半徑、經度線、緯度線。       在SphereModelClass.cpp中,我們看到,初始化頂點緩衝和索引緩衝的函數為:InitializeBuffers(ID3D11Device* device,  float radius, int numSlices,

OpenCL 學習step by step (7) 灰階圖Histogram計算(1)

     histogram翻譯成中文就是長條圖,在電腦影像處理和視覺技術中,通常用histogram來進行映像匹配,從而完成track,比如meanshift跟蹤演算法中,經常要用到映像的長條圖。    

opengl 教程(1) 建立視窗

本章教程內容主要來自:http://ogldev.atspace.co.uk/www/tutorial01/tutorial01.html使用OpenGL之前,請先安裝和設定好FreeGlut和glew, :http://freeglut.sourceforge.net/http://glew.sourceforge.net/ 原教程源碼:http://ogldev.atspace.co.uk/ogldev_win.zip       

Directx11教程(63) tessellation學習(5)

       TS中產生細分後頂點的u,v,{w}座標,我們根據控制點和u,w,{w}座標產生新的頂點位置,在前面四邊形的細分中,我們用了雙線性差值的方法,得到新的頂點位置,這些新頂點位置都在一個平面上。在本教程中,我們使用參數方程,可以產生多邊形,在tess factor增大的情況下,得到近似的球體。      DS中產生新頂點的代碼為:   //頂點在現在表面的位置     float3 position = float3(0.0,0.0,0.0);    

OpenCL 學習step by step (1) 安裝AMD OpenCL APP

       從今天開始學習OpenCL……        因為老狼的顯卡是AMD 5xx的redwood,所以下面先介紹OpenCL APP(Accelerated Parallel

opengl 教程(3) 在視窗畫三角形

    原文地址:http://ogldev.atspace.co.uk/www/tutorial03/tutorial03.html     本教程是一個很短的教程,主要內容是在教程2基礎上渲染一個三角形。   在前面一個教程中,我們在歸一化的裁剪空間中定義一個頂點,這樣就省去一些座標變化操作,但不能省去的操作是視口變化。我們從z軸正方向負方向看去,裁剪空間類似的樣子,裁剪空間盒子中的三維物體先投影到該平面上,然後通過視口變化映射到螢幕空間,點(-1.0,1.0)被映射到螢幕的左上方,(-1.

Directx11教程(20) 一個簡單的水面

nnd,以前發的這篇教程怎麼沒有了?是我自己誤刪除了,還是被系統刪除了?找不到存稿了,沒有心情再寫一遍了。     簡單說一下,本篇教程就是實現一個水面的動畫,主要是利用動態頂點緩衝,在每一幀都改變頂點的值,從而實現水面的動畫。主要參考的是《introduction to 3D game programming with d3d10》這本書,但D3D10和D3D11的動態緩衝實現有所改變。具體演算法就不再說了,大家可以參考:Mathematics for 3D Game Programming

D3D11中的硬體反鋸齒 SSAA/MSAA/EQAA/CSAA(1)

     在篇日誌中,我們學習一下在D3D11中,如何啟用aa(反鋸齒)功能,提高渲染品質,並瞭解一下硬體反鋸齒的原理。首先我們先回顧一下採樣和濾波的概念,然後瞭解在D3D11中,如何啟用aa(anti-aliasing)功能,最後是SSAA/MSAA/EQAA/CSAA幾種硬體aa的原理。一、採樣和濾波      採樣(sampling)和filter(濾波)是訊號處理中的概念。所謂sampling,就是把連續的訊號離散化,而filter就是根據離散化後的訊號恢複原始訊號的過程。      

Directx11教程(45) alpha blend(2)

    在myTutorialD3D11_40中,我們在情境中再添加一個box,並把box放在水裡,實現半透明的效果。如所示:      我們要特別注意一點的就是情境中物體的渲染次序,先渲染山穀、第二個box,第三個水。box和水的順序不能顛倒,顛倒後的效果如下,沒有了透明的效果:完整的代碼請參考:工程檔案myTutorialD3D11_40代碼下載:http://files.cnblogs.com/mikewolf2002/d3d1139-49.ziphttp://files.cnblogs.

OpenCL 學習step by step (8) 灰階圖Histogram計算(2)

     現在我們利用上一篇教程的方法,來統計一副RGBA映像中,有多少個像素點(該像素點滿足R, G, B, A任意分量>=5)?我考慮的方法是建立256 bin的長條圖,對於一個像素,求max(R, G,B,A),用該值決定該像素點進入那個bin,這樣求出長條圖後,width*height - hostBin[0] - hostBin[1] - hostBin[2] - hostBin[3] - hostBin[4],即為我們要的結果。    

Directx11教程(35) 紋理映射(5)

    到現在為止,我們的TextureClass初始化函數非常簡單,說白了就是一行代碼:result = D3DX11CreateShaderResourceViewFromFile(device, filename, NULL, NULL, &m_texture, NULL);      這行代碼裝入一個dds檔案,而且其它選項都設定為NULL,這時系統會使用裝入檔案本身的格式,比如我們裝入的tong.dds, 前面我們為其產生了mipmaps層,並且設定surface格式為DXT5

總頁數: 61357 1 .... 10196 10197 10198 10199 10200 .... 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.