OpenGL的渲染架構(gòu)

OpenGL的渲染架構(gòu)
OpenGL渲染架構(gòu).png
數(shù)據(jù)傳遞的三種方式
  • Attributes :頂點數(shù)據(jù)(x,y,z,w) / 投影矩陣纸兔,模型矩陣/ 紋理坐標(biāo)等
    只能傳入頂點著色器涡拘,通過頂點著色器間接傳入片元著色器
  • Uniforms :統(tǒng)一批次(變換矩陣,通道氓辣,顏色)夺荒,一次性傳埂息,不經(jīng)常修改
    可以直接傳入頂點著色器和片元著色器
  • Texture Data :紋理數(shù)據(jù)
    可以直接傳入頂點著色器和片元著色器
存儲著色器
  • 存儲著色器初始化
GLShaderManager shaderManage;
shaderManager.InitializeStockShaders();
  • 單元著色器
    使用場景:繪制默認(rèn)OpenGL 坐標(biāo)系(-1,1)下圖形,圖形所有片段都會以一種顏?填充
參數(shù)1:存儲著色器種類 - 單元著色器
參數(shù)2:顏色
GLShaderManager::UserStockShader(GLT_SHADER_IDENTITY, GLfloat vColor[4]);
  • 平面著色器
    使用場景:在繪制圖形時舟扎,可以應(yīng)用變換(模型/投影變化)
參數(shù)1:存儲著色器種類 - 平面著色器
參數(shù)2:允許變化的4*4矩陣
參數(shù)3:顏色
GLShaderManager::UseStockShader(GLT_SHADER_FLAT, GLfloat mvp[16], GLfloat vColor[4]);
  • 上色著色器
    使用場景:在繪制圖形時分飞,可以應(yīng)用變換(模型/投影變化) ,顏色將會平滑的插入到頂點之間稱為平滑著色睹限。
參數(shù)1 : 存儲著?器種類-默認(rèn)光源著?器
參數(shù)2 : 模型4*4矩陣
參數(shù)3 : 投影4*4矩陣
參數(shù)4 : 顏?值
GLShaderManager::UserStockShader(GLT_SHADER_SHADED, GLfloat mvp[16]);
  • 默認(rèn)光源著色器
    使用場景:在繪制圖形時, 可以應(yīng)用變換(模型/投影變化)譬猫,這種著色器會使繪制的圖形產(chǎn)生陰影和光照的效果.
參數(shù)1: 存儲著?器種類-默認(rèn)光源著色器 
參數(shù)2: 模型4*4矩陣
參數(shù)3: 投影4*4矩陣
參數(shù)4: 顏?色值
GLShaderManager::UserStockShader(GLT_SHADER_DEFAULT_LIGHT, GLfloat mvMatrix[16], GLfloat pMatrix[16], GLfloat vColor[4]);
  • 點光源著色器
    使用場景:繪制圖形時讯檐,可以應(yīng)用變換(模型/投影變化),這種著色器會使繪制的圖形產(chǎn)生陰影和光照的效果染服,他與默認(rèn)光源著色器非常類似别洪,區(qū)別只是光源的位置可能是固定的。
參數(shù)1 : 存儲著?器種類-點光源著?器
參數(shù)2 : 模型4*4矩陣
參數(shù)3 : 投影4*4矩陣
參數(shù)4 : 點光源的位置
參數(shù)5 : 顏?值
GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_REPLACE, GLfloat mvMatrix[16], GLint nTextureUnit);
  • 紋理替換矩陣著色器
    使用場景:繪制圖形時柳刮,可以應(yīng)用變換(模型/投影變化)挖垛,這種著色器通過給定的模型視圖投影矩陣,使用紋理單元來進(jìn)行顏色填充秉颗。其中每個像素點的顏色是從紋理中獲取痢毒。
