AMD OpenCL大學課程(13) OpenCL擴充

1、OpenCL擴充     OpenCL擴充是指device支援某種特性,但這中特性並不是OpenCL標準的一部分。通過擴充,廠商可以給device增加一些新的功能,而不用考慮相容性問題。現在各個廠商在OpenCL的實現中或多或少的使用了自己的擴充。     擴充的類型分為三種: Khronos OpenCL工作群組獲批准的擴充,這種要經過一致性測試,可能會被增加到新版本的OpenCL規範中。這種擴充都以cl_khr作為副檔名。 外部擴充,

cvMatND 多維陣列 設定和讀取像素值

原帖地址:http://shijuanfeng.blogbus.com/logs/206701809.htmlopencv中的多維陣列——MatND的用法,因為長條圖就是多維陣列,所以瞭解一下它的基本用法,僅做收藏。 void MatNDReadAndSet(){int M = 192; int N = 168;int K = 7;int size[] = { M, N, K }; CvMatND* mXOrigin = cvCreateMatND( 3, size, CV_32FC1 )

OpenCL 學習step by step (3) 儲存kernel檔案為二進位

     在教程2中,我們通過函數convertToString,把kernel源檔案讀到一個string串中,然後用函數clCreateProgramWithSource裝入程式對象,再調用函數clBuildProgram編譯器對象。其實我們也可以直接調用二進位kernel檔案,這樣,當不想把kernel檔案給別人看的時候,起到一定的保密作用。在本教程中,我們會把讀入的源檔案儲存體一個二進位檔案中,並且還會建立一個計時器類,用來記錄數組加法在cpu和gpu端分別執行的時間。    

D3D10/11中的遮擋查詢的使用

      在D3D10/11中,有D3D10_QUERY/D3D11_QUERY介面,通過QUERY介面,我們可以查詢GPU的一些狀態,比如GPU的時間戳記資訊(Timestamp)[這個常用來做performance分析],或者遮擋查詢資訊等等。我們通過directx sdk中的例子來看看在D3D10/11中,如何使用遮擋查詢。源檔案目錄:SDK root\Samples\C++\Direct3D10\DrawPredicated     

D3D的投影矩陣推導[轉貼]

原帖地址:http://blog.csdn.net/popy007/article/details/4091967      上一篇文章中我們討論了透視投影變換的原理,分析了OpenGL所使用的透視投影矩陣的產生方法。正如我們所說,不同的圖形API因為左右手座標系、行向量列向量矩陣以及變換範圍等等的不同導致了矩陣的差異,可以有幾十個不同的透視投影矩陣,但它們的原理大同小異。這次我們準備討論一下Direct3D(以下簡稱D3D)的透視投影矩陣,主要出於以下幾個目的:(1)

opengl 教程(4) shader(1)

     原帖地址:http://ogldev.atspace.co.uk/www/tutorial04/tutorial04.html     本章開始學習shader的使用,以前大家常使用OpenGL固定管線來做一些程式,shader相對來說使用較少,而現代gpu編程,shader應用少不了,雖然使用shader編程,代碼多一點,但是卻更靈活。    

opengl 教程(10) index draw

原帖地址:http://ogldev.atspace.co.uk/www/tutorial10/tutorial10.html       OpenGL提供了幾個draw函數: 之前用的 glDrawArrays() 稱作ordered draws(順序的draw調用),如果指定draw體元為線,則頂點緩衝中按排列順序,每2個頂點解釋為線,如果體元為三角形,每三個頂點解釋為三角形,在這裡並沒有共用的概念,比如要渲染一個四邊形,就要畫2個三角形,需要6個頂點。通過indexed

Directx11教程(59) tessellation學習(1)

      在D3D11管線中,新增加了3個stage, Hull shader, Tessellator, Domain shader,用來實現細分操作,就是在gpu中把低細節的表面細分成高細節的體元。在gpu中把低模通過tessellation轉化為高模,在獲得高細節模型的同時,可以有效降低把頂點資料從system memory傳到 video memory的頻寬消耗。     下面我們看看這三個階段到底做些什麼,輸入是什麼,輸出是什嗎?先畫一張圖。1、Hull shader階段     

Directx11教程39 紋理映射(9)

    在myTutorialD3D11_32中,我們在PlaneModelClass中增加一個紋理TextureClass* m_Texture;讀入一個grass的紋理,程式執行後的效果如下:完整的代碼請參考:工程檔案myTutorialD3D11_32代碼下載:http://files.cnblogs.com/mikewolf2002/d3d1127-28.ziphttp://files.cnblogs.com/mikewolf2002/pictures.zip     

