Time of Update: 2018-12-06
在前面的教程中,我們在頂點屬性中直接給頂點賦顏色,這樣產生的三維物體缺乏真實感,如中兩個立方體,左邊的是通過光照產生物體表面顏色的,右邊的則是直接給頂點賦顏色值。 首先,我們學習一下最簡單的phong光照模型: 在phong光照模型中,物體表面的顏色由自發射光(emissive)、環境光線(ambient)、漫反射光(diffuse)以及鏡面高光(specular)四部分組成,每一部分又是通過物體表面的材質屬性和光照屬性一起來決定。用公式來表示就是:
Time of Update: 2018-12-06
發現OpenCV中讀取視頻或者usb camera的方法如此簡單,下面是opencv2.31中實現的讀取網路攝影機的代碼:int main() { //開啟視頻檔案 //cv::VideoCapture capture("bike.avi"); //0 open default camera cv::VideoCapture capture(0); //檢查視頻是否開啟 if(!capture.isOpened()) return 1;
Time of Update: 2018-12-06
文章目錄 Z-order curve http://en.wikipedia.org/wiki/Z-order_curveZ-order curveFrom Wikipedia, the free encyclopediaJump to: navigation, searchNot to be confused with Z curve or Z-order.Four iterations of the Z-order
Time of Update: 2018-12-06
現在我們開始學習一些CP(command processor)的知識。參考資料:http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-3/ CP(command processor)應該是GPU最前端的block,它從位於video memory中的command buffer中取出UMD產生的command
Time of Update: 2018-12-06
基於OpenCV harr級聯分類器的人臉及眼睛、鼻子、嘴巴檢測程式。代碼很簡單:#include <opencv2/core/core.hpp>#include <opencv2/highgui//highgui.hpp>#include <opencv2/objdetect/objdetect.hpp>#include <string>#include <vector>using namespace std;int main()
Time of Update: 2018-12-06
本節主要介紹NBody演算法的OpenCL效能最佳化。1、NBody NBody系統主要用來通過粒子之間的物理作用力來類比星系系統。每個粒子表示一個星星,多個粒子之間的相互作用,就呈現出星系的效果。 為一個粒子類比星系的圖片:Source: THE GALAXY-CLUSTER-SUPERCLUSTER CONNECTION,http://www.casca.ca/ecass/issues/1997-DS/West/west-bil.html
Time of Update: 2018-12-06
在工程myTutorialD3D11_16中,我在檔案light.vs中定義了一個材質光源屬性常量緩衝。//const buffer最好為4 float的倍數,否則建立const buffer會fail cbuffer LightMaterialBuffer { float4 lightPosition; //光源位置 float4 lightColor; //光源顏色 float4
Time of Update: 2018-12-06
本章我們首先瞭解一下D3D11中的邏輯管線,認識一下管線中每個stage的含義。參考資料:http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-3/D3D11邏輯管線如所示:首先,我們來學習一下每個stage的名字含義,在後面章節學習它們的細節功能:IA:input assembler,輸入裝配階段,主要是從記憶體中讀頂點和索引資料。VS: vertex shader,
Time of Update: 2018-12-06
1、OpenCL擴充 OpenCL擴充是指device支援某種特性,但這中特性並不是OpenCL標準的一部分。通過擴充,廠商可以給device增加一些新的功能,而不用考慮相容性問題。現在各個廠商在OpenCL的實現中或多或少的使用了自己的擴充。 擴充的類型分為三種: Khronos OpenCL工作群組獲批准的擴充,這種要經過一致性測試,可能會被增加到新版本的OpenCL規範中。這種擴充都以cl_khr作為副檔名。 外部擴充,
Time of Update: 2018-12-06
現在我們建立一個工程myTutorialD3D_23,在這個工程中,對前面一章的代碼進行一些整理:1、我們在頂點屬性中增加材質的的漫反射係數和高光係數,前面我們放在一個光照材質結構中,這樣我們能夠比較靈活的定義不同頂點的材質屬性,當然這也增加了頂點緩衝的大小。struct VertexType { D3DXVECTOR3 position; D3DXVECTOR3 normal; //法向
Time of Update: 2018-12-06
在工程myTutorialD3D11_17中,我們重新定義我們的cube頂點法向,每個三角形面的頂點法向都是和這個三角形的面法向是一致的。如所示: 在該工程中,我們還修改了CubeModelClass檔案,從一個cube.txt檔案中讀cube頂點位置、法向、紋理座標。 cube.txt的格式為:Vertex Count: 36Data:-1.0 1.0 -1.0 0.0 0.0 0.0 0.0 -1.0
Time of Update: 2018-12-06
AMD OpenCL大學課程是非常好的入門級OpenCL教程,通過看教程中的PPT,我們能夠很快的瞭解OpenCL機制以及編程方法。:http://developer.amd.com/zones/OpenCLZone/universities/Pages/default.aspx 教程中的英文很簡單,我相信學OpenCL的人都能看得懂,而且看原汁原味的英文表述,更有利於我們瞭解各種術語的來龍去脈。
Time of Update: 2018-12-06
1、什麼是垂直同步? 垂直同步又稱場同步(Vertical
Time of Update: 2018-12-06
在前面的教程中,我們都是通過在ModelClass中直接產生頂點和索引資料,簡單的三角形,立方體等等還好說,畢竟比較簡單,如何顯示複雜的三維物體呢?特別是利用已有的3D檔案,比如obj, 3ds, md2, x等格式的檔案,這時,就要利用這些3D格式的解析器,本教程中,我們利用Open Asset Import Library庫,來顯示各種格式的3D檔案(動畫檔案,暫時不考慮,只考慮靜態3D檔案)。 Open Asset Import Library是一個開源的模型匯入庫,
Time of Update: 2018-12-06
現在我們在myTutorialD3D11_5的基礎上,來逐步coding實現紋理映射,之所以在myTutorialD3D11_5基礎上改寫,是因為這個工程只是畫了一個三角形,便於我們貼一個紋理上去,然後改變紋理採樣狀態,觀察紋理貼圖的變化。 首先,我們不再為每個頂點賦顏色值,用一個紋理座標代替,這樣在ps中我們可以通過採樣紋理,得到物體表面的顏色。對Color.vs和Color.ps做以下變化:
Time of Update: 2018-12-06
轉載請註明出處為KlayGE遊戲引擎,本文地址為http://www.klayge.org/2011/05/15/anti-alias%e7%9a%84%e5%89%8d%e4%b8%96%e4%bb%8a%e7%94%9f%ef%bc%88%e4%b8%80%ef%bc%89/Anti-alias,簡稱AA,在圖形學中廣泛地用於提升渲染品質。經過幾十年的發展,AA也從離線渲染逐步普及到了即時渲染的領域。本系列文章將總結一下在即時渲染中使用的AA方法的前世和今生。本片集中討論硬體提供的AA方法。
Time of Update: 2018-12-06
The Basic Lighting Model OpenGL and Direct3D provide almost identical fixed-function lighting models. In our example, we will use a simplified version that we will refer to as the "Basic" model. The Basic model, like the OpenGL and Direct3D
Time of Update: 2018-12-06
原帖地址: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 )
Time of Update: 2018-12-06
在D3D10/11中,有D3D10_QUERY/D3D11_QUERY介面,通過QUERY介面,我們可以查詢GPU的一些狀態,比如GPU的時間戳記資訊(Timestamp)[這個常用來做performance分析],或者遮擋查詢資訊等等。我們通過directx sdk中的例子來看看在D3D10/11中,如何使用遮擋查詢。源檔案目錄:SDK root\Samples\C++\Direct3D10\DrawPredicated
Time of Update: 2018-12-06