參數(shù)1 : 存儲著?器種類-紋理替換矩陣著?器
參數(shù)2 : 模型4*4矩陣
參數(shù)3 : 紋理單元
GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_REPLACE, GLfloat mvMatrix[16], GLint nTextureUnit);
  • 紋理調(diào)整著色器
    使用場景 : 繪制圖形時,可以應(yīng)用變換(模型/投影變化)這種著色器通過給定的模型視圖投影矩陣蚕甥。著色器將一個基本色乘以一個取自紋理單元nTextureUnit的紋理哪替。將顏色與紋理進(jìn)行混合后才填充到片段中。
參數(shù)1 : 存儲著?器種類-紋理調(diào)整著?器
參數(shù)2 : 模型4*4矩陣
參數(shù)3 : 顏?值
參數(shù)4 : 紋理單元
GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_MODULATE, GLfloat mvMatrix[16], GLfloat vColor[4], GLint nTextureUnit);
  • 紋理光源著色器
    使用場景 : 繪制圖形時梢灭,可以應(yīng)用變換(模型/投影變化)夷家。這種著色器通過給定的模型視圖投影矩陣。著色器講一個紋理通過漫反射照明計算進(jìn)行調(diào)整(相乘)敏释。
參數(shù)1 : 存儲著?器種類-紋理光源著?器
參數(shù)2 : 模型4*4矩陣
參數(shù)3 : 投影4*4矩陣
參數(shù)4 : 點光源位置
參數(shù)5 : 顏?值
參數(shù)6 : 紋理單元
GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_POINT_LIGHT_DIEF, GLfloat mvMatrix[16], GLfloat pMatrix[16], GLfloat vLightPos[3], GLfloat vBaseColor[4], GLint nTextureUnit);
OpenGL基本圖元
圖元

OpenGL三角形帶

對于很多表面或者形狀?言库快,我們會需要繪制?個相連的三角形。我們可以使用GL_TRIANGLES_STRIP圖元繪制?串相連三角形钥顽,從而節(jié)省?量的時間义屏。
優(yōu)點

  • 用前3個頂點指定第1個三角形之后,接下來的每?個三?形蜂大,只需要再指定1個頂點闽铐。需要繪制?量的三?形時,采?這種?法可以節(jié)省?大量的程序代碼和數(shù)據(jù)存儲空間奶浦。
  • 提供運(yùn)算性能和節(jié)省帶寬兄墅。更少的頂點意味著數(shù)據(jù)從內(nèi)存?zhèn)鬏數(shù)綀D形卡的速度更快,并且頂點著?器需要處理的次數(shù)也更少澳叉。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末隙咸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子成洗,更是在濱河造成了極大的恐慌五督,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓶殃,死亡現(xiàn)場離奇詭異充包,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)遥椿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門基矮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淆储,“玉大人,你說我怎么就攤上這事愈捅《艨迹” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵蓝谨,是天一觀的道長灌具。 經(jīng)常有香客問我,道長譬巫,這世上最難降的妖魔是什么咖楣? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮芦昔,結(jié)果婚禮上诱贿,老公的妹妹穿的比我還像新娘。我一直安慰自己咕缎,他們只是感情好珠十,可當(dāng)我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凭豪,像睡著了一般焙蹭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嫂伞,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天孔厉,我揣著相機(jī)與錄音,去河邊找鬼帖努。 笑死撰豺,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拼余。 我是一名探鬼主播污桦,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼匙监!你這毒婦竟也來了凡橱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤舅柜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后躲惰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體致份,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年础拨,在試婚紗的時候發(fā)現(xiàn)自己被綠了氮块。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绍载。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖滔蝉,靈堂內(nèi)的尸體忽然破棺而出击儡,到底是詐尸還是另有隱情,我是刑警寧澤蝠引,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布阳谍,位于F島的核電站,受9級特大地震影響螃概,放射性物質(zhì)發(fā)生泄漏矫夯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一吊洼、第九天 我趴在偏房一處隱蔽的房頂上張望训貌。 院中可真熱鬧,春花似錦冒窍、人聲如沸递沪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽款慨。三九已至,卻和暖如春意乓,著一層夾襖步出監(jiān)牢的瞬間樱调,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工届良, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留笆凌,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓士葫,卻偏偏與公主長得像乞而,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子慢显,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,728評論 2 351