OpenCL 學習step by step (9) 灰階圖Histogram計算(3)

     在opencl編程中,特別是基於gpu的opencl的編程,提高程式效能最主要的方法就是想法提高memory的利用率:一個是提高global memory的合并讀寫效率,另一個就是減少local memory的bank conflit。下面我們分析一下教程7中的代碼,其的memory利用率如何?    首先我們用amd的opencl profiler分析一下程式效能(不會找不到用吧,點擊view-other windows-app profiler…,然後就看到了…)。    

OpenCL 學習step by step (11) 數組求和(reduction)

     本篇教程中,我們學習一下如何用opencl有效實現數組求和,也就是通常所說的reduction問題。     在程式中,我們設定workgroup size為256,kernel的輸入、輸出緩衝參數都用uint4的格式,這樣我們原始求和的數組大小為256*4的倍數,資料類型為uint。我們設定每個workgroup處理處理512個uint,即2048個uint     為了簡便期間,我們輸出數組長度定為4096,即需要2個workgruop來處理。   

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教程38 紋理映射(8)

     上篇日誌中,我們用紋理和光照顏色調製的方式得到最終顏色,本章我們嘗試用紋理採樣的顏色,直接做為材質的漫反射係數Kd,並用它來做光照計算,最後再做個gamma校正,如果不做的話,效果會偏亮。     lighttex.ps主要改動代碼:float4 textureColor = shaderTexture.Sample(SampleType, input.tex);float4 Kd = textureColor; …finalcolor =

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

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

監聽者-觀察者模式

     在C++模式設計中,常用的一種模式設計方法就是監聽者-觀察者模式。每個監聽者對象都把自己理解的事件註冊到一個中心事件處理註冊庫,接收到訊息後,中心事件處理註冊庫會把該訊息分發到每個監聽者對象。    下面是來自於c++ profressional中的代碼:首先是監聽者類:Listener.h 和Listener.cpp,這是一個監聽者基類,該類中定義了訊息處理的純虛函數,代碼如下:#pragma onceclass Listener{public: Listener(void);

Directx11教程(57) 環境映射

      建好skydome後,如果我們想讓其中的某個物體,比如那個球體來映射出周圍環境的藍天白雲(不包括自己附近的物體),該怎麼做呢?此時可以把這個球體當成一面鏡子,把我們視點看這個物體上某個頂點p時的反射向量當作cube map查詢向量v,得到紋理texel,然後p點的顏色可以用blend的方式,混合使用中色彩和採樣的紋理texel,就可以實現我們想要的效果。    

Directx11教程(60) tessellation學習(2)

       本教程中,我們開始tessellation編程,共實現了2個程式,第一個tessellation程式,是對一個三角形進行細分操作,第二個程式是對一個四邊形進行細分操作,兩個程式coding差不多,我們先看第一個程式。       程式碼是在myTutorialD3D11_53的基礎上改出來的,首先就是修改ModelClass,用來畫一個三角形。代碼主要的改動是Render函數中// 設定體元語義,渲染三角形列表.

Directx11教程41 紋理映射(11)

    1、第一副圖我們採用各性異性的濾波方式,並設定最大各性異性值為8.    samplerDesc.Filter =  D3D11_FILTER_ANISOTROPIC;    samplerDesc.MaxAnisotropy = 8;     第二副圖我們用了常用的3線性差值濾波方式  samplerDesc.Filter =  D3D11_FILTER_MIN_MAG_MIP_LINEAR;       按道理說,對於遠處的紋理貼圖,第一副圖要好些,但我看起來,似乎這兩個效果差不多,

opengl 教程(12) 投影矩陣

原帖地址:http://ogldev.atspace.co.uk/www/tutorial12/tutorial12.html     

Directx11教程(62) tessellation學習(4)

      現在看看四邊形在不同tess factor時,四邊形細分的細節,是tess factor1-8時候的細分。tess factor是偶數時候,細分的三角形是對稱的,奇數時候,只有一條對角線,細分的三角形是不對稱的。相比三角形的細分,四邊形的相對來說還算簡單,但邊的細分以及內部環繞四邊形的概念和三角形是一樣的,奇數時,中心是一個小的四邊形,偶數時中心是一個點。

總頁數: 61357 1 .... 26807 26808 26809 26810 26811 .... 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.